Documentation ¶
Index ¶
- Constants
- Variables
- func ById(id bson.ObjectId) db.Q
- func ByProject(project string) db.Q
- func ByUser(user string) db.Q
- func ByUserProjectAndGitspec(user string, project string, gitspec string) db.Q
- func ByVersion(version string) db.Q
- func Count(query db.Q) (int, error)
- func IsValidId(id string) bool
- func NewId(id string) bson.ObjectId
- func Remove(query db.Q) error
- func TryMarkFinished(versionId string, finishTime time.Time, status string) error
- func TryMarkStarted(versionId string, startTime time.Time) error
- func UpdateAll(query interface{}, update interface{}) (info *mgo.ChangeInfo, err error)
- func UpdateOne(query interface{}, update interface{}) error
- type ModulePatch
- type Patch
- func (p *Patch) AddBuildVariants(bvs []string) error
- func (p *Patch) AddTasks(tasks []string) error
- func (p *Patch) ConfigChanged(remotePath string) bool
- func (p *Patch) Insert() error
- func (p *Patch) RemoveModulePatch(moduleName string) error
- func (p *Patch) SetActivated(versionId string) error
- func (p *Patch) SetDescription(desc string) error
- func (p *Patch) SetVariantsAndTasks(variants []string, tasks []string) error
- func (p *Patch) UpdateModulePatch(modulePatch ModulePatch) error
- type PatchSet
Constants ¶
const (
Collection = "patches"
)
Variables ¶
var ( IdKey = bsonutil.MustHaveTag(Patch{}, "Id") DescriptionKey = bsonutil.MustHaveTag(Patch{}, "Description") ProjectKey = bsonutil.MustHaveTag(Patch{}, "Project") GithashKey = bsonutil.MustHaveTag(Patch{}, "Githash") AuthorKey = bsonutil.MustHaveTag(Patch{}, "Author") NumberKey = bsonutil.MustHaveTag(Patch{}, "PatchNumber") VersionKey = bsonutil.MustHaveTag(Patch{}, "Version") StatusKey = bsonutil.MustHaveTag(Patch{}, "Status") CreateTimeKey = bsonutil.MustHaveTag(Patch{}, "CreateTime") StartTimeKey = bsonutil.MustHaveTag(Patch{}, "StartTime") FinishTimeKey = bsonutil.MustHaveTag(Patch{}, "FinishTime") BuildVariantsKey = bsonutil.MustHaveTag(Patch{}, "BuildVariants") TasksKey = bsonutil.MustHaveTag(Patch{}, "Tasks") PatchesKey = bsonutil.MustHaveTag(Patch{}, "Patches") ActivatedKey = bsonutil.MustHaveTag(Patch{}, "Activated") PatchedConfigKey = bsonutil.MustHaveTag(Patch{}, "PatchedConfig") // BSON fields for the module patch struct ModulePatchNameKey = bsonutil.MustHaveTag(ModulePatch{}, "ModuleName") ModulePatchGithashKey = bsonutil.MustHaveTag(ModulePatch{}, "Githash") ModulePatchSetKey = bsonutil.MustHaveTag(ModulePatch{}, "PatchSet") // BSON fields for the patch set struct PatchSetPatchKey = bsonutil.MustHaveTag(PatchSet{}, "Patch") PatchSetSummaryKey = bsonutil.MustHaveTag(PatchSet{}, "Summary") // BSON fields for the git patch summary struct GitSummaryNameKey = bsonutil.MustHaveTag(thirdparty.Summary{}, "Name") GitSummaryAdditionsKey = bsonutil.MustHaveTag(thirdparty.Summary{}, "Additions") GitSummaryDeletionsKey = bsonutil.MustHaveTag(thirdparty.Summary{}, "Deletions") )
BSON fields for the patches
var ExcludePatchDiff = bson.D{ {PatchesKey + "." + ModulePatchSetKey + "." + PatchSetPatchKey, 0}, }
ExcludePatchDiff is a projection that excludes diff data, helping load times.
Functions ¶
func ByUserProjectAndGitspec ¶
ByUserProjectAndGitspec produces a query that returns patches by the given patch author, project, and gitspec.
func TryMarkFinished ¶
TryMarkFinished attempts to mark a patch of a given version as finished.
func TryMarkStarted ¶
TryMarkStarted attempts to mark a patch as started if it isn't already marked as such
Types ¶
type ModulePatch ¶
type ModulePatch struct { ModuleName string `bson:"name"` Githash string `bson:"githash"` PatchSet PatchSet `bson:"patch_set"` }
this stores request details for a patch
type Patch ¶
type Patch struct { Id bson.ObjectId `bson:"_id,omitempty"` Description string `bson:"desc"` Project string `bson:"branch"` Githash string `bson:"githash"` PatchNumber int `bson:"patch_number"` Author string `bson:"author"` Version string `bson:"version"` Status string `bson:"status"` CreateTime time.Time `bson:"create_time"` StartTime time.Time `bson:"start_time"` FinishTime time.Time `bson:"finish_time"` BuildVariants []string `bson:"build_variants"` Tasks []string `bson:"tasks"` Patches []ModulePatch `bson:"patches"` Activated bool `bson:"activated"` PatchedConfig string `bson:"patched_config"` }
Stores all details related to a patch request
func (*Patch) AddBuildVariants ¶
AddBuildVariants adds more buildvarints to a patch document. This is meant to be used after initial patch creation.
func (*Patch) AddTasks ¶
AddTasks adds more tasks to a patch document. This is meant to be used after initial patch creation, to reconfigure the patch.
func (*Patch) ConfigChanged ¶
ConfigChanged looks through the parts of the patch and returns true if the passed in remotePath is in the the name of the changed files that are part of the patch
func (*Patch) RemoveModulePatch ¶
RemoveModulePatch removes a module that's part of a patch request
func (*Patch) SetActivated ¶
SetActivated sets the patch to activated in the db
func (*Patch) SetDescription ¶
func (*Patch) SetVariantsAndTasks ¶
func (*Patch) UpdateModulePatch ¶
func (p *Patch) UpdateModulePatch(modulePatch ModulePatch) error
Add or update a module within a patch.
type PatchSet ¶
type PatchSet struct { Patch string `bson:"patch"` Summary []thirdparty.Summary `bson:"summary"` }
this stores information about the actual patch