Documentation ¶
Index ¶
- Variables
- type Acl
- type AclSet
- type Acl_Role
- type BuildbucketTask
- func (*BuildbucketTask) Descriptor() ([]byte, []int)deprecated
- func (x *BuildbucketTask) GetBucket() string
- func (x *BuildbucketTask) GetBuilder() string
- func (x *BuildbucketTask) GetProperties() []string
- func (x *BuildbucketTask) GetServer() string
- func (x *BuildbucketTask) GetTags() []string
- func (*BuildbucketTask) ProtoMessage()
- func (x *BuildbucketTask) ProtoReflect() protoreflect.Message
- func (x *BuildbucketTask) Reset()
- func (x *BuildbucketTask) String() string
- type GitilesTask
- func (*GitilesTask) Descriptor() ([]byte, []int)deprecated
- func (x *GitilesTask) GetPathRegexps() []string
- func (x *GitilesTask) GetPathRegexpsExclude() []string
- func (x *GitilesTask) GetRefs() []string
- func (x *GitilesTask) GetRepo() string
- func (*GitilesTask) ProtoMessage()
- func (x *GitilesTask) ProtoReflect() protoreflect.Message
- func (x *GitilesTask) Reset()
- func (x *GitilesTask) String() string
- type Job
- func (*Job) Descriptor() ([]byte, []int)deprecated
- func (x *Job) GetAclSets() []stringdeprecated
- func (x *Job) GetAcls() []*Acldeprecated
- func (x *Job) GetBuildbucket() *BuildbucketTask
- func (x *Job) GetDisabled() bool
- func (x *Job) GetId() string
- func (x *Job) GetNoop() *NoopTask
- func (x *Job) GetRealm() string
- func (x *Job) GetSchedule() string
- func (x *Job) GetTriggeringPolicy() *TriggeringPolicy
- func (x *Job) GetUrlFetch() *UrlFetchTask
- func (*Job) ProtoMessage()
- func (x *Job) ProtoReflect() protoreflect.Message
- func (x *Job) Reset()
- func (x *Job) String() string
- type NoopTask
- type ProjectConfig
- func (*ProjectConfig) Descriptor() ([]byte, []int)deprecated
- func (x *ProjectConfig) GetAclSets() []*AclSetdeprecated
- func (x *ProjectConfig) GetJob() []*Job
- func (x *ProjectConfig) GetTrigger() []*Trigger
- func (*ProjectConfig) ProtoMessage()
- func (x *ProjectConfig) ProtoReflect() protoreflect.Message
- func (x *ProjectConfig) Reset()
- func (x *ProjectConfig) String() string
- type TaskDefWrapper
- func (*TaskDefWrapper) Descriptor() ([]byte, []int)deprecated
- func (x *TaskDefWrapper) GetBuildbucket() *BuildbucketTask
- func (x *TaskDefWrapper) GetGitiles() *GitilesTask
- func (x *TaskDefWrapper) GetNoop() *NoopTask
- func (x *TaskDefWrapper) GetUrlFetch() *UrlFetchTask
- func (*TaskDefWrapper) ProtoMessage()
- func (x *TaskDefWrapper) ProtoReflect() protoreflect.Message
- func (x *TaskDefWrapper) Reset()
- func (x *TaskDefWrapper) String() string
- type Trigger
- func (*Trigger) Descriptor() ([]byte, []int)deprecated
- func (x *Trigger) GetAclSets() []stringdeprecated
- func (x *Trigger) GetAcls() []*Acldeprecated
- func (x *Trigger) GetDisabled() bool
- func (x *Trigger) GetGitiles() *GitilesTask
- func (x *Trigger) GetId() string
- func (x *Trigger) GetNoop() *NoopTask
- func (x *Trigger) GetRealm() string
- func (x *Trigger) GetSchedule() string
- func (x *Trigger) GetTriggeringPolicy() *TriggeringPolicy
- func (x *Trigger) GetTriggers() []string
- func (*Trigger) ProtoMessage()
- func (x *Trigger) ProtoReflect() protoreflect.Message
- func (x *Trigger) Reset()
- func (x *Trigger) String() string
- type TriggeringPolicy
- func (*TriggeringPolicy) Descriptor() ([]byte, []int)deprecated
- func (x *TriggeringPolicy) GetKind() TriggeringPolicy_Kind
- func (x *TriggeringPolicy) GetLogBase() float32
- func (x *TriggeringPolicy) GetMaxBatchSize() int64
- func (x *TriggeringPolicy) GetMaxConcurrentInvocations() int64
- func (x *TriggeringPolicy) GetPendingTimeout() *durationpb.Duration
- func (*TriggeringPolicy) ProtoMessage()
- func (x *TriggeringPolicy) ProtoReflect() protoreflect.Message
- func (x *TriggeringPolicy) Reset()
- func (x *TriggeringPolicy) String() string
- type TriggeringPolicy_Kind
- func (TriggeringPolicy_Kind) Descriptor() protoreflect.EnumDescriptor
- func (x TriggeringPolicy_Kind) Enum() *TriggeringPolicy_Kind
- func (TriggeringPolicy_Kind) EnumDescriptor() ([]byte, []int)deprecated
- func (x TriggeringPolicy_Kind) Number() protoreflect.EnumNumber
- func (x TriggeringPolicy_Kind) String() string
- func (TriggeringPolicy_Kind) Type() protoreflect.EnumType
- type UrlFetchTask
- func (*UrlFetchTask) Descriptor() ([]byte, []int)deprecated
- func (x *UrlFetchTask) GetMethod() string
- func (x *UrlFetchTask) GetTimeoutSec() int32
- func (x *UrlFetchTask) GetUrl() string
- func (*UrlFetchTask) ProtoMessage()
- func (x *UrlFetchTask) ProtoReflect() protoreflect.Message
- func (x *UrlFetchTask) Reset()
- func (x *UrlFetchTask) String() string
Constants ¶
This section is empty.
Variables ¶
var ( Acl_Role_name = map[int32]string{ 0: "READER", 2: "TRIGGERER", 1: "OWNER", } Acl_Role_value = map[string]int32{ "READER": 0, "TRIGGERER": 2, "OWNER": 1, } )
Enum value maps for Acl_Role.
var ( TriggeringPolicy_Kind_name = map[int32]string{ 0: "UNDEFINED", 1: "GREEDY_BATCHING", 2: "LOGARITHMIC_BATCHING", 3: "NEWEST_FIRST", } TriggeringPolicy_Kind_value = map[string]int32{ "UNDEFINED": 0, "GREEDY_BATCHING": 1, "LOGARITHMIC_BATCHING": 2, "NEWEST_FIRST": 3, } )
Enum value maps for TriggeringPolicy_Kind.
var File_go_chromium_org_luci_scheduler_appengine_messages_config_proto protoreflect.FileDescriptor
var File_go_chromium_org_luci_scheduler_appengine_messages_cron_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type Acl ¶
type Acl struct { // Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto. Role Acl_Role `protobuf:"varint,1,opt,name=role,proto3,enum=scheduler.config.Acl_Role" json:"role,omitempty"` // Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto. GrantedTo string `protobuf:"bytes,2,opt,name=granted_to,json=grantedTo,proto3" json:"granted_to,omitempty"` // contains filtered or unexported fields }
Deprecated in favor of LUCI Realms. This proto is totally unused now, exists only to not break older configs that still may have deprecated fields populated.
func (*Acl) Descriptor
deprecated
func (*Acl) GetGrantedTo
deprecated
func (*Acl) ProtoMessage ¶
func (*Acl) ProtoMessage()
func (*Acl) ProtoReflect ¶
func (x *Acl) ProtoReflect() protoreflect.Message
type AclSet ¶
type AclSet struct { // Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto. Acls []*Acl `protobuf:"bytes,2,rep,name=acls,proto3" json:"acls,omitempty"` // contains filtered or unexported fields }
Deprecated in favor of LUCI Realms. This proto is totally unused now, exists only to not break older configs that still may have deprecated fields populated.
func (*AclSet) Descriptor
deprecated
func (*AclSet) ProtoMessage ¶
func (*AclSet) ProtoMessage()
func (*AclSet) ProtoReflect ¶
func (x *AclSet) ProtoReflect() protoreflect.Message
type Acl_Role ¶
type Acl_Role int32
func (Acl_Role) Descriptor ¶
func (Acl_Role) Descriptor() protoreflect.EnumDescriptor
func (Acl_Role) EnumDescriptor
deprecated
func (Acl_Role) Number ¶
func (x Acl_Role) Number() protoreflect.EnumNumber
func (Acl_Role) Type ¶
func (Acl_Role) Type() protoreflect.EnumType
type BuildbucketTask ¶
type BuildbucketTask struct { // Server is hostname of the buildbucket service to use. // // Typically, "cr-buildbucket.appspot.com". Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` // Bucket defines what bucket to add the task to. // // Supported formats are: // - "<bucket>" - for a bucket in the current project. // - "<project>:<bucket>" - for a bucket in another project. // - "luci.<project>.<bucket>" - legacy v1 bucket name. // // If empty, defaults to `realm` field in the parent Job message. Bucket string `protobuf:"bytes,2,opt,name=bucket,proto3" json:"bucket,omitempty"` // Builder defines what builder within the bucket to launch. Builder string `protobuf:"bytes,3,opt,name=builder,proto3" json:"builder,omitempty"` // Properties is arbitrary "key:value" pairs describing the task. // TODO(tandrii): which properties will be overridden if triggered? Properties []string `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty"` // Tags is a list of tags (as "key:value" pairs) to assign to the task. Tags []string `protobuf:"bytes,5,rep,name=tags,proto3" json:"tags,omitempty"` // contains filtered or unexported fields }
BuildbucketTask specifies parameters of Buildbucket-based jobs.
func (*BuildbucketTask) Descriptor
deprecated
func (*BuildbucketTask) Descriptor() ([]byte, []int)
Deprecated: Use BuildbucketTask.ProtoReflect.Descriptor instead.
func (*BuildbucketTask) GetBucket ¶
func (x *BuildbucketTask) GetBucket() string
func (*BuildbucketTask) GetBuilder ¶
func (x *BuildbucketTask) GetBuilder() string
func (*BuildbucketTask) GetProperties ¶
func (x *BuildbucketTask) GetProperties() []string
func (*BuildbucketTask) GetServer ¶
func (x *BuildbucketTask) GetServer() string
func (*BuildbucketTask) GetTags ¶
func (x *BuildbucketTask) GetTags() []string
func (*BuildbucketTask) ProtoMessage ¶
func (*BuildbucketTask) ProtoMessage()
func (*BuildbucketTask) ProtoReflect ¶
func (x *BuildbucketTask) ProtoReflect() protoreflect.Message
func (*BuildbucketTask) Reset ¶
func (x *BuildbucketTask) Reset()
func (*BuildbucketTask) String ¶
func (x *BuildbucketTask) String() string
type GitilesTask ¶
type GitilesTask struct { // Repo is the URL of the Gitiles repository. Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"` // Refs is a list of Git references to track. // // Each ref can be either: // - a fully qualified ref like "refs/heads/master" or "refs/tags/v1.2.3" // - a regular expression with "regexp:" prefix to match multiple refs, e.g. // "regexp:refs/heads/[^/]+" or "regexp:refs/branch-heads/\d+\.\d+", but // the regular expression should have a literal prefix with at least two // slashes present, e.g. "refs/release-\d+/foobar" is not allowed, because // the literal prefix "refs/release-" contains only one slash. The regexp // should not start with ^ or end with $ as they will be added // automatically. // // Each tracked ref, either fully qualified or regexp, must match at least 1 // ref in gitiles output. Refs []string `protobuf:"bytes,2,rep,name=refs,proto3" json:"refs,omitempty"` // Optional path_regexps and path_regexps_exclude are lists of regular // expressions limiting emitted triggers only to commits whose tree diff // touches relevant files. // // If neither path_regexps nor path_regexps_exclude is specified (default), // emits triggers for any commit. // Specifying just path_regexps_exclude is not allowed. // // path_regexps and path_regexps_exclude rules apply on each individual commit // independently. For each commit, a set of all filepaths referenced in Git // commit diff is used for matching. On top of simple file additions and file // modifications, this also includes: file removals, file moves (old and new // path is considered), and changing of file metadata (e.g., chmod +x). This // doesn't include directories (git doesn't track them explicitly). // // Triggers are emitted for a commit if only if at least 1 touched filepath // 1. is not matched by any path_regexps_exclude, // 2. AND is matched at least 1 path_regexps // // **subject to caveats below** for exceptional cases. // // Each path_regexps and path_regexps_exclude is a regular expression // "a/b/c/.+". It should not start with ^ or end with $ as they will be added // automatically. // // CAVEATS: // 1. path_regexps: ".+" // will NOT match commits which modify no files (aka empty commits) and // as such differs from default case of not specifying any `path_regexps`. // 2. Per GitilesTask doc, if a ref fast-forwards >=50 commits, only the last // 50 commits are checked. If none of them matches any path specified here, // no trigger is emitted, even if there is an unexamined commit which // matches the path. // TODO(tandrii): it's possible to improve this by examining diff // between ref's last and new tips, but one has to worry about gitiles // taking potentially very long time to compute it. PathRegexps []string `protobuf:"bytes,3,rep,name=path_regexps,json=pathRegexps,proto3" json:"path_regexps,omitempty"` PathRegexpsExclude []string `protobuf:"bytes,4,rep,name=path_regexps_exclude,json=pathRegexpsExclude,proto3" json:"path_regexps_exclude,omitempty"` // contains filtered or unexported fields }
GitilesTask specifies parameters of what repo and which refs to watch for new commits.
GitilesTask will trigger other jobs if either:
- ref's tip has changed (e.g. new commit landed on a ref),
- a ref has just been created from Scheduler point of view, which is treated as a single new commit. For example, if you configure new GitilesTask or add a ref not previously watched to the existing GitilesTask, then Scheduler will "discover" this ref as newly created and emit exactly 1 trigger for the ref's current tip.
LIMITATIONS:
Per each fast-forward ref's tip change as observed by scheduler, no more than 50 latest (according to gitiles default ordering) commits will result in emitted triggers. This is a safeguard against mistaken or deliberate but unusual git push actions, which typically don't have intent of triggering a build for each such commit. If you absolutely need to act on every new commit even in such cases, you will need to roll your own implementation, though you may still find Scheduler GitilesTask useful to trigger your code on new changes.
No hard latency guarantee. A single invocation of GitilesTask may not be able to process all the backlog. This is particularly true after a config change changes the set of watched ref. However, GitilesTask is designed to make continuous progress with each invocation.
func (*GitilesTask) Descriptor
deprecated
func (*GitilesTask) Descriptor() ([]byte, []int)
Deprecated: Use GitilesTask.ProtoReflect.Descriptor instead.
func (*GitilesTask) GetPathRegexps ¶
func (x *GitilesTask) GetPathRegexps() []string
func (*GitilesTask) GetPathRegexpsExclude ¶
func (x *GitilesTask) GetPathRegexpsExclude() []string
func (*GitilesTask) GetRefs ¶
func (x *GitilesTask) GetRefs() []string
func (*GitilesTask) GetRepo ¶
func (x *GitilesTask) GetRepo() string
func (*GitilesTask) ProtoMessage ¶
func (*GitilesTask) ProtoMessage()
func (*GitilesTask) ProtoReflect ¶
func (x *GitilesTask) ProtoReflect() protoreflect.Message
func (*GitilesTask) Reset ¶
func (x *GitilesTask) Reset()
func (*GitilesTask) String ¶
func (x *GitilesTask) String() string
type Job ¶
type Job struct { // Id is a name of the job (unique for the project). // // Must match '^[0-9A-Za-z_\-\. \)\(]{1,100}$'. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Realm is a name of a LUCI realm within the project to use for ACLs. // // Must match `^[a-z0-9_\.\-/]{1,400}$` or be literals "@root" or "@legacy". // If not set, defaults to "@legacy". // // ACLs associated with a realm are defined separately in realms.cfg file. // That way they can be shared by multiple services. Realm string `protobuf:"bytes,8,opt,name=realm,proto3" json:"realm,omitempty"` // Schedule describes when to run the job. // // A job with a schedule can still be triggered by other triggering jobs // and via "Trigger" button in UI. // // Supported kinds of schedules (illustrated by examples): // - "* 0 * * * *": cron-like expression, in a syntax supported by // https://github.com/gorhill/cronexpr (see its docs for full reference). // The cron engine will attempt to start a job at specified moments in // time (based on UTC clock). If when triggering a job, previous // invocation is still running, an overrun will be recorded (and next // attempt to start a job happens based on the schedule, not when the // previous invocation finishes). Some examples: // "0 */3 * * * *" - each 3 hours: at 12:00 AM UTC, 3:00 AM UTC, ... // "0 */3 * * *" - exact same thing (last field is optional) // "0 1/3 * * *" - each 3 hours but starting 1:00 AM UTC // "0 2,10,18 * * *" - at 2 AM UTC, 10 AM UTC, 6 PM UTC // "0 7 * * *" - at 7 AM UTC, once a day. // - "with 10s interval": runs invocations in a loop, waiting 10s after // finishing invocation before starting a new one. Overruns are not // possible. // - "continuously" is alias for "with 0s interval", meaning the job will // run in a loop without any pauses. // - "triggered" schedule indicates that job is only started via a trigger. // // Default is "triggered". Schedule string `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule,omitempty"` // Disabled is true to disable this job. // // Disabled job is equivalent to a deleted job: it can't be triggered, it // can't be referenced by other jobs and it doesn't show up in UI or API. // // Use this instead of commenting out the definition in case you want to // temporarily git rid of the job. Disabled bool `protobuf:"varint,3,opt,name=disabled,proto3" json:"disabled,omitempty"` // Deprecated and unused. Use realms permissions instead. // // Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto. Acls []*Acl `protobuf:"bytes,5,rep,name=acls,proto3" json:"acls,omitempty"` // Deprecated and unused. Use realms permissions instead. // // Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto. AclSets []string `protobuf:"bytes,6,rep,name=acl_sets,json=aclSets,proto3" json:"acl_sets,omitempty"` // TriggeringPolicy defines how job handles incoming triggering events. // // If not specified defaults to GREEDY_BATCHING with 1 max concurrent // invocation. See comments in TriggeringPolicy for more details. TriggeringPolicy *TriggeringPolicy `protobuf:"bytes,7,opt,name=triggering_policy,json=triggeringPolicy,proto3" json:"triggering_policy,omitempty"` // Noop is used for testing. It is "do nothing" task. Noop *NoopTask `protobuf:"bytes,100,opt,name=noop,proto3" json:"noop,omitempty"` // UrlFetch can be used to make a simple HTTP call. UrlFetch *UrlFetchTask `protobuf:"bytes,101,opt,name=url_fetch,json=urlFetch,proto3" json:"url_fetch,omitempty"` // BuildbucketTask can be used to schedule buildbucket job. Buildbucket *BuildbucketTask `protobuf:"bytes,103,opt,name=buildbucket,proto3" json:"buildbucket,omitempty"` // contains filtered or unexported fields }
Job specifies a single regular job belonging to a project.
Such jobs runs on a schedule or can be triggered by some trigger.
func (*Job) Descriptor
deprecated
func (*Job) GetAclSets
deprecated
func (*Job) GetBuildbucket ¶
func (x *Job) GetBuildbucket() *BuildbucketTask
func (*Job) GetDisabled ¶
func (*Job) GetSchedule ¶
func (*Job) GetTriggeringPolicy ¶
func (x *Job) GetTriggeringPolicy() *TriggeringPolicy
func (*Job) GetUrlFetch ¶
func (x *Job) GetUrlFetch() *UrlFetchTask
func (*Job) ProtoMessage ¶
func (*Job) ProtoMessage()
func (*Job) ProtoReflect ¶
func (x *Job) ProtoReflect() protoreflect.Message
type NoopTask ¶
type NoopTask struct { SleepMs int64 `protobuf:"varint,1,opt,name=sleep_ms,json=sleepMs,proto3" json:"sleep_ms,omitempty"` TriggersCount int64 `protobuf:"varint,2,opt,name=triggers_count,json=triggersCount,proto3" json:"triggers_count,omitempty"` // contains filtered or unexported fields }
NoopTask is used for testing. It is a "do nothing" task that can emit fake triggers.
func (*NoopTask) Descriptor
deprecated
func (*NoopTask) GetSleepMs ¶
func (*NoopTask) GetTriggersCount ¶
func (*NoopTask) ProtoMessage ¶
func (*NoopTask) ProtoMessage()
func (*NoopTask) ProtoReflect ¶
func (x *NoopTask) ProtoReflect() protoreflect.Message
type ProjectConfig ¶
type ProjectConfig struct { // Job is a set of jobs defined in the project. Job []*Job `protobuf:"bytes,1,rep,name=job,proto3" json:"job,omitempty"` // Trigger is a set of triggering jobs defined in the project. Trigger []*Trigger `protobuf:"bytes,2,rep,name=trigger,proto3" json:"trigger,omitempty"` // Deprecated and unused. Use realms permissions instead. // // Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto. AclSets []*AclSet `protobuf:"bytes,3,rep,name=acl_sets,json=aclSets,proto3" json:"acl_sets,omitempty"` // contains filtered or unexported fields }
ProjectConfig defines a schema for a config file that describe jobs belonging to some project.
func (*ProjectConfig) Descriptor
deprecated
func (*ProjectConfig) Descriptor() ([]byte, []int)
Deprecated: Use ProjectConfig.ProtoReflect.Descriptor instead.
func (*ProjectConfig) GetAclSets
deprecated
func (x *ProjectConfig) GetAclSets() []*AclSet
Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto.
func (*ProjectConfig) GetJob ¶
func (x *ProjectConfig) GetJob() []*Job
func (*ProjectConfig) GetTrigger ¶
func (x *ProjectConfig) GetTrigger() []*Trigger
func (*ProjectConfig) ProtoMessage ¶
func (*ProjectConfig) ProtoMessage()
func (*ProjectConfig) ProtoReflect ¶
func (x *ProjectConfig) ProtoReflect() protoreflect.Message
func (*ProjectConfig) Reset ¶
func (x *ProjectConfig) Reset()
func (*ProjectConfig) String ¶
func (x *ProjectConfig) String() string
type TaskDefWrapper ¶
type TaskDefWrapper struct { Noop *NoopTask `protobuf:"bytes,1,opt,name=noop,proto3" json:"noop,omitempty"` UrlFetch *UrlFetchTask `protobuf:"bytes,2,opt,name=url_fetch,json=urlFetch,proto3" json:"url_fetch,omitempty"` Buildbucket *BuildbucketTask `protobuf:"bytes,4,opt,name=buildbucket,proto3" json:"buildbucket,omitempty"` Gitiles *GitilesTask `protobuf:"bytes,5,opt,name=gitiles,proto3" json:"gitiles,omitempty"` // contains filtered or unexported fields }
TaskDefWrapper is a union type of all possible tasks known to the scheduler.
It is used internally when storing jobs in the datastore.
func (*TaskDefWrapper) Descriptor
deprecated
func (*TaskDefWrapper) Descriptor() ([]byte, []int)
Deprecated: Use TaskDefWrapper.ProtoReflect.Descriptor instead.
func (*TaskDefWrapper) GetBuildbucket ¶
func (x *TaskDefWrapper) GetBuildbucket() *BuildbucketTask
func (*TaskDefWrapper) GetGitiles ¶
func (x *TaskDefWrapper) GetGitiles() *GitilesTask
func (*TaskDefWrapper) GetNoop ¶
func (x *TaskDefWrapper) GetNoop() *NoopTask
func (*TaskDefWrapper) GetUrlFetch ¶
func (x *TaskDefWrapper) GetUrlFetch() *UrlFetchTask
func (*TaskDefWrapper) ProtoMessage ¶
func (*TaskDefWrapper) ProtoMessage()
func (*TaskDefWrapper) ProtoReflect ¶
func (x *TaskDefWrapper) ProtoReflect() protoreflect.Message
func (*TaskDefWrapper) Reset ¶
func (x *TaskDefWrapper) Reset()
func (*TaskDefWrapper) String ¶
func (x *TaskDefWrapper) String() string
type Trigger ¶
type Trigger struct { // Id is a name of the job (unique for the project). // // Must match '^[0-9A-Za-z_\-\. \)\(]{1,100}$'. It's in the same namespace as // regular jobs. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Realm is a name of a LUCI realm within the project to use for ACLs. // // Must match `^[a-z0-9_\.\-/]{1,400}$` or be literals "@root" or "@legacy". // If not set, defaults to "@legacy". // // ACLs associated with a realm are defined separately in realms.cfg file. // That way they can be shared by multiple services. Realm string `protobuf:"bytes,7,opt,name=realm,proto3" json:"realm,omitempty"` // Schedule describes when to run this triggering job. // // See Job.schedule for more info. Default is "with 30s interval". Schedule string `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule,omitempty"` // Disabled is true to disable this job. // // Se Job.disabled for more info. Disabled bool `protobuf:"varint,3,opt,name=disabled,proto3" json:"disabled,omitempty"` // Deprecated and unused. Use realms permissions instead. // // Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto. Acls []*Acl `protobuf:"bytes,4,rep,name=acls,proto3" json:"acls,omitempty"` // Deprecated and unused. Use realms permissions instead. // // Deprecated: Marked as deprecated in go.chromium.org/luci/scheduler/appengine/messages/config.proto. AclSets []string `protobuf:"bytes,5,rep,name=acl_sets,json=aclSets,proto3" json:"acl_sets,omitempty"` // TriggeringPolicy defines how job handles incoming triggering events. // // It is rare for a trigger itself to have a non-default triggering policy, // so most likely you should not touch this field. TriggeringPolicy *TriggeringPolicy `protobuf:"bytes,6,opt,name=triggering_policy,json=triggeringPolicy,proto3" json:"triggering_policy,omitempty"` // Triggers are IDs of jobs triggered by this trigger. Triggers []string `protobuf:"bytes,200,rep,name=triggers,proto3" json:"triggers,omitempty"` // Noop is used for testing. It is "do nothing" trigger. Noop *NoopTask `protobuf:"bytes,100,opt,name=noop,proto3" json:"noop,omitempty"` // Gitiles is used to trigger jobs for new commits on Gitiles. Gitiles *GitilesTask `protobuf:"bytes,101,opt,name=gitiles,proto3" json:"gitiles,omitempty"` // contains filtered or unexported fields }
Trigger specifies a job that triggers other jobs.
It is a special kind of a job that periodically checks the state of the world and triggers other jobs.
func (*Trigger) Descriptor
deprecated
func (*Trigger) GetAclSets
deprecated
func (*Trigger) GetDisabled ¶
func (*Trigger) GetGitiles ¶
func (x *Trigger) GetGitiles() *GitilesTask
func (*Trigger) GetSchedule ¶
func (*Trigger) GetTriggeringPolicy ¶
func (x *Trigger) GetTriggeringPolicy() *TriggeringPolicy
func (*Trigger) GetTriggers ¶
func (*Trigger) ProtoMessage ¶
func (*Trigger) ProtoMessage()
func (*Trigger) ProtoReflect ¶
func (x *Trigger) ProtoReflect() protoreflect.Message
type TriggeringPolicy ¶
type TriggeringPolicy struct { // Defines an algorithm to use for the triggering decisions. // // See comments for Kind enum field. // // Default is GREEDY_BATCHING. Kind TriggeringPolicy_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=scheduler.config.TriggeringPolicy_Kind" json:"kind,omitempty"` // Limits number of job invocations running at the same time. // // If the number of current active invocations is more or equal to this // setting, the triggering function will be skipped completely, since it isn't // allowed to trigger anything anyway. // // Default is 1. MaxConcurrentInvocations int64 `` /* 136-byte string literal not displayed */ // Limits how many triggers can be put into one invocation request. // // For example, setting this to 1 will make each trigger launch its own // invocation. This value is ignore dby NEWEST_FIRST, since batching // isn't well-defined in that policy kind. // // Default is 1000 (which is ~= unlimited). MaxBatchSize int64 `protobuf:"varint,3,opt,name=max_batch_size,json=maxBatchSize,proto3" json:"max_batch_size,omitempty"` // Base of the logarithm operation during logarithmic batching. // // For example, setting this to 2, will cause 3 out of 8 pending triggers to // be combined into a single invocation with LOGARITHMIC_BATCHING kind. This // value is ignored by other policy kinds. Must be larger or equal to 1.0001 // for numerical stability reasons. // // Required. LogBase float32 `protobuf:"fixed32,4,opt,name=log_base,json=logBase,proto3" json:"log_base,omitempty"` // How long until a pending trigger is discarded. // // For example, setting this to 1 day will cause triggers that stay pending // for at least 1 day to be removed from consideration. This value is ignored // by policy kinds other than NEWEST_FIRST, which can starve old triggers and // cause the pending triggers list to grow without bound. // // Default is 7 days. PendingTimeout *durationpb.Duration `protobuf:"bytes,5,opt,name=pending_timeout,json=pendingTimeout,proto3" json:"pending_timeout,omitempty"` // contains filtered or unexported fields }
TriggeringPolicy defines a function that decides when and how to launch a job invocation, given the job's current state and a set of pending triggers.
func (*TriggeringPolicy) Descriptor
deprecated
func (*TriggeringPolicy) Descriptor() ([]byte, []int)
Deprecated: Use TriggeringPolicy.ProtoReflect.Descriptor instead.
func (*TriggeringPolicy) GetKind ¶
func (x *TriggeringPolicy) GetKind() TriggeringPolicy_Kind
func (*TriggeringPolicy) GetLogBase ¶
func (x *TriggeringPolicy) GetLogBase() float32
func (*TriggeringPolicy) GetMaxBatchSize ¶
func (x *TriggeringPolicy) GetMaxBatchSize() int64
func (*TriggeringPolicy) GetMaxConcurrentInvocations ¶
func (x *TriggeringPolicy) GetMaxConcurrentInvocations() int64
func (*TriggeringPolicy) GetPendingTimeout ¶
func (x *TriggeringPolicy) GetPendingTimeout() *durationpb.Duration
func (*TriggeringPolicy) ProtoMessage ¶
func (*TriggeringPolicy) ProtoMessage()
func (*TriggeringPolicy) ProtoReflect ¶
func (x *TriggeringPolicy) ProtoReflect() protoreflect.Message
func (*TriggeringPolicy) Reset ¶
func (x *TriggeringPolicy) Reset()
func (*TriggeringPolicy) String ¶
func (x *TriggeringPolicy) String() string
type TriggeringPolicy_Kind ¶
type TriggeringPolicy_Kind int32
const ( // A placeholder for unrecognized policy kind. TriggeringPolicy_UNDEFINED TriggeringPolicy_Kind = 0 // A greedy triggering function that takes all pending triggers (up to // max_batch_size limit) and collapses them into one new invocation, // deriving its properties from the most recent trigger alone. It doesn't // wait for a full batch, nor tries to batch evenly. TriggeringPolicy_GREEDY_BATCHING TriggeringPolicy_Kind = 1 // A logarithmic triggering function that takes floor(log(base,N)) pending // triggers (at least 1 and up to max_batch_size limit) and collapses them // into one new invocation, deriving its properties from the most recent // trigger alone, where N is the total number of pending triggers and k is // specified by the log_base field below. TriggeringPolicy_LOGARITHMIC_BATCHING TriggeringPolicy_Kind = 2 // A triggering function that prioritizes the most recent pending triggers. // Triggers stay pending until they either become the most recent pending // trigger or expire. The timeout for pending triggers is specified by the // pending_timeout field below. TriggeringPolicy_NEWEST_FIRST TriggeringPolicy_Kind = 3 )
func (TriggeringPolicy_Kind) Descriptor ¶
func (TriggeringPolicy_Kind) Descriptor() protoreflect.EnumDescriptor
func (TriggeringPolicy_Kind) Enum ¶
func (x TriggeringPolicy_Kind) Enum() *TriggeringPolicy_Kind
func (TriggeringPolicy_Kind) EnumDescriptor
deprecated
func (TriggeringPolicy_Kind) EnumDescriptor() ([]byte, []int)
Deprecated: Use TriggeringPolicy_Kind.Descriptor instead.
func (TriggeringPolicy_Kind) Number ¶
func (x TriggeringPolicy_Kind) Number() protoreflect.EnumNumber
func (TriggeringPolicy_Kind) String ¶
func (x TriggeringPolicy_Kind) String() string
func (TriggeringPolicy_Kind) Type ¶
func (TriggeringPolicy_Kind) Type() protoreflect.EnumType
type UrlFetchTask ¶
type UrlFetchTask struct { // Method is HTTP method to use, such as "GET" or "POST". Default is "GET". Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"` // Url to send the request to. Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` // Timeout is how long to wait for request to complete. Default is 60 sec. TimeoutSec int32 `protobuf:"varint,3,opt,name=timeout_sec,json=timeoutSec,proto3" json:"timeout_sec,omitempty"` // TODO: add more. // contains filtered or unexported fields }
UrlFetchTask specifies parameters for simple HTTP call.
func (*UrlFetchTask) Descriptor
deprecated
func (*UrlFetchTask) Descriptor() ([]byte, []int)
Deprecated: Use UrlFetchTask.ProtoReflect.Descriptor instead.
func (*UrlFetchTask) GetMethod ¶
func (x *UrlFetchTask) GetMethod() string
func (*UrlFetchTask) GetTimeoutSec ¶
func (x *UrlFetchTask) GetTimeoutSec() int32
func (*UrlFetchTask) GetUrl ¶
func (x *UrlFetchTask) GetUrl() string
func (*UrlFetchTask) ProtoMessage ¶
func (*UrlFetchTask) ProtoMessage()
func (*UrlFetchTask) ProtoReflect ¶
func (x *UrlFetchTask) ProtoReflect() protoreflect.Message
func (*UrlFetchTask) Reset ¶
func (x *UrlFetchTask) Reset()
func (*UrlFetchTask) String ¶
func (x *UrlFetchTask) String() string