Documentation ¶
Index ¶
Constants ¶
View Source
const ( // Collection name for ManualRollRequests. COLLECTION_REQUESTS = "ManualRollRequests" // App name used for Firestore. FS_APP = "autoroll" // Possible values for ManualRollResult. RESULT_UNKNOWN = ManualRollResult("") RESULT_FAILURE = ManualRollResult("FAILURE") RESULT_SUCCESS = ManualRollResult("SUCCESS") // Possible values for ManualRollStatus. STATUS_PENDING = ManualRollStatus("PENDING") STATUS_STARTED = ManualRollStatus("STARTED") STATUS_COMPLETE = ManualRollStatus("COMPLETED") // Firestore-related constants. KEY_ROLLER_NAME = "RollerName" KEY_STATUS = "Status" KEY_TIMESTAMP = "Timestamp" DEFAULT_ATTEMPTS = 3 QUERY_TIMEOUT = 60 * time.Second INSERT_TIMEOUT = 10 * time.Second )
Variables ¶
View Source
var ( // All valid results. VALID_RESULTS = []ManualRollResult{ RESULT_UNKNOWN, RESULT_FAILURE, RESULT_SUCCESS, } // All valid statuses. VALID_STATUSES = []ManualRollStatus{ STATUS_PENDING, STATUS_STARTED, STATUS_COMPLETE, } ErrConcurrentUpdate = errors.New("Concurrent update.") ErrNotFound = errors.New("Request with given ID does not exist.") )
Functions ¶
This section is empty.
Types ¶
type DB ¶
type DB interface { // Close cleans up resources associated with the DB. Close() error // Returns the ManualRollRequest with the specified rollId. Get(ctx context.Context, rollId string) (*ManualRollRequest, error) // Return recent ManualRollRequests for the given roller, up to the // given limit, in reverse chronological order. GetRecent(rollerName string, limit int) ([]*ManualRollRequest, error) // Return all incomplete ManualRollRequests for the given roller. GetIncomplete(rollerName string) ([]*ManualRollRequest, error) // Insert the given ManualRollRequest. The DB implementation is // responsible for calling req.Validate(). If the request has an ID, // the existing entry in the DB is updated. Otherwise, a new entry is // inserted. If the entry already exist, the version in the DB must have // the same DbModified timestamp, or ErrConcurrentUpdate is returned. Put(req *ManualRollRequest) error }
DB provides methods for interacting with a database of ManualRollRequests.
func NewDBWithParams ¶
func NewDBWithParams(ctx context.Context, project, instance string, ts oauth2.TokenSource) (DB, error)
NewDB returns a DB instance backed by Firestore, using the given params.
type ManualRollRequest ¶
type ManualRollRequest struct { Id string `json:"id"` DbModified time.Time `json:"-"` Requester string `json:"requester"` Result ManualRollResult `json:"result,omitempty"` ResultDetails string `json:"resultDetails,omitempty"` Revision string `json:"revision"` RollerName string `json:"rollerName"` Status ManualRollStatus `json:"status"` Timestamp time.Time `json:"timestamp"` Url string `json:"url,omitempty"` DryRun bool `json:"dry_run"` // Do not email the requester and reviewers if this is true. Eg: for // canaries. NoEmail bool `json:"no_email"` // Do not call rm.GetRevision(Revision) if this is true. Use // Revision{Id: Revision} instead. NoResolveRevision bool `json:"no_resolve_revision"` // Constructs a canary-specific commit msg if this is true. Canary bool `json:"canary"` // The external change ID, if specified, is included as part of the manual // roll. The ID is defined by the repo_manager. // Eg: CL num for Chromium, PR num for Github, Topic name for Android. ExternalChangeId string `json:"external_change_id,omitempty"` }
ManualRollRequest represents a request for a manual roll. Note: This struct is directly used from the canary.go task driver in the Skia repo to interact with firestore. Please update that task driver if this struct changes significantly.
func (*ManualRollRequest) Copy ¶
func (r *ManualRollRequest) Copy() *ManualRollRequest
Return a copy of the ManualRollRequest.
func (*ManualRollRequest) Validate ¶
func (r *ManualRollRequest) Validate() error
Validate the ManualRollRequest.
type ManualRollResult ¶
type ManualRollResult string
ManualRollResult represents the result of a manual roll.
func (ManualRollResult) Validate ¶
func (r ManualRollResult) Validate() error
Validate the ManualRollResult.
type ManualRollStatus ¶
type ManualRollStatus string
ManualRollStatus represents the status of a manual roll.
func (ManualRollStatus) Validate ¶
func (r ManualRollStatus) Validate() error
Validate the ManualRollStatus.
Click to show internal directories.
Click to hide internal directories.