luci: go.chromium.org/luci/swarming/proto/api Index | Files

package apipb

import "go.chromium.org/luci/swarming/proto/api"

Index

Package Files

gen.go pb.discovery.go plugin.pb.go swarming.pb.go

Variables

var BotEventType_name = map[int32]string{
    0:  "BOT_EVENT_TYPE_UNSPECIFIED",
    1:  "BOT_NEW_SESSION",
    2:  "BOT_INTERNAL_FAILURE",
    3:  "BOT_HOOK_ERROR",
    4:  "BOT_HOOK_LOG",
    5:  "BOT_REBOOTING_HOST",
    6:  "BOT_SHUTDOWN",
    7:  "BOT_DELETED",
    10: "INSTRUCT_IDLE",
    11: "INSTRUCT_START_TASK",
    12: "INSTRUCT_RESTART_BOT",
    13: "INSTRUCT_UPDATE_BOT_CODE",
    14: "INSTRUCT_TERMINATE_BOT",
    20: "TASK_COMPLETED",
    21: "TASK_INTERNAL_FAILURE",
    22: "TASK_KILLED",
}
var BotEventType_value = map[string]int32{
    "BOT_EVENT_TYPE_UNSPECIFIED": 0,
    "BOT_NEW_SESSION":            1,
    "BOT_INTERNAL_FAILURE":       2,
    "BOT_HOOK_ERROR":             3,
    "BOT_HOOK_LOG":               4,
    "BOT_REBOOTING_HOST":         5,
    "BOT_SHUTDOWN":               6,
    "BOT_DELETED":                7,
    "INSTRUCT_IDLE":              10,
    "INSTRUCT_START_TASK":        11,
    "INSTRUCT_RESTART_BOT":       12,
    "INSTRUCT_UPDATE_BOT_CODE":   13,
    "INSTRUCT_TERMINATE_BOT":     14,
    "TASK_COMPLETED":             20,
    "TASK_INTERNAL_FAILURE":      21,
    "TASK_KILLED":                22,
}
var BotStatusType_name = map[int32]string{
    0:  "BOT_STATUS_UNSPECIFIED",
    1:  "MISSING",
    2:  "QUARANTINED_BY_SERVER",
    3:  "QUARANTINED_BY_BOT",
    4:  "OVERHEAD_MAINTENANCE_EXTERNAL",
    5:  "OVERHEAD_BOT_INTERNAL",
    6:  "HOST_REBOOTING",
    7:  "BUSY",
    8:  "RESERVED",
    9:  "IDLE",
}
var BotStatusType_value = map[string]int32{
    "BOT_STATUS_UNSPECIFIED":        0,
    "MISSING":                       1,
    "QUARANTINED_BY_SERVER":         2,
    "QUARANTINED_BY_BOT":            3,
    "OVERHEAD_MAINTENANCE_EXTERNAL": 4,
    "OVERHEAD_BOT_INTERNAL":         5,
    "HOST_REBOOTING":                6,
    "BUSY":                          7,
    "RESERVED":                      8,
    "IDLE":                          9,
}
var Containment_ContainmentType_name = map[int32]string{
    0:  "NOT_SPECIFIED",
    1:  "NONE",
    2:  "AUTO",
    3:  "JOB_OBJECT",
}
var Containment_ContainmentType_value = map[string]int32{
    "NOT_SPECIFIED": 0,
    "NONE":          1,
    "AUTO":          2,
    "JOB_OBJECT":    3,
}
var GetCancellationsResponse_Cancellation_Reason_name = map[int32]string{
    0:  "INVALID",
    1:  "PREEMPTED",
    2:  "ERROR",
}
var GetCancellationsResponse_Cancellation_Reason_value = map[string]int32{
    "INVALID":   0,
    "PREEMPTED": 1,
    "ERROR":     2,
}
var TaskStateCategory_name = map[int32]string{
    0:  "TASK_STATE_CATEGORY_UNSPECIFIED",
    15: "TASK_STATE_MASK",
    16: "CATEGORY_PENDING",
    32: "CATEGORY_RUNNING",
    48: "CATEGORY_TRANSIENT_DONE",
    64: "CATEGORY_EXECUTION_DONE",
    80: "CATEGORY_NEVER_RAN_DONE",
}
var TaskStateCategory_value = map[string]int32{
    "TASK_STATE_CATEGORY_UNSPECIFIED": 0,
    "TASK_STATE_MASK":                 15,
    "CATEGORY_PENDING":                16,
    "CATEGORY_RUNNING":                32,
    "CATEGORY_TRANSIENT_DONE":         48,
    "CATEGORY_EXECUTION_DONE":         64,
    "CATEGORY_NEVER_RAN_DONE":         80,
}
var TaskState_name = map[int32]string{
    0:  "TASK_STATE_INVALID",
    16: "PENDING",
    17: "PENDING_DEDUPING",
    32: "RUNNING",
    33: "RUNNING_OVERHEAD_SETUP",
    34: "RUNNING_OVERHEAD_TEARDOWN",
    35: "TERMINATING",
    47: "COMPLETING",
    48: "RAN_INTERNAL_FAILURE",
    49: "DUT_FAILURE",
    50: "BOT_DISAPPEARED",
    51: "PREEMPTED",
    64: "COMPLETED",
    65: "TIMED_OUT",
    66: "TIMED_OUT_SILENCE",
    67: "KILLED",
    68: "MISSING_INPUTS",
    80: "DEDUPED",
    81: "EXPIRED",
    82: "CANCELED",
    83: "NO_RESOURCE",
    84: "LOAD_SHED",
    85: "RESOURCE_EXHAUSTED",
    86: "SKIPPED_INTERNAL_FAILURE",
}
var TaskState_value = map[string]int32{
    "TASK_STATE_INVALID":        0,
    "PENDING":                   16,
    "PENDING_DEDUPING":          17,
    "RUNNING":                   32,
    "RUNNING_OVERHEAD_SETUP":    33,
    "RUNNING_OVERHEAD_TEARDOWN": 34,
    "TERMINATING":               35,
    "COMPLETING":                47,
    "RAN_INTERNAL_FAILURE":      48,
    "DUT_FAILURE":               49,
    "BOT_DISAPPEARED":           50,
    "PREEMPTED":                 51,
    "COMPLETED":                 64,
    "TIMED_OUT":                 65,
    "TIMED_OUT_SILENCE":         66,
    "KILLED":                    67,
    "MISSING_INPUTS":            68,
    "DEDUPED":                   80,
    "EXPIRED":                   81,
    "CANCELED":                  82,
    "NO_RESOURCE":               83,
    "LOAD_SHED":                 84,
    "RESOURCE_EXHAUSTED":        85,
    "SKIPPED_INTERNAL_FAILURE":  86,
}

func FileDescriptorSet Uses

func FileDescriptorSet() *descriptor.FileDescriptorSet

FileDescriptorSet returns a descriptor set for this proto package, which includes all defined services, and all transitive dependencies.

Will not return nil.

Do NOT modify the returned descriptor.

func RegisterBotAPIServer Uses

func RegisterBotAPIServer(s prpc.Registrar, srv BotAPIServer)

func RegisterExternalSchedulerServer Uses

func RegisterExternalSchedulerServer(s prpc.Registrar, srv ExternalSchedulerServer)

type AssignTasksRequest Uses

type AssignTasksRequest struct {
    // SchedulerID is the id of the scheduler that this request should be run on.
    SchedulerId string `protobuf:"bytes,1,opt,name=scheduler_id,json=schedulerId,proto3" json:"scheduler_id,omitempty"`
    // IdleBots is the set of idle bots that are trying to get tasks assigned.
    IdleBots []*IdleBot `protobuf:"bytes,2,rep,name=idle_bots,json=idleBots,proto3" json:"idle_bots,omitempty"`
    // Time is the current time (according to swarming) at which these bots
    // are attempting to have tasks assigned to them.
    Time                 *timestamp.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
    XXX_NoUnkeyedLiteral struct{}             `json:"-"`
    XXX_unrecognized     []byte               `json:"-"`
    XXX_sizecache        int32                `json:"-"`
}

func (*AssignTasksRequest) Descriptor Uses

func (*AssignTasksRequest) Descriptor() ([]byte, []int)

func (*AssignTasksRequest) GetIdleBots Uses

func (m *AssignTasksRequest) GetIdleBots() []*IdleBot

func (*AssignTasksRequest) GetSchedulerId Uses

func (m *AssignTasksRequest) GetSchedulerId() string

func (*AssignTasksRequest) GetTime Uses

func (m *AssignTasksRequest) GetTime() *timestamp.Timestamp

func (*AssignTasksRequest) ProtoMessage Uses

func (*AssignTasksRequest) ProtoMessage()

func (*AssignTasksRequest) Reset Uses

func (m *AssignTasksRequest) Reset()

func (*AssignTasksRequest) String Uses

func (m *AssignTasksRequest) String() string

func (*AssignTasksRequest) XXX_DiscardUnknown Uses

func (m *AssignTasksRequest) XXX_DiscardUnknown()

func (*AssignTasksRequest) XXX_Marshal Uses

func (m *AssignTasksRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*AssignTasksRequest) XXX_Merge Uses

func (m *AssignTasksRequest) XXX_Merge(src proto.Message)

func (*AssignTasksRequest) XXX_Size Uses

func (m *AssignTasksRequest) XXX_Size() int

func (*AssignTasksRequest) XXX_Unmarshal Uses

func (m *AssignTasksRequest) XXX_Unmarshal(b []byte) error

type AssignTasksResponse Uses

type AssignTasksResponse struct {
    // Assignments is the set of (bot, task) assignments that the scheduler
    // determined should be made.
    Assignments          []*TaskAssignment `protobuf:"bytes,1,rep,name=assignments,proto3" json:"assignments,omitempty"`
    XXX_NoUnkeyedLiteral struct{}          `json:"-"`
    XXX_unrecognized     []byte            `json:"-"`
    XXX_sizecache        int32             `json:"-"`
}

func (*AssignTasksResponse) Descriptor Uses

func (*AssignTasksResponse) Descriptor() ([]byte, []int)

func (*AssignTasksResponse) GetAssignments Uses

func (m *AssignTasksResponse) GetAssignments() []*TaskAssignment

func (*AssignTasksResponse) ProtoMessage Uses

func (*AssignTasksResponse) ProtoMessage()

func (*AssignTasksResponse) Reset Uses

func (m *AssignTasksResponse) Reset()

func (*AssignTasksResponse) String Uses

func (m *AssignTasksResponse) String() string

func (*AssignTasksResponse) XXX_DiscardUnknown Uses

func (m *AssignTasksResponse) XXX_DiscardUnknown()

func (*AssignTasksResponse) XXX_Marshal Uses

func (m *AssignTasksResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*AssignTasksResponse) XXX_Merge Uses

func (m *AssignTasksResponse) XXX_Merge(src proto.Message)

func (*AssignTasksResponse) XXX_Size Uses

func (m *AssignTasksResponse) XXX_Size() int

func (*AssignTasksResponse) XXX_Unmarshal Uses

func (m *AssignTasksResponse) XXX_Unmarshal(b []byte) error

type Bot Uses

type Bot struct {
    // Bot ID. It must be unique across the Swarming fleet. Generally based on the
    // hostname where the bot runs, but that's not a requirement. Must be
    // predefined in bots.cfg.
    //
    // This value is also included in dimensions for the key 'id'.
    BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
    // Bot session ID. An opaque value.
    //
    // There is one bot session ID per bot process ID on the host. When the bot
    // self-upgrades, it creates a new bot session ID.
    SessionId string `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
    // Pools that this bot belongs to. Normally assigned via bots.cfg. The
    // pools must be defined in pools.cfg.
    //
    // Normally a bot shall belong to a single pool, but belonging to multiple
    // pool is allowed. This is generally helpful for transitioning bots.
    //
    // This value is also included in dimensions for the key 'pool'.
    Pools []string `protobuf:"bytes,3,rep,name=pools,proto3" json:"pools,omitempty"`
    // Current bot status. A bot status is a state in which the bot is for a
    // certain amount of time.
    Status BotStatusType `protobuf:"varint,4,opt,name=status,proto3,enum=swarming.v1.BotStatusType" json:"status,omitempty"`
    // Supplemental information to describe the bot status. Human readable.
    //
    // See BotStatusType for the meaning of this string for each status.
    StatusMsg string `protobuf:"bytes,5,opt,name=status_msg,json=statusMsg,proto3" json:"status_msg,omitempty"`
    // Current task being handled by the bot, if there is one.
    //
    // In Swarming, only a single task can be assigned to a bot at any given time.
    CurrentTaskId string `protobuf:"bytes,6,opt,name=current_task_id,json=currentTaskId,proto3" json:"current_task_id,omitempty"`
    // Bot reported dimensions. dimensions is a {key: [values]} dictionary. This
    // can be used to declare the properties of the host or for the DUT (Device
    // Under Test) under control. This is used for task selection.
    //
    // In RBE, this is called Property. The difference is that RBE's Property is a
    // string:string flat dictionary, it doesn't allow repeated values.
    //
    // https://chromium.googlesource.com/infra/luci/luci-py.git/+/master/appengine/swarming/doc/Detailed-Design.md#bot-dimensions
    //
    // dimensions MUST be sorted by keys, and each values list must be sorted.
    // Each dimension key must be unique.
    //
    // The values are effectively an OR, a task may match any of the value.
    //
    // Human readable.
    Dimensions []*StringListPair `protobuf:"bytes,7,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
    // Bot reported informational state. This can be used to describe the host,
    // the bot itself and the DUT (Device Under Test) under control as applicable.
    //
    // This is NOT used for task selection.
    Info                 *BotInfo `protobuf:"bytes,8,opt,name=info,proto3" json:"info,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Bot describes a Swarming bot.

Because a Swarming bot is a single execution unit unlike RBE, it doesn't have a concept of owned device at the moment. This may change later.

func (*Bot) Descriptor Uses

func (*Bot) Descriptor() ([]byte, []int)

func (*Bot) GetBotId Uses

func (m *Bot) GetBotId() string

func (*Bot) GetCurrentTaskId Uses

func (m *Bot) GetCurrentTaskId() string

func (*Bot) GetDimensions Uses

func (m *Bot) GetDimensions() []*StringListPair

func (*Bot) GetInfo Uses

func (m *Bot) GetInfo() *BotInfo

func (*Bot) GetPools Uses

func (m *Bot) GetPools() []string

func (*Bot) GetSessionId Uses

func (m *Bot) GetSessionId() string

func (*Bot) GetStatus Uses

func (m *Bot) GetStatus() BotStatusType

func (*Bot) GetStatusMsg Uses

func (m *Bot) GetStatusMsg() string

func (*Bot) ProtoMessage Uses

func (*Bot) ProtoMessage()

func (*Bot) Reset Uses

func (m *Bot) Reset()

func (*Bot) String Uses

func (m *Bot) String() string

func (*Bot) XXX_DiscardUnknown Uses

func (m *Bot) XXX_DiscardUnknown()

func (*Bot) XXX_Marshal Uses

func (m *Bot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Bot) XXX_Merge Uses

func (m *Bot) XXX_Merge(src proto.Message)

func (*Bot) XXX_Size Uses

func (m *Bot) XXX_Size() int

func (*Bot) XXX_Unmarshal Uses

func (m *Bot) XXX_Unmarshal(b []byte) error

type BotAPIClient Uses

type BotAPIClient interface {
    // Events returns events relating to one bot.
    Events(ctx context.Context, in *BotEventsRequest, opts ...grpc.CallOption) (*BotEventsResponse, error)
}

BotAPIClient is the client API for BotAPI service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewBotAPIClient Uses

func NewBotAPIClient(cc *grpc.ClientConn) BotAPIClient

func NewBotAPIPRPCClient Uses

func NewBotAPIPRPCClient(client *prpc.Client) BotAPIClient

type BotAPIServer Uses

type BotAPIServer interface {
    // Events returns events relating to one bot.
    Events(context.Context, *BotEventsRequest) (*BotEventsResponse, error)
}

BotAPIServer is the server API for BotAPI service.

type BotEvent Uses

type BotEvent struct {
    EventTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"`
    // Snapshot of the Bot that had this event.
    //
    // Eventually we'd want to only snapshot the difference from the previous
    // event, but this would make the SQL queries much more complicated.
    Bot *Bot `protobuf:"bytes,2,opt,name=bot,proto3" json:"bot,omitempty"`
    // Type of state change (event) that trigger this message.
    Event BotEventType `protobuf:"varint,3,opt,name=event,proto3,enum=swarming.v1.BotEventType" json:"event,omitempty"`
    // Supplementation information to describe the bot event. Human readable.
    //
    // See BotEventType for the meaning of this string for each status.
    EventMsg             string   `protobuf:"bytes,4,opt,name=event_msg,json=eventMsg,proto3" json:"event_msg,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

BotEvent represents an event on the bot.

This message is used both in the API and as a BigQuery table description for the table 'bot_events' in dataset 'swarming'.

func (*BotEvent) Descriptor Uses

func (*BotEvent) Descriptor() ([]byte, []int)

func (*BotEvent) GetBot Uses

func (m *BotEvent) GetBot() *Bot

func (*BotEvent) GetEvent Uses

func (m *BotEvent) GetEvent() BotEventType

func (*BotEvent) GetEventMsg Uses

func (m *BotEvent) GetEventMsg() string

func (*BotEvent) GetEventTime Uses

func (m *BotEvent) GetEventTime() *timestamp.Timestamp

func (*BotEvent) ProtoMessage Uses

func (*BotEvent) ProtoMessage()

func (*BotEvent) Reset Uses

func (m *BotEvent) Reset()

func (*BotEvent) String Uses

func (m *BotEvent) String() string

func (*BotEvent) XXX_DiscardUnknown Uses

func (m *BotEvent) XXX_DiscardUnknown()

func (*BotEvent) XXX_Marshal Uses

func (m *BotEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*BotEvent) XXX_Merge Uses

func (m *BotEvent) XXX_Merge(src proto.Message)

func (*BotEvent) XXX_Size Uses

func (m *BotEvent) XXX_Size() int

func (*BotEvent) XXX_Unmarshal Uses

func (m *BotEvent) XXX_Unmarshal(b []byte) error

type BotEventType Uses

type BotEventType int32

BotEventType defines the reason why BotEvent was created.

const (
    // Invalid bot event type, do not use.
    BotEventType_BOT_EVENT_TYPE_UNSPECIFIED BotEventType = 0
    // Bot connected and started a new session.
    //
    // BotEvent.event_msg shall not be set.
    BotEventType_BOT_NEW_SESSION BotEventType = 1
    // Bot had an internal failure to report to the server outside of a task
    // context. This shall send a report to the administrator of the instance and
    // service author.
    //
    // BotEvent.event_msg shall contain the error message.
    BotEventType_BOT_INTERNAL_FAILURE BotEventType = 2
    // Bot had an hook error to report to the server. This shall send a report to
    // the administrator of the instance.
    //
    // BotEvent.event_msg shall contain the error message.
    BotEventType_BOT_HOOK_ERROR BotEventType = 3
    // Bot hook logged information. The bot hooks can log locally to the local log
    // file, which itself can be streamed out of band. For special notifications
    // that are worth notifying the administrator, this event can be used to raise
    // these. Due to the cost of doing an RPC just for this, this should be used
    // sparingly; vs local logging.
    //
    // BotEvent.event_msg shall contain the log entry.
    BotEventType_BOT_HOOK_LOG BotEventType = 4
    // Bot initiated a host reboot. An example is a bot hook requesting to reboot
    // the host after a task failure.
    //
    // BotEvent.event_msg shall contain the reason for rebooting the host, if any.
    BotEventType_BOT_REBOOTING_HOST BotEventType = 5
    // Bot is shutting down. It may be restarting for an update.
    //
    // BotEvent.event_msg shall contain the reason.
    BotEventType_BOT_SHUTDOWN BotEventType = 6
    // Knowledge of the bot by the server was deleted.
    //
    // In this case, the bot's historical data is still kept in the Swarming
    // server's DB for a year, but the bot is not shown anywhere.
    BotEventType_BOT_DELETED BotEventType = 7
    // The server instructs the bot to stay idle. This is when there is no task
    // pending for this bot. Will only be stored when there are other state
    // changes.
    //
    // BotEvent.event_msg shall not be set.
    BotEventType_INSTRUCT_IDLE BotEventType = 10
    // The server instructs the bot to start a task.
    //
    // BotEvent.event_msg shall not be set. BotEvent.bot.current_task_id shall
    // contain the task ID.
    BotEventType_INSTRUCT_START_TASK BotEventType = 11
    // The server instructs the bot to restart without self-updating. This is to
    // initiate a new bot session.
    //
    // BotEvent.event_msg can be set to the rationale, if any.
    BotEventType_INSTRUCT_RESTART_BOT BotEventType = 12
    // The server instructs the bot to self-update.
    //
    // BotEvent.event_msg shall be set to the version to update to.
    // BotEvent.bot.info.version contains the bot's previous version.
    BotEventType_INSTRUCT_UPDATE_BOT_CODE BotEventType = 13
    // The server instructs the bot to stop its process.
    //
    // BotEvent.event_msg shall not be set. BotEvent.bot.current_task_id shall
    // contain the task ID.
    BotEventType_INSTRUCT_TERMINATE_BOT BotEventType = 14
    // Bot completed a task.
    //
    // BotEvent.event_msg shall not be set. BotEvent.bot.current_task_id shall
    // contain the task ID.
    BotEventType_TASK_COMPLETED BotEventType = 20
    // Bot had an internal failure (RAN_INTERNAL_FAILURE) to report to the server
    // while processing a task. This shall send a report to the administrator of
    // the instance and service author.
    //
    // This event shall not be filed in case of a MISSING_INPUTS.
    //
    // BotEvent.event_msg shall contain the error message.
    // BotEvent.bot.current_task_id shall contain the task ID.
    BotEventType_TASK_INTERNAL_FAILURE BotEventType = 21
    // Bot is forcibly killing the task.
    //
    // This can be induced by a server side request (KILLED, PREEMPTED) or by a
    // bot side decision (TIMED_OUT, TIMED_OUT_SILENCE).
    //
    // BotEvent.event_msg shall not be set. BotEvent.bot.current_task_id shall
    // contain the task ID.
    BotEventType_TASK_KILLED BotEventType = 22
)

func (BotEventType) EnumDescriptor Uses

func (BotEventType) EnumDescriptor() ([]byte, []int)

func (BotEventType) String Uses

func (x BotEventType) String() string

type BotEventsRequest Uses

type BotEventsRequest struct {
    // Required. Bot ID to retrieve results from.
    BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
    // Optional. Use this field to specify the maximum number of results to be
    // returned by the server.
    //
    // The server may further constrain the maximum number of results returned in
    // a single page. If the page_size is 0, the server will decide the number of
    // results to be returned.
    PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
    // Optional. Use this field to request a specific page of the list results,
    // following a previous call.
    //
    // When specified, page_size, start_time and end_time must match exactly the
    // previous call's argument.
    PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
    // Optional. Earliest time to return bot event. Inclusive.
    //
    // If not specified, pagination is done until all events are returned.
    StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
    // Optional. Most recent time to return bot event. Exclusive.
    //
    // If not specified, defaults to the current time.
    EndTime              *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
    XXX_NoUnkeyedLiteral struct{}             `json:"-"`
    XXX_unrecognized     []byte               `json:"-"`
    XXX_sizecache        int32                `json:"-"`
}

Request for BotAPI.Events.

func (*BotEventsRequest) Descriptor Uses

func (*BotEventsRequest) Descriptor() ([]byte, []int)

func (*BotEventsRequest) GetBotId Uses

func (m *BotEventsRequest) GetBotId() string

func (*BotEventsRequest) GetEndTime Uses

func (m *BotEventsRequest) GetEndTime() *timestamp.Timestamp

func (*BotEventsRequest) GetPageSize Uses

func (m *BotEventsRequest) GetPageSize() int32

func (*BotEventsRequest) GetPageToken Uses

func (m *BotEventsRequest) GetPageToken() string

func (*BotEventsRequest) GetStartTime Uses

func (m *BotEventsRequest) GetStartTime() *timestamp.Timestamp

func (*BotEventsRequest) ProtoMessage Uses

func (*BotEventsRequest) ProtoMessage()

func (*BotEventsRequest) Reset Uses

func (m *BotEventsRequest) Reset()

func (*BotEventsRequest) String Uses

func (m *BotEventsRequest) String() string

func (*BotEventsRequest) XXX_DiscardUnknown Uses

func (m *BotEventsRequest) XXX_DiscardUnknown()

func (*BotEventsRequest) XXX_Marshal Uses

func (m *BotEventsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*BotEventsRequest) XXX_Merge Uses

func (m *BotEventsRequest) XXX_Merge(src proto.Message)

func (*BotEventsRequest) XXX_Size Uses

func (m *BotEventsRequest) XXX_Size() int

func (*BotEventsRequest) XXX_Unmarshal Uses

func (m *BotEventsRequest) XXX_Unmarshal(b []byte) error

type BotEventsResponse Uses

type BotEventsResponse struct {
    // Events are in reverse chronological order, most recents first and going
    // down to older events.
    Events []*BotEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
    // This field represents the pagination token to retrieve the next page of
    // results. If the value is "", it means no further results for the request.
    NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Response of BotAPI.Events.

func (*BotEventsResponse) Descriptor Uses

func (*BotEventsResponse) Descriptor() ([]byte, []int)

func (*BotEventsResponse) GetEvents Uses

func (m *BotEventsResponse) GetEvents() []*BotEvent

func (*BotEventsResponse) GetNextPageToken Uses

func (m *BotEventsResponse) GetNextPageToken() string

func (*BotEventsResponse) ProtoMessage Uses

func (*BotEventsResponse) ProtoMessage()

func (*BotEventsResponse) Reset Uses

func (m *BotEventsResponse) Reset()

func (*BotEventsResponse) String Uses

func (m *BotEventsResponse) String() string

func (*BotEventsResponse) XXX_DiscardUnknown Uses

func (m *BotEventsResponse) XXX_DiscardUnknown()

func (*BotEventsResponse) XXX_Marshal Uses

func (m *BotEventsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*BotEventsResponse) XXX_Merge Uses

func (m *BotEventsResponse) XXX_Merge(src proto.Message)

func (*BotEventsResponse) XXX_Size Uses

func (m *BotEventsResponse) XXX_Size() int

func (*BotEventsResponse) XXX_Unmarshal Uses

func (m *BotEventsResponse) XXX_Unmarshal(b []byte) error

type BotInfo Uses

type BotInfo struct {
    // supplemental contains the free form JSON data that includes interesting
    // information about the bot that doesn't fit in any of the fields below.
    //
    // Anything that is usable by multiple customers should eventually be moved to
    // a new field below.
    Supplemental *_struct.Struct `protobuf:"bytes,1,opt,name=supplemental,proto3" json:"supplemental,omitempty"`
    // Bot's version. An opaque value.
    //
    // This value is Swarming instance and configuration dependent. Bot are
    // updated through the process described at
    // https://chromium.googlesource.com/infra/luci/luci-py.git/+/master/appengine/swarming/doc/Bot.md#update
    Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
    // External IP address as visible by the server.
    //
    // This could be a NAT'ing router external IP.
    //
    // Can be either IPv4 or IPv6.
    ExternalIp string `protobuf:"bytes,3,opt,name=external_ip,json=externalIp,proto3" json:"external_ip,omitempty"`
    // Authentication identity that the bot identified as. An opaque value.
    AuthenticatedAs string `protobuf:"bytes,4,opt,name=authenticated_as,json=authenticatedAs,proto3" json:"authenticated_as,omitempty"`
    // State of the content addressed cache on the bot. This is used for inputs
    // files.
    CasStats *CASStats `protobuf:"bytes,5,opt,name=cas_stats,json=casStats,proto3" json:"cas_stats,omitempty"`
    // State of the named caches (used by incremental tasks) on the bot. This is
    // used for task that benefits from incrementality, like builds.
    //
    // Should be sorted by name.
    NamedCachesStats []*NamedCacheStats `protobuf:"bytes,6,rep,name=named_caches_stats,json=namedCachesStats,proto3" json:"named_caches_stats,omitempty"`
    // State of the CIPD packages cache on the bot. This is use for installable,
    // versioned packages.
    //
    // Should be sorted by package name, then version.
    CipdPackagesCacheStats []*CIPDPackageCacheStats `protobuf:"bytes,7,rep,name=cipd_packages_cache_stats,json=cipdPackagesCacheStats,proto3" json:"cipd_packages_cache_stats,omitempty"`
    // Information about the host.
    Host *PhysicalEntity `protobuf:"bytes,8,opt,name=host,proto3" json:"host,omitempty"`
    // Information about the devices connected to the host.
    //
    // This can be the DUT (Device Under Test) or other peripherals.
    Devices              []*PhysicalEntity `protobuf:"bytes,9,rep,name=devices,proto3" json:"devices,omitempty"`
    XXX_NoUnkeyedLiteral struct{}          `json:"-"`
    XXX_unrecognized     []byte            `json:"-"`
    XXX_sizecache        int32             `json:"-"`
}

Bot reported informational state. This can be used to describe the host, the bot itself and the DUT (Device Under Test) under control as applicable.

This is NOT used for task selection.

func (*BotInfo) Descriptor Uses

func (*BotInfo) Descriptor() ([]byte, []int)

func (*BotInfo) GetAuthenticatedAs Uses

func (m *BotInfo) GetAuthenticatedAs() string

func (*BotInfo) GetCasStats Uses

func (m *BotInfo) GetCasStats() *CASStats

func (*BotInfo) GetCipdPackagesCacheStats Uses

func (m *BotInfo) GetCipdPackagesCacheStats() []*CIPDPackageCacheStats

func (*BotInfo) GetDevices Uses

func (m *BotInfo) GetDevices() []*PhysicalEntity

func (*BotInfo) GetExternalIp Uses

func (m *BotInfo) GetExternalIp() string

func (*BotInfo) GetHost Uses

func (m *BotInfo) GetHost() *PhysicalEntity

func (*BotInfo) GetNamedCachesStats Uses

func (m *BotInfo) GetNamedCachesStats() []*NamedCacheStats

func (*BotInfo) GetSupplemental Uses

func (m *BotInfo) GetSupplemental() *_struct.Struct

func (*BotInfo) GetVersion Uses

func (m *BotInfo) GetVersion() string

func (*BotInfo) ProtoMessage Uses

func (*BotInfo) ProtoMessage()

func (*BotInfo) Reset Uses

func (m *BotInfo) Reset()

func (*BotInfo) String Uses

func (m *BotInfo) String() string

func (*BotInfo) XXX_DiscardUnknown Uses

func (m *BotInfo) XXX_DiscardUnknown()

func (*BotInfo) XXX_Marshal Uses

func (m *BotInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*BotInfo) XXX_Merge Uses

func (m *BotInfo) XXX_Merge(src proto.Message)

func (*BotInfo) XXX_Size Uses

func (m *BotInfo) XXX_Size() int

func (*BotInfo) XXX_Unmarshal Uses

func (m *BotInfo) XXX_Unmarshal(b []byte) error

type BotStatusType Uses

type BotStatusType int32

BotStatusType is one of the states the bot can be in.

A bot status implies being in this status for a certain amount of time, for example a hook running for N seconds, contrary to BotEventType which is about an event that doesn't have an inherent duration.

Some values are more important than others. For example if a bot is now MISSING but used to be QUARANTINED, the value is still MISSING.

const (
    // Invalid bot status, do not use.
    BotStatusType_BOT_STATUS_UNSPECIFIED BotStatusType = 0
    // The server detected that the bot is not pinging the server anymore. Unlike
    // other statuses, this value is set after a timeout.
    //
    // Bot.status_msg shall not be set.
    BotStatusType_MISSING BotStatusType = 1
    // Bot was quarantined by the server.
    //
    // Bot.status_msg shall include the server provided rationale.
    BotStatusType_QUARANTINED_BY_SERVER BotStatusType = 2
    // Bot self-reported as unhealthy.
    //
    // What is currently called as 'quarantined' in the old API.
    //
    // Bot.status_msg shall include the bot provided rationale.
    BotStatusType_QUARANTINED_BY_BOT BotStatusType = 3
    // Bot self-reported as unable to run tasks due to externally induced
    // overhead.
    //
    // Examples include:
    // - The temperature of the DUT (Device Under Test) is too high, and the bot
    //   is waiting for cool down
    // - host is doing self-cleaning work out of the bot's control (puppet is
    //   running), etc.
    //
    // Bot.status_msg shall include the bot provided rationale.
    BotStatusType_OVERHEAD_MAINTENANCE_EXTERNAL BotStatusType = 4
    // Bot self-reported as unable to run tasks due to doing internal overhead.
    //
    // Examples include:
    // - Running hooks
    // - Cleaning up or verifying its local cache
    // - Bot is starting for a version upgrade
    //
    // Bot.status_msg shall disambiguate the type of work item done.
    BotStatusType_OVERHEAD_BOT_INTERNAL BotStatusType = 5
    // Bot is down as its host is rebooting and contact was lost.
    //
    // If the bot doesn't contact back soon enough, it will be considered MISSING.
    //
    // Bot.status_msg shall not be set.
    BotStatusType_HOST_REBOOTING BotStatusType = 6
    // Running a task.
    //
    // Bot.status_msg shall not be set.
    BotStatusType_BUSY BotStatusType = 7
    // Bot is 'reserved' for operations outside of normal operations. This can be
    // relevant for SUT (System Under Test).
    //
    // Bot.status_msg shall not be set.
    BotStatusType_RESERVED BotStatusType = 8
    // Bot is healthy and waiting for tasks.
    //
    // Bot.status_msg shall not be set.
    BotStatusType_IDLE BotStatusType = 9
)

func (BotStatusType) EnumDescriptor Uses

func (BotStatusType) EnumDescriptor() ([]byte, []int)

func (BotStatusType) String Uses

func (x BotStatusType) String() string

type CASEntriesStats Uses

type CASEntriesStats struct {
    NumItems        int64 `protobuf:"varint,1,opt,name=num_items,json=numItems,proto3" json:"num_items,omitempty"`
    TotalBytesItems int64 `protobuf:"varint,2,opt,name=total_bytes_items,json=totalBytesItems,proto3" json:"total_bytes_items,omitempty"`
    // This buffer is compressed as deflate'd delta-encoded varints. This is the
    // list of all the item size for an I/O operation, which can scale in the 100k
    // range. So this can be large! See //client/utils/large.py for the code to
    // handle these.
    Items                []byte   `protobuf:"bytes,6,opt,name=items,proto3" json:"items,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Statistics for differential CAS entries in the context of I/O for a task.

func (*CASEntriesStats) Descriptor Uses

func (*CASEntriesStats) Descriptor() ([]byte, []int)

func (*CASEntriesStats) GetItems Uses

func (m *CASEntriesStats) GetItems() []byte

func (*CASEntriesStats) GetNumItems Uses

func (m *CASEntriesStats) GetNumItems() int64

func (*CASEntriesStats) GetTotalBytesItems Uses

func (m *CASEntriesStats) GetTotalBytesItems() int64

func (*CASEntriesStats) ProtoMessage Uses

func (*CASEntriesStats) ProtoMessage()

func (*CASEntriesStats) Reset Uses

func (m *CASEntriesStats) Reset()

func (*CASEntriesStats) String Uses

func (m *CASEntriesStats) String() string

func (*CASEntriesStats) XXX_DiscardUnknown Uses

func (m *CASEntriesStats) XXX_DiscardUnknown()

func (*CASEntriesStats) XXX_Marshal Uses

func (m *CASEntriesStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CASEntriesStats) XXX_Merge Uses

func (m *CASEntriesStats) XXX_Merge(src proto.Message)

func (*CASEntriesStats) XXX_Size Uses

func (m *CASEntriesStats) XXX_Size() int

func (*CASEntriesStats) XXX_Unmarshal Uses

func (m *CASEntriesStats) XXX_Unmarshal(b []byte) error

type CASStats Uses

type CASStats struct {
    NumberItems          int64                `protobuf:"varint,1,opt,name=number_items,json=numberItems,proto3" json:"number_items,omitempty"`
    Size                 int64                `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
    OldestTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=oldest_time,json=oldestTime,proto3" json:"oldest_time,omitempty"`
    XXX_NoUnkeyedLiteral struct{}             `json:"-"`
    XXX_unrecognized     []byte               `json:"-"`
    XXX_sizecache        int32                `json:"-"`
}

Bot local content addressed cache information.

func (*CASStats) Descriptor Uses

func (*CASStats) Descriptor() ([]byte, []int)

func (*CASStats) GetNumberItems Uses

func (m *CASStats) GetNumberItems() int64

func (*CASStats) GetOldestTime Uses

func (m *CASStats) GetOldestTime() *timestamp.Timestamp

func (*CASStats) GetSize Uses

func (m *CASStats) GetSize() int64

func (*CASStats) ProtoMessage Uses

func (*CASStats) ProtoMessage()

func (*CASStats) Reset Uses

func (m *CASStats) Reset()

func (*CASStats) String Uses

func (m *CASStats) String() string

func (*CASStats) XXX_DiscardUnknown Uses

func (m *CASStats) XXX_DiscardUnknown()

func (*CASStats) XXX_Marshal Uses

func (m *CASStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CASStats) XXX_Merge Uses

func (m *CASStats) XXX_Merge(src proto.Message)

func (*CASStats) XXX_Size Uses

func (m *CASStats) XXX_Size() int

func (*CASStats) XXX_Unmarshal Uses

func (m *CASStats) XXX_Unmarshal(b []byte) error

type CASTree Uses

type CASTree struct {
    // server is one of:
    // - The isolated server to fetch (or push) content from. Must contain
    //   "https://" or "http://" prefix.
    // - The Google Cloud Project name hosting the RBE CAS.
    Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
    // The hex encoded hash of an isolated archive. It is expected to be a SHA-1
    // (40 characters) or SHA-256 (64 characters), based on the namespace value
    // below.
    Digest string `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
    // Namespace on the isolate server. This currently defines the hashing
    // algorithm and compression algorithm but is currently loosely defined.
    //
    // A prefix "sha256-" defines a SHA-256 hashing. Defaults to SHA-1.
    // A suffix "-deflate" or "-gzip" defines a deflate algorithm.
    //
    // When referring to a RBE CAS instance, the namespace must be set to
    // "sha256-GCP". The GCP RBE CAS requires SHA-256 and doesn't support
    // precompressed data.
    Namespace            string   `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Defines a Content Addressed Storage (a cache in practice) data tree reference, normally a reference to a .isolated file.

This can be used to refer to either a task's inputs or a task's outputs.

The .isolated file format is defined at https://chromium.googlesource.com/infra/luci/luci-py.git/+/master/appengine/isolate/doc/Design.md#file-format It is a JSON file listing all the inputs.

It is very different RBE's CAS format, which uses a merkel tree of protobuf files.

func (*CASTree) Descriptor Uses

func (*CASTree) Descriptor() ([]byte, []int)

func (*CASTree) GetDigest Uses

func (m *CASTree) GetDigest() string

func (*CASTree) GetNamespace Uses

func (m *CASTree) GetNamespace() string

func (*CASTree) GetServer Uses

func (m *CASTree) GetServer() string

func (*CASTree) ProtoMessage Uses

func (*CASTree) ProtoMessage()

func (*CASTree) Reset Uses

func (m *CASTree) Reset()

func (*CASTree) String Uses

func (m *CASTree) String() string

func (*CASTree) XXX_DiscardUnknown Uses

func (m *CASTree) XXX_DiscardUnknown()

func (*CASTree) XXX_Marshal Uses

func (m *CASTree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CASTree) XXX_Merge Uses

func (m *CASTree) XXX_Merge(src proto.Message)

func (*CASTree) XXX_Size Uses

func (m *CASTree) XXX_Size() int

func (*CASTree) XXX_Unmarshal Uses

func (m *CASTree) XXX_Unmarshal(b []byte) error

type CIPDPackage Uses

type CIPDPackage struct {
    // The template for the CIPD package name that will have its variables
    // evaluated, e.g. "infra/tools/authutil/${platform}".
    //
    // TODO(vadimsh): Link to documentation of the variable usable.
    PackageName string `protobuf:"bytes,1,opt,name=package_name,json=packageName,proto3" json:"package_name,omitempty"`
    // Valid package version for the requested package.
    Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
    // Path to directory relative to the task's root dir, where the package is to
    // be installed.
    //
    // If empty, the package will be installed at the root of the mapped
    // directory. If file names in the package and in the isolate clash, it will
    // cause a failure.
    DestPath             string   `protobuf:"bytes,3,opt,name=dest_path,json=destPath,proto3" json:"dest_path,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Defines one CIPD package to install prior to running the task.

CIPD packages are versioned and ACL'ed packages that are meant for tools that are kept for a long time.

func (*CIPDPackage) Descriptor Uses

func (*CIPDPackage) Descriptor() ([]byte, []int)

func (*CIPDPackage) GetDestPath Uses

func (m *CIPDPackage) GetDestPath() string

func (*CIPDPackage) GetPackageName Uses

func (m *CIPDPackage) GetPackageName() string

func (*CIPDPackage) GetVersion Uses

func (m *CIPDPackage) GetVersion() string

func (*CIPDPackage) ProtoMessage Uses

func (*CIPDPackage) ProtoMessage()

func (*CIPDPackage) Reset Uses

func (m *CIPDPackage) Reset()

func (*CIPDPackage) String Uses

func (m *CIPDPackage) String() string

func (*CIPDPackage) XXX_DiscardUnknown Uses

func (m *CIPDPackage) XXX_DiscardUnknown()

func (*CIPDPackage) XXX_Marshal Uses

func (m *CIPDPackage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CIPDPackage) XXX_Merge Uses

func (m *CIPDPackage) XXX_Merge(src proto.Message)

func (*CIPDPackage) XXX_Size Uses

func (m *CIPDPackage) XXX_Size() int

func (*CIPDPackage) XXX_Unmarshal Uses

func (m *CIPDPackage) XXX_Unmarshal(b []byte) error

type CIPDPackageCacheStats Uses

type CIPDPackageCacheStats struct {
    Name                 string               `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
    Version              string               `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
    Size                 int64                `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
    LastUseTime          *timestamp.Timestamp `protobuf:"bytes,4,opt,name=last_use_time,json=lastUseTime,proto3" json:"last_use_time,omitempty"`
    XXX_NoUnkeyedLiteral struct{}             `json:"-"`
    XXX_unrecognized     []byte               `json:"-"`
    XXX_sizecache        int32                `json:"-"`
}

Bot local CIPD package cache information.

func (*CIPDPackageCacheStats) Descriptor Uses

func (*CIPDPackageCacheStats) Descriptor() ([]byte, []int)

func (*CIPDPackageCacheStats) GetLastUseTime Uses

func (m *CIPDPackageCacheStats) GetLastUseTime() *timestamp.Timestamp

func (*CIPDPackageCacheStats) GetName Uses

func (m *CIPDPackageCacheStats) GetName() string

func (*CIPDPackageCacheStats) GetSize Uses

func (m *CIPDPackageCacheStats) GetSize() int64

func (*CIPDPackageCacheStats) GetVersion Uses

func (m *CIPDPackageCacheStats) GetVersion() string

func (*CIPDPackageCacheStats) ProtoMessage Uses

func (*CIPDPackageCacheStats) ProtoMessage()

func (*CIPDPackageCacheStats) Reset Uses

func (m *CIPDPackageCacheStats) Reset()

func (*CIPDPackageCacheStats) String Uses

func (m *CIPDPackageCacheStats) String() string

func (*CIPDPackageCacheStats) XXX_DiscardUnknown Uses

func (m *CIPDPackageCacheStats) XXX_DiscardUnknown()

func (*CIPDPackageCacheStats) XXX_Marshal Uses

func (m *CIPDPackageCacheStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CIPDPackageCacheStats) XXX_Merge Uses

func (m *CIPDPackageCacheStats) XXX_Merge(src proto.Message)

func (*CIPDPackageCacheStats) XXX_Size Uses

func (m *CIPDPackageCacheStats) XXX_Size() int

func (*CIPDPackageCacheStats) XXX_Unmarshal Uses

func (m *CIPDPackageCacheStats) XXX_Unmarshal(b []byte) error

type CIPDPins Uses

type CIPDPins struct {
    // The CIPD server where the CIPD packages were fetched from. Must contain
    // "https://" or "http://" prefix.
    //
    // This field or its subfields are optional if default CIPD client is defined
    // in the server config.
    Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
    // The pinned package + version of the CIPD client that was actually used.
    ClientPackage *CIPDPackage `protobuf:"bytes,2,opt,name=client_package,json=clientPackage,proto3" json:"client_package,omitempty"`
    // List of CIPD packages that were installed in the task with fully resolved
    // package names and versions.
    Packages             []*CIPDPackage `protobuf:"bytes,3,rep,name=packages,proto3" json:"packages,omitempty"`
    XXX_NoUnkeyedLiteral struct{}       `json:"-"`
    XXX_unrecognized     []byte         `json:"-"`
    XXX_sizecache        int32          `json:"-"`
}

Defines pinned CIPD packages that were installed during the task.

func (*CIPDPins) Descriptor Uses

func (*CIPDPins) Descriptor() ([]byte, []int)

func (*CIPDPins) GetClientPackage Uses

func (m *CIPDPins) GetClientPackage() *CIPDPackage

func (*CIPDPins) GetPackages Uses

func (m *CIPDPins) GetPackages() []*CIPDPackage

func (*CIPDPins) GetServer Uses

func (m *CIPDPins) GetServer() string

func (*CIPDPins) ProtoMessage Uses

func (*CIPDPins) ProtoMessage()

func (*CIPDPins) Reset Uses

func (m *CIPDPins) Reset()

func (*CIPDPins) String Uses

func (m *CIPDPins) String() string

func (*CIPDPins) XXX_DiscardUnknown Uses

func (m *CIPDPins) XXX_DiscardUnknown()

func (*CIPDPins) XXX_Marshal Uses

func (m *CIPDPins) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CIPDPins) XXX_Merge Uses

func (m *CIPDPins) XXX_Merge(src proto.Message)

func (*CIPDPins) XXX_Size Uses

func (m *CIPDPins) XXX_Size() int

func (*CIPDPins) XXX_Unmarshal Uses

func (m *CIPDPins) XXX_Unmarshal(b []byte) error

type Containment Uses

type Containment struct {
    // Lowers the priority of the task process when started. Doesn't require
    // containment. This gives the bot a chance to survive when the task starts an
    // overwhelming number of children processes.
    LowerPriority bool `protobuf:"varint,1,opt,name=lower_priority,json=lowerPriority,proto3" json:"lower_priority,omitempty"`
    // Defines the type of containment used.
    ContainmentType Containment_ContainmentType `protobuf:"varint,2,opt,name=containment_type,json=containmentType,proto3,enum=swarming.v1.Containment_ContainmentType" json:"containment_type,omitempty"`
    // Limits the number of concurrent active processes.
    LimitProcesses int64 `protobuf:"varint,3,opt,name=limit_processes,json=limitProcesses,proto3" json:"limit_processes,omitempty"`
    // Limits the total amount of memory allocated by processes.
    LimitTotalCommittedMemory int64    `protobuf:"varint,4,opt,name=limit_total_committed_memory,json=limitTotalCommittedMemory,proto3" json:"limit_total_committed_memory,omitempty"`
    XXX_NoUnkeyedLiteral      struct{} `json:"-"`
    XXX_unrecognized          []byte   `json:"-"`
    XXX_sizecache             int32    `json:"-"`
}

Defines the type of containment to use to put the task primary process inside.

TODO(maruel): https://crbug.com/808836

This is highly OS specific: - Lower the integrity level on Windows. https://crbug.com/916586 - Job Object on Windows. https://crbug.com/732818 - Docker on Linux or Windows. https://crbug.com/916584 - cgroup on Linux. https://crbug.com/764493 - Creating a temporary user on Windows and macOS. https://crbug.com/916585 - Lightweight home directory override on Windows, Linux and macOS.

https://crbug.com/811411

func (*Containment) Descriptor Uses

func (*Containment) Descriptor() ([]byte, []int)

func (*Containment) GetContainmentType Uses

func (m *Containment) GetContainmentType() Containment_ContainmentType

func (*Containment) GetLimitProcesses Uses

func (m *Containment) GetLimitProcesses() int64

func (*Containment) GetLimitTotalCommittedMemory Uses

func (m *Containment) GetLimitTotalCommittedMemory() int64

func (*Containment) GetLowerPriority Uses

func (m *Containment) GetLowerPriority() bool

func (*Containment) ProtoMessage Uses

func (*Containment) ProtoMessage()

func (*Containment) Reset Uses

func (m *Containment) Reset()

func (*Containment) String Uses

func (m *Containment) String() string

func (*Containment) XXX_DiscardUnknown Uses

func (m *Containment) XXX_DiscardUnknown()

func (*Containment) XXX_Marshal Uses

func (m *Containment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Containment) XXX_Merge Uses

func (m *Containment) XXX_Merge(src proto.Message)

func (*Containment) XXX_Size Uses

func (m *Containment) XXX_Size() int

func (*Containment) XXX_Unmarshal Uses

func (m *Containment) XXX_Unmarshal(b []byte) error

type Containment_ContainmentType Uses

type Containment_ContainmentType int32
const (
    // Historical value, not specified. Containment may or may not be used.
    Containment_NOT_SPECIFIED Containment_ContainmentType = 0
    // No containment, the default for now.
    Containment_NONE Containment_ContainmentType = 1
    // Use the containment appropriate on the platform.
    Containment_AUTO Containment_ContainmentType = 2
    // Use Job Object on Windows. Will fail if used on other platforms.
    Containment_JOB_OBJECT Containment_ContainmentType = 3
)

func (Containment_ContainmentType) EnumDescriptor Uses

func (Containment_ContainmentType) EnumDescriptor() ([]byte, []int)

func (Containment_ContainmentType) String Uses

func (x Containment_ContainmentType) String() string

type ExternalSchedulerClient Uses

type ExternalSchedulerClient interface {
    // AssignTasks determines which tasks should be run on which of the supplied
    // idle bots.
    AssignTasks(ctx context.Context, in *AssignTasksRequest, opts ...grpc.CallOption) (*AssignTasksResponse, error)
    // GetCancellations determines which tasks should be cancelled on which bots.
    GetCancellations(ctx context.Context, in *GetCancellationsRequest, opts ...grpc.CallOption) (*GetCancellationsResponse, error)
    // NotifyTasks informs the scheduler about the state of tasks (either new
    // tasks, or states of existing tasks).
    NotifyTasks(ctx context.Context, in *NotifyTasksRequest, opts ...grpc.CallOption) (*NotifyTasksResponse, error)
    // GetCallbacks asks the scheduler for a set of request ids that the
    // external scheduler wants to receive callback NotifyTasks calls about.
    GetCallbacks(ctx context.Context, in *GetCallbacksRequest, opts ...grpc.CallOption) (*GetCallbacksResponse, error)
}

ExternalSchedulerClient is the client API for ExternalScheduler service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewExternalSchedulerClient Uses

func NewExternalSchedulerClient(cc *grpc.ClientConn) ExternalSchedulerClient

func NewExternalSchedulerPRPCClient Uses

func NewExternalSchedulerPRPCClient(client *prpc.Client) ExternalSchedulerClient

type ExternalSchedulerServer Uses

type ExternalSchedulerServer interface {
    // AssignTasks determines which tasks should be run on which of the supplied
    // idle bots.
    AssignTasks(context.Context, *AssignTasksRequest) (*AssignTasksResponse, error)
    // GetCancellations determines which tasks should be cancelled on which bots.
    GetCancellations(context.Context, *GetCancellationsRequest) (*GetCancellationsResponse, error)
    // NotifyTasks informs the scheduler about the state of tasks (either new
    // tasks, or states of existing tasks).
    NotifyTasks(context.Context, *NotifyTasksRequest) (*NotifyTasksResponse, error)
    // GetCallbacks asks the scheduler for a set of request ids that the
    // external scheduler wants to receive callback NotifyTasks calls about.
    GetCallbacks(context.Context, *GetCallbacksRequest) (*GetCallbacksResponse, error)
}

ExternalSchedulerServer is the server API for ExternalScheduler service.

type GetCallbacksRequest Uses

type GetCallbacksRequest struct {
    // SchedulerID is the id of the scheduler that this request should be run on.
    SchedulerId          string   `protobuf:"bytes,1,opt,name=scheduler_id,json=schedulerId,proto3" json:"scheduler_id,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

func (*GetCallbacksRequest) Descriptor Uses

func (*GetCallbacksRequest) Descriptor() ([]byte, []int)

func (*GetCallbacksRequest) GetSchedulerId Uses

func (m *GetCallbacksRequest) GetSchedulerId() string

func (*GetCallbacksRequest) ProtoMessage Uses

func (*GetCallbacksRequest) ProtoMessage()

func (*GetCallbacksRequest) Reset Uses

func (m *GetCallbacksRequest) Reset()

func (*GetCallbacksRequest) String Uses

func (m *GetCallbacksRequest) String() string

func (*GetCallbacksRequest) XXX_DiscardUnknown Uses

func (m *GetCallbacksRequest) XXX_DiscardUnknown()

func (*GetCallbacksRequest) XXX_Marshal Uses

func (m *GetCallbacksRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetCallbacksRequest) XXX_Merge Uses

func (m *GetCallbacksRequest) XXX_Merge(src proto.Message)

func (*GetCallbacksRequest) XXX_Size Uses

func (m *GetCallbacksRequest) XXX_Size() int

func (*GetCallbacksRequest) XXX_Unmarshal Uses

func (m *GetCallbacksRequest) XXX_Unmarshal(b []byte) error

type GetCallbacksResponse Uses

type GetCallbacksResponse struct {
    // TaskIds is the list of tasks that the external scheduler would like
    // callback notifications about.
    TaskIds              []string `protobuf:"bytes,1,rep,name=task_ids,json=taskIds,proto3" json:"task_ids,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

func (*GetCallbacksResponse) Descriptor Uses

func (*GetCallbacksResponse) Descriptor() ([]byte, []int)

func (*GetCallbacksResponse) GetTaskIds Uses

func (m *GetCallbacksResponse) GetTaskIds() []string

func (*GetCallbacksResponse) ProtoMessage Uses

func (*GetCallbacksResponse) ProtoMessage()

func (*GetCallbacksResponse) Reset Uses

func (m *GetCallbacksResponse) Reset()

func (*GetCallbacksResponse) String Uses

func (m *GetCallbacksResponse) String() string

func (*GetCallbacksResponse) XXX_DiscardUnknown Uses

func (m *GetCallbacksResponse) XXX_DiscardUnknown()

func (*GetCallbacksResponse) XXX_Marshal Uses

func (m *GetCallbacksResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetCallbacksResponse) XXX_Merge Uses

func (m *GetCallbacksResponse) XXX_Merge(src proto.Message)

func (*GetCallbacksResponse) XXX_Size Uses

func (m *GetCallbacksResponse) XXX_Size() int

func (*GetCallbacksResponse) XXX_Unmarshal Uses

func (m *GetCallbacksResponse) XXX_Unmarshal(b []byte) error

type GetCancellationsRequest Uses

type GetCancellationsRequest struct {
    // SchedulerID is the id of the scheduler that this request should be run on.
    SchedulerId          string   `protobuf:"bytes,1,opt,name=scheduler_id,json=schedulerId,proto3" json:"scheduler_id,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

func (*GetCancellationsRequest) Descriptor Uses

func (*GetCancellationsRequest) Descriptor() ([]byte, []int)

func (*GetCancellationsRequest) GetSchedulerId Uses

func (m *GetCancellationsRequest) GetSchedulerId() string

func (*GetCancellationsRequest) ProtoMessage Uses

func (*GetCancellationsRequest) ProtoMessage()

func (*GetCancellationsRequest) Reset Uses

func (m *GetCancellationsRequest) Reset()

func (*GetCancellationsRequest) String Uses

func (m *GetCancellationsRequest) String() string

func (*GetCancellationsRequest) XXX_DiscardUnknown Uses

func (m *GetCancellationsRequest) XXX_DiscardUnknown()

func (*GetCancellationsRequest) XXX_Marshal Uses

func (m *GetCancellationsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetCancellationsRequest) XXX_Merge Uses

func (m *GetCancellationsRequest) XXX_Merge(src proto.Message)

func (*GetCancellationsRequest) XXX_Size Uses

func (m *GetCancellationsRequest) XXX_Size() int

func (*GetCancellationsRequest) XXX_Unmarshal Uses

func (m *GetCancellationsRequest) XXX_Unmarshal(b []byte) error

type GetCancellationsResponse Uses

type GetCancellationsResponse struct {
    // Cancellations is the set of (bot, task) pairs for tasks that should be
    // cancelled on bots.
    Cancellations        []*GetCancellationsResponse_Cancellation `protobuf:"bytes,1,rep,name=cancellations,proto3" json:"cancellations,omitempty"`
    XXX_NoUnkeyedLiteral struct{}                                 `json:"-"`
    XXX_unrecognized     []byte                                   `json:"-"`
    XXX_sizecache        int32                                    `json:"-"`
}

func (*GetCancellationsResponse) Descriptor Uses

func (*GetCancellationsResponse) Descriptor() ([]byte, []int)

func (*GetCancellationsResponse) GetCancellations Uses

func (m *GetCancellationsResponse) GetCancellations() []*GetCancellationsResponse_Cancellation

func (*GetCancellationsResponse) ProtoMessage Uses

func (*GetCancellationsResponse) ProtoMessage()

func (*GetCancellationsResponse) Reset Uses

func (m *GetCancellationsResponse) Reset()

func (*GetCancellationsResponse) String Uses

func (m *GetCancellationsResponse) String() string

func (*GetCancellationsResponse) XXX_DiscardUnknown Uses

func (m *GetCancellationsResponse) XXX_DiscardUnknown()

func (*GetCancellationsResponse) XXX_Marshal Uses

func (m *GetCancellationsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetCancellationsResponse) XXX_Merge Uses

func (m *GetCancellationsResponse) XXX_Merge(src proto.Message)

func (*GetCancellationsResponse) XXX_Size Uses

func (m *GetCancellationsResponse) XXX_Size() int

func (*GetCancellationsResponse) XXX_Unmarshal Uses

func (m *GetCancellationsResponse) XXX_Unmarshal(b []byte) error

type GetCancellationsResponse_Cancellation Uses

type GetCancellationsResponse_Cancellation struct {
    // BotID is the bot that a task should be cancelled on.
    BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
    // TaskID is the task that should be cancelled on the bot.
    TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
    // Reason is the reason the task was cancelled.
    Reason GetCancellationsResponse_Cancellation_Reason `protobuf:"varint,3,opt,name=reason,proto3,enum=swarming.v1.GetCancellationsResponse_Cancellation_Reason" json:"reason,omitempty"`
    // ExtraInfo is optional, human readable extra information about why the
    // task was cancelled.
    ExtraInfo            string   `protobuf:"bytes,4,opt,name=extra_info,json=extraInfo,proto3" json:"extra_info,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

func (*GetCancellationsResponse_Cancellation) Descriptor Uses

func (*GetCancellationsResponse_Cancellation) Descriptor() ([]byte, []int)

func (*GetCancellationsResponse_Cancellation) GetBotId Uses

func (m *GetCancellationsResponse_Cancellation) GetBotId() string

func (*GetCancellationsResponse_Cancellation) GetExtraInfo Uses

func (m *GetCancellationsResponse_Cancellation) GetExtraInfo() string

func (*GetCancellationsResponse_Cancellation) GetReason Uses

func (m *GetCancellationsResponse_Cancellation) GetReason() GetCancellationsResponse_Cancellation_Reason

func (*GetCancellationsResponse_Cancellation) GetTaskId Uses

func (m *GetCancellationsResponse_Cancellation) GetTaskId() string

func (*GetCancellationsResponse_Cancellation) ProtoMessage Uses

func (*GetCancellationsResponse_Cancellation) ProtoMessage()

func (*GetCancellationsResponse_Cancellation) Reset Uses

func (m *GetCancellationsResponse_Cancellation) Reset()

func (*GetCancellationsResponse_Cancellation) String Uses

func (m *GetCancellationsResponse_Cancellation) String() string

func (*GetCancellationsResponse_Cancellation) XXX_DiscardUnknown Uses

func (m *GetCancellationsResponse_Cancellation) XXX_DiscardUnknown()

func (*GetCancellationsResponse_Cancellation) XXX_Marshal Uses

func (m *GetCancellationsResponse_Cancellation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetCancellationsResponse_Cancellation) XXX_Merge Uses

func (m *GetCancellationsResponse_Cancellation) XXX_Merge(src proto.Message)

func (*GetCancellationsResponse_Cancellation) XXX_Size Uses

func (m *GetCancellationsResponse_Cancellation) XXX_Size() int

func (*GetCancellationsResponse_Cancellation) XXX_Unmarshal Uses

func (m *GetCancellationsResponse_Cancellation) XXX_Unmarshal(b []byte) error

type GetCancellationsResponse_Cancellation_Reason Uses

type GetCancellationsResponse_Cancellation_Reason int32
const (
    // Invalid reason, do not use.
    GetCancellationsResponse_Cancellation_INVALID GetCancellationsResponse_Cancellation_Reason = 0
    // Task was running on a worker, but was interrupted by another task.
    // Task may be retried by swarming.
    GetCancellationsResponse_Cancellation_PREEMPTED GetCancellationsResponse_Cancellation_Reason = 1
    // Task had invalid or erroneous properties that make it not handleable
    // by scheduler. Task should not be retried.
    GetCancellationsResponse_Cancellation_ERROR GetCancellationsResponse_Cancellation_Reason = 2
)

func (GetCancellationsResponse_Cancellation_Reason) EnumDescriptor Uses

func (GetCancellationsResponse_Cancellation_Reason) EnumDescriptor() ([]byte, []int)

func (GetCancellationsResponse_Cancellation_Reason) String Uses

func (x GetCancellationsResponse_Cancellation_Reason) String() string

type IdleBot Uses

type IdleBot struct {
    // BotId is the id of the bot that is idle.
    BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
    // Dimensions is the dimension set of the idle bot.
    Dimensions           []string `protobuf:"bytes,2,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

func (*IdleBot) Descriptor Uses

func (*IdleBot) Descriptor() ([]byte, []int)

func (*IdleBot) GetBotId Uses

func (m *IdleBot) GetBotId() string

func (*IdleBot) GetDimensions Uses

func (m *IdleBot) GetDimensions() []string

func (*IdleBot) ProtoMessage Uses

func (*IdleBot) ProtoMessage()

func (*IdleBot) Reset Uses

func (m *IdleBot) Reset()

func (*IdleBot) String Uses

func (m *IdleBot) String() string

func (*IdleBot) XXX_DiscardUnknown Uses

func (m *IdleBot) XXX_DiscardUnknown()

func (*IdleBot) XXX_Marshal Uses

func (m *IdleBot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*IdleBot) XXX_Merge Uses

func (m *IdleBot) XXX_Merge(src proto.Message)

func (*IdleBot) XXX_Size Uses

func (m *IdleBot) XXX_Size() int

func (*IdleBot) XXX_Unmarshal Uses

func (m *IdleBot) XXX_Unmarshal(b []byte) error

type NamedCacheEntry Uses

type NamedCacheEntry struct {
    // Unique name of the cache. Required. Length is limited to 4096.
    Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
    // Path to directory relative to the task's root dir, where the named cache is
    // to be installed.
    //
    // A path cannot be shared among multiple caches or CIPD installations.
    // A task will fail if a file/dir with the same name already exists.
    DestPath             string   `protobuf:"bytes,2,opt,name=dest_path,json=destPath,proto3" json:"dest_path,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Describes a named cache that should be reused on the bot.

A NamedCacheEntry in a task specifies that the task wants a directory to be persisted on the bot across tasks.

The cache directory is created at <run_dir>/|path|. If the cache was not present on the bot prior the task's execution, the directory is empty when the task starts. Any change done in the directory by the task is persisted on the bot after the task completes.

If another task runs on the same bot and requests the same named cache, even if mapped to a different path, it will get the updated content.

func (*NamedCacheEntry) Descriptor Uses

func (*NamedCacheEntry) Descriptor() ([]byte, []int)

func (*NamedCacheEntry) GetDestPath Uses

func (m *NamedCacheEntry) GetDestPath() string

func (*NamedCacheEntry) GetName Uses

func (m *NamedCacheEntry) GetName() string

func (*NamedCacheEntry) ProtoMessage Uses

func (*NamedCacheEntry) ProtoMessage()

func (*NamedCacheEntry) Reset Uses

func (m *NamedCacheEntry) Reset()

func (*NamedCacheEntry) String Uses

func (m *NamedCacheEntry) String() string

func (*NamedCacheEntry) XXX_DiscardUnknown Uses

func (m *NamedCacheEntry) XXX_DiscardUnknown()

func (*NamedCacheEntry) XXX_Marshal Uses

func (m *NamedCacheEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*NamedCacheEntry) XXX_Merge Uses

func (m *NamedCacheEntry) XXX_Merge(src proto.Message)

func (*NamedCacheEntry) XXX_Size Uses

func (m *NamedCacheEntry) XXX_Size() int

func (*NamedCacheEntry) XXX_Unmarshal Uses

func (m *NamedCacheEntry) XXX_Unmarshal(b []byte) error

type NamedCacheStats Uses

type NamedCacheStats struct {
    Name                 string               `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
    Size                 int64                `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
    LastUseTime          *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_use_time,json=lastUseTime,proto3" json:"last_use_time,omitempty"`
    XXX_NoUnkeyedLiteral struct{}             `json:"-"`
    XXX_unrecognized     []byte               `json:"-"`
    XXX_sizecache        int32                `json:"-"`
}

Bot local named cache information.

func (*NamedCacheStats) Descriptor Uses

func (*NamedCacheStats) Descriptor() ([]byte, []int)

func (*NamedCacheStats) GetLastUseTime Uses

func (m *NamedCacheStats) GetLastUseTime() *timestamp.Timestamp

func (*NamedCacheStats) GetName Uses

func (m *NamedCacheStats) GetName() string

func (*NamedCacheStats) GetSize Uses

func (m *NamedCacheStats) GetSize() int64

func (*NamedCacheStats) ProtoMessage Uses

func (*NamedCacheStats) ProtoMessage()

func (*NamedCacheStats) Reset Uses

func (m *NamedCacheStats) Reset()

func (*NamedCacheStats) String Uses

func (m *NamedCacheStats) String() string

func (*NamedCacheStats) XXX_DiscardUnknown Uses

func (m *NamedCacheStats) XXX_DiscardUnknown()

func (*NamedCacheStats) XXX_Marshal Uses

func (m *NamedCacheStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*NamedCacheStats) XXX_Merge Uses

func (m *NamedCacheStats) XXX_Merge(src proto.Message)

func (*NamedCacheStats) XXX_Size Uses

func (m *NamedCacheStats) XXX_Size() int

func (*NamedCacheStats) XXX_Unmarshal Uses

func (m *NamedCacheStats) XXX_Unmarshal(b []byte) error

type NotifyTasksItem Uses

type NotifyTasksItem struct {
    // Time is the time at which the given task was in the given state.
    Time *timestamp.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
    // Task describes a task request and its current state.
    Task                 *TaskSpec `protobuf:"bytes,2,opt,name=task,proto3" json:"task,omitempty"`
    XXX_NoUnkeyedLiteral struct{}  `json:"-"`
    XXX_unrecognized     []byte    `json:"-"`
    XXX_sizecache        int32     `json:"-"`
}

func (*NotifyTasksItem) Descriptor Uses

func (*NotifyTasksItem) Descriptor() ([]byte, []int)

func (*NotifyTasksItem) GetTask Uses

func (m *NotifyTasksItem) GetTask() *TaskSpec

func (*NotifyTasksItem) GetTime Uses

func (m *NotifyTasksItem) GetTime() *timestamp.Timestamp

func (*NotifyTasksItem) ProtoMessage Uses

func (*NotifyTasksItem) ProtoMessage()

func (*NotifyTasksItem) Reset Uses

func (m *NotifyTasksItem) Reset()

func (*NotifyTasksItem) String Uses

func (m *NotifyTasksItem) String() string

func (*NotifyTasksItem) XXX_DiscardUnknown Uses

func (m *NotifyTasksItem) XXX_DiscardUnknown()

func (*NotifyTasksItem) XXX_Marshal Uses

func (m *NotifyTasksItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*NotifyTasksItem) XXX_Merge Uses

func (m *NotifyTasksItem) XXX_Merge(src proto.Message)

func (*NotifyTasksItem) XXX_Size Uses

func (m *NotifyTasksItem) XXX_Size() int

func (*NotifyTasksItem) XXX_Unmarshal Uses

func (m *NotifyTasksItem) XXX_Unmarshal(b []byte) error

type NotifyTasksRequest Uses

type NotifyTasksRequest struct {
    // SchedulerID is the id of the scheduler that this request should be run on.
    SchedulerId string `protobuf:"bytes,1,opt,name=scheduler_id,json=schedulerId,proto3" json:"scheduler_id,omitempty"`
    // Notifications is the set of task notifications to send to the scheduler.
    Notifications []*NotifyTasksItem `protobuf:"bytes,2,rep,name=notifications,proto3" json:"notifications,omitempty"`
    // IsCallback specifies whether these notifications are in response to
    // updates that were requested by a previous GetCallbacks call.
    //
    // This is for diagnostic purposes only.
    IsCallback           bool     `protobuf:"varint,3,opt,name=is_callback,json=isCallback,proto3" json:"is_callback,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

func (*NotifyTasksRequest) Descriptor Uses

func (*NotifyTasksRequest) Descriptor() ([]byte, []int)

func (*NotifyTasksRequest) GetIsCallback Uses

func (m *NotifyTasksRequest) GetIsCallback() bool

func (*NotifyTasksRequest) GetNotifications Uses

func (m *NotifyTasksRequest) GetNotifications() []*NotifyTasksItem

func (*NotifyTasksRequest) GetSchedulerId Uses

func (m *NotifyTasksRequest) GetSchedulerId() string

func (*NotifyTasksRequest) ProtoMessage Uses

func (*NotifyTasksRequest) ProtoMessage()

func (*NotifyTasksRequest) Reset Uses

func (m *NotifyTasksRequest) Reset()

func (*NotifyTasksRequest) String Uses

func (m *NotifyTasksRequest) String() string

func (*NotifyTasksRequest) XXX_DiscardUnknown Uses

func (m *NotifyTasksRequest) XXX_DiscardUnknown()

func (*NotifyTasksRequest) XXX_Marshal Uses

func (m *NotifyTasksRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*NotifyTasksRequest) XXX_Merge Uses

func (m *NotifyTasksRequest) XXX_Merge(src proto.Message)

func (*NotifyTasksRequest) XXX_Size Uses

func (m *NotifyTasksRequest) XXX_Size() int

func (*NotifyTasksRequest) XXX_Unmarshal Uses

func (m *NotifyTasksRequest) XXX_Unmarshal(b []byte) error

type NotifyTasksResponse Uses

type NotifyTasksResponse struct {
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

func (*NotifyTasksResponse) Descriptor Uses

func (*NotifyTasksResponse) Descriptor() ([]byte, []int)

func (*NotifyTasksResponse) ProtoMessage Uses

func (*NotifyTasksResponse) ProtoMessage()

func (*NotifyTasksResponse) Reset Uses

func (m *NotifyTasksResponse) Reset()

func (*NotifyTasksResponse) String Uses

func (m *NotifyTasksResponse) String() string

func (*NotifyTasksResponse) XXX_DiscardUnknown Uses

func (m *NotifyTasksResponse) XXX_DiscardUnknown()

func (*NotifyTasksResponse) XXX_Marshal Uses

func (m *NotifyTasksResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*NotifyTasksResponse) XXX_Merge Uses

func (m *NotifyTasksResponse) XXX_Merge(src proto.Message)

func (*NotifyTasksResponse) XXX_Size Uses

func (m *NotifyTasksResponse) XXX_Size() int

func (*NotifyTasksResponse) XXX_Unmarshal Uses

func (m *NotifyTasksResponse) XXX_Unmarshal(b []byte) error

type PhysicalEntity Uses

type PhysicalEntity struct {
    // Name that represents this physical entity.
    //
    // For a host, it shall be the hostname. For a device, it should be the device
    // hostname, if any. Failing that, something that makes sense to the users.
    Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
    // supplemental contains the free form JSON data that includes interesting
    // information about the device that doesn't fit in any of the fields below.
    //
    // Anything that is usable by multiple customers should eventually be moved to
    // a new field below.
    Supplemental *_struct.Struct `protobuf:"bytes,2,opt,name=supplemental,proto3" json:"supplemental,omitempty"`
    // IP address as visible by the bot process (bot_main) itself.
    //
    // In the case of the host, it will be one of the IP addresses assigned to it.
    // In the case of the host where the bot is running inside docker, it will be
    // the IP address assigned to the docker container.
    // In the case of a device, it is the IP address of the device, if any.
    //
    // Can be either IPv4 or IPv6.
    Ip                   string   `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

PhysicalEntity includes information about an host or device.

This can be the host where the bot runs, or a device under control of the bot.

If the bot runs inside a docker container, this information is about the container, or whatever the bot can observe from its vantage point.

func (*PhysicalEntity) Descriptor Uses

func (*PhysicalEntity) Descriptor() ([]byte, []int)

func (*PhysicalEntity) GetIp Uses

func (m *PhysicalEntity) GetIp() string

func (*PhysicalEntity) GetName Uses

func (m *PhysicalEntity) GetName() string

func (*PhysicalEntity) GetSupplemental Uses

func (m *PhysicalEntity) GetSupplemental() *_struct.Struct

func (*PhysicalEntity) ProtoMessage Uses

func (*PhysicalEntity) ProtoMessage()

func (*PhysicalEntity) Reset Uses

func (m *PhysicalEntity) Reset()

func (*PhysicalEntity) String Uses

func (m *PhysicalEntity) String() string

func (*PhysicalEntity) XXX_DiscardUnknown Uses

func (m *PhysicalEntity) XXX_DiscardUnknown()

func (*PhysicalEntity) XXX_Marshal Uses

func (m *PhysicalEntity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PhysicalEntity) XXX_Merge Uses

func (m *PhysicalEntity) XXX_Merge(src proto.Message)

func (*PhysicalEntity) XXX_Size Uses

func (m *PhysicalEntity) XXX_Size() int

func (*PhysicalEntity) XXX_Unmarshal Uses

func (m *PhysicalEntity) XXX_Unmarshal(b []byte) error

type PubSub Uses

type PubSub struct {
    // Full topic name to post task state updates to, e.g.
    // "projects/<id>/topics/<id>".
    Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
    // Secret string to put into "auth_token" attribute of PubSub messages.
    //
    // This value is write only, it cannot be retrieved back.
    AuthToken string `protobuf:"bytes,2,opt,name=auth_token,json=authToken,proto3" json:"auth_token,omitempty"`
    // String to put into "userdata" attribute of PubSub messages.
    Userdata             string   `protobuf:"bytes,3,opt,name=userdata,proto3" json:"userdata,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

PubSub is a Cloud Pub/Sub topic to send task updates to.

For this to work, the Swarming's AppEngine service account must have roles/pubsub.publisher role on the Cloud Pub/Sub topic.

For a Swarming instance "FOOBAR.appspot.com", the service account to grant publisher right is "FOOBAR@@appspot.gserviceaccount.com".

This is described at https://cloud.google.com/pubsub/docs/access-control.

To grant Swarming instance FOOBAR.appspot.com publisher rights to topic projects/PROJ/topics/TOP, use:

gcloud beta pubsub topics add-iam-policy-binding \
    TOP \
    --project PROJ \
    --member serviceAccount:FOOBAR@appspot.gserviceaccount.com \
    --role roles/pubsub.publisher

See https://cloud.google.com/pubsub/docs/authentication for more information.

func (*PubSub) Descriptor Uses

func (*PubSub) Descriptor() ([]byte, []int)

func (*PubSub) GetAuthToken Uses

func (m *PubSub) GetAuthToken() string

func (*PubSub) GetTopic Uses

func (m *PubSub) GetTopic() string

func (*PubSub) GetUserdata Uses

func (m *PubSub) GetUserdata() string

func (*PubSub) ProtoMessage Uses

func (*PubSub) ProtoMessage()

func (*PubSub) Reset Uses

func (m *PubSub) Reset()

func (*PubSub) String Uses

func (m *PubSub) String() string

func (*PubSub) XXX_DiscardUnknown Uses

func (m *PubSub) XXX_DiscardUnknown()

func (*PubSub) XXX_Marshal Uses

func (m *PubSub) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PubSub) XXX_Merge Uses

func (m *PubSub) XXX_Merge(src proto.Message)

func (*PubSub) XXX_Size Uses

func (m *PubSub) XXX_Size() int

func (*PubSub) XXX_Unmarshal Uses

func (m *PubSub) XXX_Unmarshal(b []byte) error

type SliceSpec Uses

type SliceSpec struct {
    // Dimensions is set dimension strings for this slice.
    Dimensions           []string `protobuf:"bytes,1,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

SliceSpec describes a task request slice, for the purposes of TaskSpec.

func (*SliceSpec) Descriptor Uses

func (*SliceSpec) Descriptor() ([]byte, []int)

func (*SliceSpec) GetDimensions Uses

func (m *SliceSpec) GetDimensions() []string

func (*SliceSpec) ProtoMessage Uses

func (*SliceSpec) ProtoMessage()

func (*SliceSpec) Reset Uses

func (m *SliceSpec) Reset()

func (*SliceSpec) String Uses

func (m *SliceSpec) String() string

func (*SliceSpec) XXX_DiscardUnknown Uses

func (m *SliceSpec) XXX_DiscardUnknown()

func (*SliceSpec) XXX_Marshal Uses

func (m *SliceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SliceSpec) XXX_Merge Uses

func (m *SliceSpec) XXX_Merge(src proto.Message)

func (*SliceSpec) XXX_Size Uses

func (m *SliceSpec) XXX_Size() int

func (*SliceSpec) XXX_Unmarshal Uses

func (m *SliceSpec) XXX_Unmarshal(b []byte) error

type StringListPair Uses

type StringListPair struct {
    Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
    // All the values for this key. values must be sorted. Human readable.
    //
    // This string should make sense to a user in the context of 'key'.
    Values               []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Represents a mapping of string to a list of strings.

The same as a map<key, repeated values>, except that the encoding is deterministic.

If the StringListPair is itself repeated inside another message, the list must be sorted by key and the keys must be unique.

func (*StringListPair) Descriptor Uses

func (*StringListPair) Descriptor() ([]byte, []int)

func (*StringListPair) GetKey Uses

func (m *StringListPair) GetKey() string

func (*StringListPair) GetValues Uses

func (m *StringListPair) GetValues() []string

func (*StringListPair) ProtoMessage Uses

func (*StringListPair) ProtoMessage()

func (*StringListPair) Reset Uses

func (m *StringListPair) Reset()

func (*StringListPair) String Uses

func (m *StringListPair) String() string

func (*StringListPair) XXX_DiscardUnknown Uses

func (m *StringListPair) XXX_DiscardUnknown()

func (*StringListPair) XXX_Marshal Uses

func (m *StringListPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*StringListPair) XXX_Merge Uses

func (m *StringListPair) XXX_Merge(src proto.Message)

func (*StringListPair) XXX_Size Uses

func (m *StringListPair) XXX_Size() int

func (*StringListPair) XXX_Unmarshal Uses

func (m *StringListPair) XXX_Unmarshal(b []byte) error

type StringPair Uses

type StringPair struct {
    Key                  string   `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
    Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Represents a mapping of string to a string.

The same as a map<key, value>, except that the encoding is deterministic.

If the StringPair is itself repeated inside another message, the list must be sorted by key and the keys must be unique.

func (*StringPair) Descriptor Uses

func (*StringPair) Descriptor() ([]byte, []int)

func (*StringPair) GetKey Uses

func (m *StringPair) GetKey() string

func (*StringPair) GetValue Uses

func (m *StringPair) GetValue() string

func (*StringPair) ProtoMessage Uses

func (*StringPair) ProtoMessage()

func (*StringPair) Reset Uses

func (m *StringPair) Reset()

func (*StringPair) String Uses

func (m *StringPair) String() string

func (*StringPair) XXX_DiscardUnknown Uses

func (m *StringPair) XXX_DiscardUnknown()

func (*StringPair) XXX_Marshal Uses

func (m *StringPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*StringPair) XXX_Merge Uses

func (m *StringPair) XXX_Merge(src proto.Message)

func (*StringPair) XXX_Size Uses

func (m *StringPair) XXX_Size() int

func (*StringPair) XXX_Unmarshal Uses

func (m *StringPair) XXX_Unmarshal(b []byte) error

type TaskAssignment Uses

type TaskAssignment struct {
    // BotID is the bot that should be assigned a task.
    BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
    // TaskID is the task that should be assigned to the bot.
    TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
    // SliceNumber is the slice within the task that should be assigned to the bot.
    // If absent, slice 0 will be assumed.
    SliceNumber          int32    `protobuf:"varint,3,opt,name=slice_number,json=sliceNumber,proto3" json:"slice_number,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

func (*TaskAssignment) Descriptor Uses

func (*TaskAssignment) Descriptor() ([]byte, []int)

func (*TaskAssignment) GetBotId Uses

func (m *TaskAssignment) GetBotId() string

func (*TaskAssignment) GetSliceNumber Uses

func (m *TaskAssignment) GetSliceNumber() int32

func (*TaskAssignment) GetTaskId Uses

func (m *TaskAssignment) GetTaskId() string

func (*TaskAssignment) ProtoMessage Uses

func (*TaskAssignment) ProtoMessage()

func (*TaskAssignment) Reset Uses

func (m *TaskAssignment) Reset()

func (*TaskAssignment) String Uses

func (m *TaskAssignment) String() string

func (*TaskAssignment) XXX_DiscardUnknown Uses

func (m *TaskAssignment) XXX_DiscardUnknown()

func (*TaskAssignment) XXX_Marshal Uses

func (m *TaskAssignment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TaskAssignment) XXX_Merge Uses

func (m *TaskAssignment) XXX_Merge(src proto.Message)

func (*TaskAssignment) XXX_Size Uses

func (m *TaskAssignment) XXX_Size() int

func (*TaskAssignment) XXX_Unmarshal Uses

func (m *TaskAssignment) XXX_Unmarshal(b []byte) error

type TaskOverheadStats Uses

type TaskOverheadStats struct {
    // Duration of this overhead.
    Duration *duration.Duration `protobuf:"bytes,1,opt,name=duration,proto3" json:"duration,omitempty"`
    // CAS entries that were not present in the local or remote cache and had to
    // be sent across the network.
    Cold *CASEntriesStats `protobuf:"bytes,2,opt,name=cold,proto3" json:"cold,omitempty"`
    // CAS entries that were in the cache and thus didn't have to be transferred.
    Hot                  *CASEntriesStats `protobuf:"bytes,3,opt,name=hot,proto3" json:"hot,omitempty"`
    XXX_NoUnkeyedLiteral struct{}         `json:"-"`
    XXX_unrecognized     []byte           `json:"-"`
    XXX_sizecache        int32            `json:"-"`
}

Information about setup or teardown.

func (*TaskOverheadStats) Descriptor Uses

func (*TaskOverheadStats) Descriptor() ([]byte, []int)

func (*TaskOverheadStats) GetCold Uses

func (m *TaskOverheadStats) GetCold() *CASEntriesStats

func (*TaskOverheadStats) GetDuration Uses

func (m *TaskOverheadStats) GetDuration() *duration.Duration

func (*TaskOverheadStats) GetHot Uses

func (m *TaskOverheadStats) GetHot() *CASEntriesStats

func (*TaskOverheadStats) ProtoMessage Uses

func (*TaskOverheadStats) ProtoMessage()

func (*TaskOverheadStats) Reset Uses

func (m *TaskOverheadStats) Reset()

func (*TaskOverheadStats) String Uses

func (m *TaskOverheadStats) String() string

func (*TaskOverheadStats) XXX_DiscardUnknown Uses

func (m *TaskOverheadStats) XXX_DiscardUnknown()

func (*TaskOverheadStats) XXX_Marshal Uses

func (m *TaskOverheadStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TaskOverheadStats) XXX_Merge Uses

func (m *TaskOverheadStats) XXX_Merge(src proto.Message)

func (*TaskOverheadStats) XXX_Size Uses

func (m *TaskOverheadStats) XXX_Size() int

func (*TaskOverheadStats) XXX_Unmarshal Uses

func (m *TaskOverheadStats) XXX_Unmarshal(b []byte) error

type TaskPerformance Uses

type TaskPerformance struct {
    // Total cost of running this task in $USD. In the case of DEDUPED task, this
    // represents the amount saved.
    CostUsd float32 `protobuf:"fixed32,1,opt,name=cost_usd,json=costUsd,proto3" json:"cost_usd,omitempty"`
    // Overhead that is caused by the bot server that is not accounted for by the
    // other overheads.
    OtherOverhead *duration.Duration `protobuf:"bytes,2,opt,name=other_overhead,json=otherOverhead,proto3" json:"other_overhead,omitempty"`
    // Task environment setup overhead. This is the task state
    // RUNNING_OVERHEAD_SETUP.
    Setup *TaskOverheadStats `protobuf:"bytes,3,opt,name=setup,proto3" json:"setup,omitempty"`
    // Task environment teardown overhead. This is the task state
    // RUNNING_OVERHEAD_TEARDOWN.
    Teardown             *TaskOverheadStats `protobuf:"bytes,4,opt,name=teardown,proto3" json:"teardown,omitempty"`
    XXX_NoUnkeyedLiteral struct{}           `json:"-"`
    XXX_unrecognized     []byte             `json:"-"`
    XXX_sizecache        int32              `json:"-"`
}

Information about the task's performance.

func (*TaskPerformance) Descriptor Uses

func (*TaskPerformance) Descriptor() ([]byte, []int)

func (*TaskPerformance) GetCostUsd Uses

func (m *TaskPerformance) GetCostUsd() float32

func (*TaskPerformance) GetOtherOverhead Uses

func (m *TaskPerformance) GetOtherOverhead() *duration.Duration

func (*TaskPerformance) GetSetup Uses

func (m *TaskPerformance) GetSetup() *TaskOverheadStats

func (*TaskPerformance) GetTeardown Uses

func (m *TaskPerformance) GetTeardown() *TaskOverheadStats

func (*TaskPerformance) ProtoMessage Uses

func (*TaskPerformance) ProtoMessage()

func (*TaskPerformance) Reset Uses

func (m *TaskPerformance) Reset()

func (*TaskPerformance) String Uses

func (m *TaskPerformance) String() string

func (*TaskPerformance) XXX_DiscardUnknown Uses

func (m *TaskPerformance) XXX_DiscardUnknown()

func (*TaskPerformance) XXX_Marshal Uses

func (m *TaskPerformance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TaskPerformance) XXX_Merge Uses

func (m *TaskPerformance) XXX_Merge(src proto.Message)

func (*TaskPerformance) XXX_Size Uses

func (m *TaskPerformance) XXX_Size() int

func (*TaskPerformance) XXX_Unmarshal Uses

func (m *TaskPerformance) XXX_Unmarshal(b []byte) error

type TaskProperties Uses

type TaskProperties struct {
    // Isolated inputs to map in the working directory.
    //
    // Deprecated: the isolated file may optionally specify a command to run.
    // Otherwise, 'command' must be specified.
    CasInputs *CASTree `protobuf:"bytes,1,opt,name=cas_inputs,json=casInputs,proto3" json:"cas_inputs,omitempty"`
    // Defines the set of CIPD packages to install prior to running the task.
    //
    // These packages are meant to be software that is needed (a dependency) by
    // the task being run. Unlike isolated files from cas_inputs, the CIPD
    // packages do not expire from the server.
    //
    // Items must be sorted per the CIPD package name.
    CipdInputs []*CIPDPackage `protobuf:"bytes,2,rep,name=cipd_inputs,json=cipdInputs,proto3" json:"cipd_inputs,omitempty"`
    // Specifies named caches to map into the working directory. These caches
    // outlive the task, which can then be reused by tasks later used on this bot
    // that request the same named cache.
    //
    // Items must be sorted per the named cache name.
    NamedCaches []*NamedCacheEntry `protobuf:"bytes,3,rep,name=named_caches,json=namedCaches,proto3" json:"named_caches,omitempty"`
    // Command to run. This has priority over a command specified in the isolated
    // files. Only one of 'command' or 'extra_args' can be specified.
    Command []string `protobuf:"bytes,4,rep,name=command,proto3" json:"command,omitempty"`
    // Relative working directory to start the 'command' in, defaults to the root
    // mapped directory or what is provided in the isolated file, if any.
    RelativeCwd string `protobuf:"bytes,5,opt,name=relative_cwd,json=relativeCwd,proto3" json:"relative_cwd,omitempty"`
    // Extraneous arguments to append to the command specified in the isolated
    // file. Can only be used when an isolated file specifies a command. Only one
    // of 'command' or 'extra_args' can be specified.
    //
    // Deprecated.
    ExtraArgs []string `protobuf:"bytes,6,rep,name=extra_args,json=extraArgs,proto3" json:"extra_args,omitempty"`
    // Secret bytes to provide to the task. Write only, cannot be retrieved back.
    SecretBytes []byte `protobuf:"bytes,7,opt,name=secret_bytes,json=secretBytes,proto3" json:"secret_bytes,omitempty"`
    // When retrieved back, has_secret_bytes is set to true.
    HasSecretBytes bool `protobuf:"varint,8,opt,name=has_secret_bytes,json=hasSecretBytes,proto3" json:"has_secret_bytes,omitempty"`
    // Dimensions are what is used to determine which bot can run the task.
    //
    // The values are effectively an AND, a bot must match all dimensions to be
    // selected to run the task.
    //
    // Items must be sorted.
    Dimensions []*StringListPair `protobuf:"bytes,9,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
    // Environment variables to set when running the task.
    //
    // Items must be sorted.
    Env []*StringPair `protobuf:"bytes,10,rep,name=env,proto3" json:"env,omitempty"`
    // Task root relative paths to prepend to a given environment variable.
    //
    // This allows one to safely modify variables like PATH, PYTHONPATH, or other
    // PATH-like environment variables. The order of operations is:
    // * Turn slashes into native-platform slashes
    // * Make the path absolute
    // * Prepend it to the current value of the envvar using the os-native list
    //   separator (`;` on Windows, `:` on POSIX)
    //
    // Each key can have multiple paths to prepend. They will be prepended in
    // the order seen here.
    //
    // For example, if env_paths is:
    //   [ (key="PATH", values=["foo", "bar"]),
    //     (key="CUSTOMPATH", values=["custom"]), ]
    //
    // The task would see:
    //   PATH=/path/to/swarming/rundir/foo:/path/to/swarming/rundir/bar:$PATH
    //   CUSTOMPATH=/path/to/swarming/rundir/custom
    //
    // Paths must always be specified here with forward-slashes, and must not
    // attempt to escape the task's root (i.e. must not contain `..`).
    //
    // This is applied AFTER evaluating `env`.
    //
    // Items must be sorted by key, but exceptionally not by values.
    EnvPaths []*StringListPair `protobuf:"bytes,11,rep,name=env_paths,json=envPaths,proto3" json:"env_paths,omitempty"`
    // Declare what kind of containment shall be used to run the task process
    // in.
    Containment *Containment `protobuf:"bytes,12,opt,name=containment,proto3" json:"containment,omitempty"`
    // Maximum number of seconds the task can run before its process is forcibly
    // terminated and the task results in TIMED_OUT.
    ExecutionTimeout *duration.Duration `protobuf:"bytes,13,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"`
    // Maximum number of seconds the task may be silent (no output to stdout nor
    // stderr) before it is considered hung and it forcibly terminated early and
    // the task results in TIMED_OUT_SILENCE.
    IoTimeout *duration.Duration `protobuf:"bytes,14,opt,name=io_timeout,json=ioTimeout,proto3" json:"io_timeout,omitempty"`
    // Number of second to give the child process after a SIGTERM before sending a
    // SIGKILL. See ../../doc/Bot.md#timeout-handling
    GracePeriod *duration.Duration `protobuf:"bytes,15,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"`
    // True if the task does not access any service through the network and is
    // believed to be certain to produce the same output given the same input. In
    // the case of a successful task, previous results will be reused if possible,
    // leading to DEDUPED task result for the tasks that could reuse previous
    // task's outcome.
    Idempotent bool `protobuf:"varint,16,opt,name=idempotent,proto3" json:"idempotent,omitempty"`
    // Paths in the working directory to archive back and store as
    // TaskResult.outputs.
    //
    // Items must be sorted.
    Outputs              []string `protobuf:"bytes,17,rep,name=outputs,proto3" json:"outputs,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Defines the 'what' to run.

A serialization of this message is hashed and this hash is what is used for task deduping.

func (*TaskProperties) Descriptor Uses

func (*TaskProperties) Descriptor() ([]byte, []int)

func (*TaskProperties) GetCasInputs Uses

func (m *TaskProperties) GetCasInputs() *CASTree

func (*TaskProperties) GetCipdInputs Uses

func (m *TaskProperties) GetCipdInputs() []*CIPDPackage

func (*TaskProperties) GetCommand Uses

func (m *TaskProperties) GetCommand() []string

func (*TaskProperties) GetContainment Uses

func (m *TaskProperties) GetContainment() *Containment

func (*TaskProperties) GetDimensions Uses

func (m *TaskProperties) GetDimensions() []*StringListPair

func (*TaskProperties) GetEnv Uses

func (m *TaskProperties) GetEnv() []*StringPair

func (*TaskProperties) GetEnvPaths Uses

func (m *TaskProperties) GetEnvPaths() []*StringListPair

func (*TaskProperties) GetExecutionTimeout Uses

func (m *TaskProperties) GetExecutionTimeout() *duration.Duration

func (*TaskProperties) GetExtraArgs Uses

func (m *TaskProperties) GetExtraArgs() []string

func (*TaskProperties) GetGracePeriod Uses

func (m *TaskProperties) GetGracePeriod() *duration.Duration

func (*TaskProperties) GetHasSecretBytes Uses

func (m *TaskProperties) GetHasSecretBytes() bool

func (*TaskProperties) GetIdempotent Uses

func (m *TaskProperties) GetIdempotent() bool

func (*TaskProperties) GetIoTimeout Uses

func (m *TaskProperties) GetIoTimeout() *duration.Duration

func (*TaskProperties) GetNamedCaches Uses

func (m *TaskProperties) GetNamedCaches() []*NamedCacheEntry

func (*TaskProperties) GetOutputs Uses

func (m *TaskProperties) GetOutputs() []string

func (*TaskProperties) GetRelativeCwd Uses

func (m *TaskProperties) GetRelativeCwd() string

func (*TaskProperties) GetSecretBytes Uses

func (m *TaskProperties) GetSecretBytes() []byte

func (*TaskProperties) ProtoMessage Uses

func (*TaskProperties) ProtoMessage()

func (*TaskProperties) Reset Uses

func (m *TaskProperties) Reset()

func (*TaskProperties) String Uses

func (m *TaskProperties) String() string

func (*TaskProperties) XXX_DiscardUnknown Uses

func (m *TaskProperties) XXX_DiscardUnknown()

func (*TaskProperties) XXX_Marshal Uses

func (m *TaskProperties) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TaskProperties) XXX_Merge Uses

func (m *TaskProperties) XXX_Merge(src proto.Message)

func (*TaskProperties) XXX_Size Uses

func (m *TaskProperties) XXX_Size() int

func (*TaskProperties) XXX_Unmarshal Uses

func (m *TaskProperties) XXX_Unmarshal(b []byte) error

type TaskRequest Uses

type TaskRequest struct {
    // List of TaskSlice, along with their scheduling parameters.
    //
    // This defines all the various possible task execution for a task request to
    // be run on the Swarming infrastructure. They are processed in order, and it
    // is guaranteed that at most one of these will be processed.
    //
    // At least one must be specified, and a maximum number of 8 can be included.
    TaskSlices []*TaskSlice `protobuf:"bytes,1,rep,name=task_slices,json=taskSlices,proto3" json:"task_slices,omitempty"`
    // Task priority, the lower the more important.
    //
    // Valid values are between 1 and 255.
    Priority int32 `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"`
    // Defines what OAuth2 credentials the task uses when calling other services.
    //
    // Possible values are:
    //   - 'none': do not use task service accounts at all, this is default.
    //   - 'bot': use bot's own account, works only if bots authenticate with
    //       OAuth2.
    //   - 'email': use this account (if token server's service_accounts.cfg rules
    //       allow it). Not implemented yet.
    //
    // Note that the service account name is specified outside of task properties,
    // and thus it is possible to have two tasks with different service accounts,
    // but identical properties hash (so one can be deduped). If this is
    // unsuitable use 'idempotent=False' or include a service account name in
    // properties separately.
    //
    // TODO(vadimsh): Link to a doc that describes Swarming Service Accounts, when
    // it exists.
    ServiceAccount string `protobuf:"bytes,3,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
    // When the task was created.
    CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
    // Task name for display purpose.
    //
    // Note: this value is not indexed. If you want to be able to query for tasks
    // based on names, use tags below.
    Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
    // Tags are 'key:value' strings that describes what the task is about (it's
    // semantic meaning).
    //
    // It is fine to reuse the same 'key' multiple times. It is not fine to use a
    // key that is also used as a dimension.
    //
    // The tags are indexed, thus can be used for search with exact matches.
    //
    // Items must be sorted.
    Tags []string `protobuf:"bytes,6,rep,name=tags,proto3" json:"tags,omitempty"`
    // User for this task is run, if relevant. Not validated.
    User string `protobuf:"bytes,7,opt,name=user,proto3" json:"user,omitempty"`
    // The task request ID.
    //
    // The request wasn't "run" so it is the same ID as the summary (ending with
    // '0').
    TaskId string `protobuf:"bytes,8,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
    // Parent Swarming task summary ID of the process requesting this task.
    //
    // This points to the TaskResult.task_id (ending with '0'). Note that an
    // idempotent task can be automatically retried by Swarming, which may result
    // in two TaskResult with the same task_id but different run_id.
    //
    // This field is read-only and derived from parent_run_id. It cannot be
    // specified at task creation.
    ParentTaskId string `protobuf:"bytes,9,opt,name=parent_task_id,json=parentTaskId,proto3" json:"parent_task_id,omitempty"`
    // Parent Swarming task run ID of the process requesting this task.
    //
    // This field is set on the children tasks when a Swarming task creates
    // children Swarming tasks.
    //
    // This points to the TaskResult.run_id (ending with '1', '2' or more).
    ParentRunId string `protobuf:"bytes,11,opt,name=parent_run_id,json=parentRunId,proto3" json:"parent_run_id,omitempty"`
    // Send notification to this pubsub topic for updates of this task.
    PubsubNotification   *PubSub  `protobuf:"bytes,10,opt,name=pubsub_notification,json=pubsubNotification,proto3" json:"pubsub_notification,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

This message is used to create a new task and can be retrieved back, except for a few write-only fields.

A TaskRequest is immutable, it cannot be updated once created.

func (*TaskRequest) Descriptor Uses

func (*TaskRequest) Descriptor() ([]byte, []int)

func (*TaskRequest) GetCreateTime Uses

func (m *TaskRequest) GetCreateTime() *timestamp.Timestamp

func (*TaskRequest) GetName Uses

func (m *TaskRequest) GetName() string

func (*TaskRequest) GetParentRunId Uses

func (m *TaskRequest) GetParentRunId() string

func (*TaskRequest) GetParentTaskId Uses

func (m *TaskRequest) GetParentTaskId() string

func (*TaskRequest) GetPriority Uses

func (m *TaskRequest) GetPriority() int32

func (*TaskRequest) GetPubsubNotification Uses

func (m *TaskRequest) GetPubsubNotification() *PubSub

func (*TaskRequest) GetServiceAccount Uses

func (m *TaskRequest) GetServiceAccount() string

func (*TaskRequest) GetTags Uses

func (m *TaskRequest) GetTags() []string

func (*TaskRequest) GetTaskId Uses

func (m *TaskRequest) GetTaskId() string

func (*TaskRequest) GetTaskSlices Uses

func (m *TaskRequest) GetTaskSlices() []*TaskSlice

func (*TaskRequest) GetUser Uses

func (m *TaskRequest) GetUser() string

func (*TaskRequest) ProtoMessage Uses

func (*TaskRequest) ProtoMessage()

func (*TaskRequest) Reset Uses

func (m *TaskRequest) Reset()

func (*TaskRequest) String Uses

func (m *TaskRequest) String() string

func (*TaskRequest) XXX_DiscardUnknown Uses

func (m *TaskRequest) XXX_DiscardUnknown()

func (*TaskRequest) XXX_Marshal Uses

func (m *TaskRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TaskRequest) XXX_Merge Uses

func (m *TaskRequest) XXX_Merge(src proto.Message)

func (*TaskRequest) XXX_Size Uses

func (m *TaskRequest) XXX_Size() int

func (*TaskRequest) XXX_Unmarshal Uses

func (m *TaskRequest) XXX_Unmarshal(b []byte) error

type TaskResult Uses

type TaskResult struct {
    Request *TaskRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
    // Time the task was requested.
    CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
    // Time the task started being run by a bot, before RUNNING_OVERHEAD_SETUP.
    //
    // Doing "start_time - create_time" gives the task pending time.
    StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
    // Time when the task was abandoned instead of normal completion.
    //
    // This happens for example when a task was KILLED, this then represents the
    // time a client requested the task to be killed, which is before end_time.
    // Same for TIMED_OUT state, this then represents the time when the bot
    // decided to abort the task.
    AbandonTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=abandon_time,json=abandonTime,proto3" json:"abandon_time,omitempty"`
    // Time the task completed and teared down, after RUNNING_OVERHEAD_TEARDOWN.
    //
    // Doing "end_time - start_time" will not lead to the exact task duration,
    // since this time frame includes overheads.
    EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
    // Duration of the task. This excludes overheads.
    Duration *duration.Duration `protobuf:"bytes,6,opt,name=duration,proto3" json:"duration,omitempty"`
    // Current state of the task (e.g. PENDING, RUNNING, COMPLETED, EXPIRED, etc).
    State TaskState `protobuf:"varint,7,opt,name=state,proto3,enum=swarming.v1.TaskState" json:"state,omitempty"`
    // The category of the current task state. This is primarily useful to
    // simplify BigQuery queries. This can be used to determine if a task is done
    // or if still considered for execution.
    StateCategory TaskStateCategory `protobuf:"varint,8,opt,name=state_category,json=stateCategory,proto3,enum=swarming.v1.TaskStateCategory" json:"state_category,omitempty"`
    // The task try number.
    //
    // It is 0 for a deduped task, since nothing ran. It is 0 if the task is still
    // PENDING.
    //
    // It is normally 1 for a task that started running and runs a normal flow.
    //
    // A number above 1 means that the the task was tried multiple times. It can
    // be due to a previous try resulting in a task state in the category
    // CATEGORY_TRANSIENT_DONE.
    TryNumber int32 `protobuf:"varint,9,opt,name=try_number,json=tryNumber,proto3" json:"try_number,omitempty"`
    // Index in the TaskRequest.task_slices (TaskSlice instance) that this result
    // represents. This is updated when a TaskSlice is enqueued to run. It can be
    // updated until the task state is in either category CATEGORY_EXECUTION_DONE
    // or CATEGORY_NEVER_RAN_DONE.
    //
    // The TaskSlice contains a TaskProperties, which defines what is run.
    CurrentTaskSlice int32 `protobuf:"varint,10,opt,name=current_task_slice,json=currentTaskSlice,proto3" json:"current_task_slice,omitempty"`
    // Snapshot of the bot that was assigned to this task at the start of the
    // task. This includes bot local cache information.
    Bot *Bot `protobuf:"bytes,11,opt,name=bot,proto3" json:"bot,omitempty"`
    // Server versions that touched this task.
    //
    // A different version of the server may get the request and hand it to the
    // bot. This is primarily useful to detect if a new server version introduced
    // a bug and for canarying purpose.
    ServerVersions []string `protobuf:"bytes,12,rep,name=server_versions,json=serverVersions,proto3" json:"server_versions,omitempty"`
    // List of children task IDs that this task triggered, if any.
    //
    // This happens only in the case of reentrant tasks, a Swarming task that
    // itself triggers more Swarming task. Each of these task will have 'run_id'
    // set as their 'TaskRequest.parent_task_id'.
    ChildrenTaskIds []string `protobuf:"bytes,13,rep,name=children_task_ids,json=childrenTaskIds,proto3" json:"children_task_ids,omitempty"`
    // Task ID which results was reused for state DEDUPED.
    //
    // This is the run_id (ending with '1', '2' or more).
    DedupedFrom string `protobuf:"bytes,14,opt,name=deduped_from,json=dedupedFrom,proto3" json:"deduped_from,omitempty"`
    // Summary task ID (ending with '0') when creating a new task.
    TaskId string `protobuf:"bytes,15,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
    // Actual executed task id that this task represents.
    //
    // This value is only set if it ran, that is, the task went through one of the
    // state in CATEGORY_RUNNING.
    //
    // A task_id can have multiple run_id associated to it, they will have the
    // corresponding try_number incremented starting at 1.
    RunId string `protobuf:"bytes,16,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
    // Listing of the actual pinned CIPDPackages that the task used.
    //
    // These can vary from the input packages if the inputs included non-identity
    // versions (e.g. a ref like "latest"). This can be available once task setup
    // is completed.
    CipdPins *CIPDPins `protobuf:"bytes,17,opt,name=cipd_pins,json=cipdPins,proto3" json:"cipd_pins,omitempty"`
    // Statistics about overhead for an isolated task. This is populated as the
    // task goes through setup, execution and teardown.
    Performance *TaskPerformance `protobuf:"bytes,18,opt,name=performance,proto3" json:"performance,omitempty"`
    // Process exit code if relevant. May be forcibly set to -1 in exceptional
    // cases.
    ExitCode int32 `protobuf:"zigzag32,19,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
    // Isolated outputs, if any.
    Outputs              *CASTree `protobuf:"bytes,20,opt,name=outputs,proto3" json:"outputs,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

TaskResult is the result of a TaskRequest as it is processed by Swarming.

The TaskResult represents one attempt (run on a bot) and/or the final result (summary). When the task never ran (for example EXPIRED), there's one summary but no run.

An idempotent task can be automatically retried by Swarming, which may result in two TaskResult with the same task_id but different run_id; two runs, one summary.

A retry is done when a task fails with a retriable error (for example with RAN_INTERNAL_FAILURE). For the client's perspective when looking at the summary (ID ending with '0'), the task went from PENDING to RUNNING and then back to PENDING.

When stored in BigQuery in table task_result_run and task_results_summary, on-going tasks are in the __NULL__ partition since end_time is unset.

There's a risk of duplicate rows because BigQuery is eventually consistent with regards to duplicate rows. Set your filter to ignore the __NULL__ partition to enforce strong consistency and ignore on-going tasks. See https://cloud.google.com/bigquery/streaming-data-into-bigquery#dataconsistency for more information.

func (*TaskResult) Descriptor Uses

func (*TaskResult) Descriptor() ([]byte, []int)

func (*TaskResult) GetAbandonTime Uses

func (m *TaskResult) GetAbandonTime() *timestamp.Timestamp

func (*TaskResult) GetBot Uses

func (m *TaskResult) GetBot() *Bot

func (*TaskResult) GetChildrenTaskIds Uses

func (m *TaskResult) GetChildrenTaskIds() []string

func (*TaskResult) GetCipdPins Uses

func (m *TaskResult) GetCipdPins() *CIPDPins

func (*TaskResult) GetCreateTime Uses

func (m *TaskResult) GetCreateTime() *timestamp.Timestamp

func (*TaskResult) GetCurrentTaskSlice Uses

func (m *TaskResult) GetCurrentTaskSlice() int32

func (*TaskResult) GetDedupedFrom Uses

func (m *TaskResult) GetDedupedFrom() string

func (*TaskResult) GetDuration Uses

func (m *TaskResult) GetDuration() *duration.Duration

func (*TaskResult) GetEndTime Uses

func (m *TaskResult) GetEndTime() *timestamp.Timestamp

func (*TaskResult) GetExitCode Uses

func (m *TaskResult) GetExitCode() int32

func (*TaskResult) GetOutputs Uses

func (m *TaskResult) GetOutputs() *CASTree

func (*TaskResult) GetPerformance Uses

func (m *TaskResult) GetPerformance() *TaskPerformance

func (*TaskResult) GetRequest Uses

func (m *TaskResult) GetRequest() *TaskRequest

func (*TaskResult) GetRunId Uses

func (m *TaskResult) GetRunId() string

func (*TaskResult) GetServerVersions Uses

func (m *TaskResult) GetServerVersions() []string

func (*TaskResult) GetStartTime Uses

func (m *TaskResult) GetStartTime() *timestamp.Timestamp

func (*TaskResult) GetState Uses

func (m *TaskResult) GetState() TaskState

func (*TaskResult) GetStateCategory Uses

func (m *TaskResult) GetStateCategory() TaskStateCategory

func (*TaskResult) GetTaskId Uses

func (m *TaskResult) GetTaskId() string

func (*TaskResult) GetTryNumber Uses

func (m *TaskResult) GetTryNumber() int32

func (*TaskResult) ProtoMessage Uses

func (*TaskResult) ProtoMessage()

func (*TaskResult) Reset Uses

func (m *TaskResult) Reset()

func (*TaskResult) String Uses

func (m *TaskResult) String() string

func (*TaskResult) XXX_DiscardUnknown Uses

func (m *TaskResult) XXX_DiscardUnknown()

func (*TaskResult) XXX_Marshal Uses

func (m *TaskResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TaskResult) XXX_Merge Uses

func (m *TaskResult) XXX_Merge(src proto.Message)

func (*TaskResult) XXX_Size Uses

func (m *TaskResult) XXX_Size() int

func (*TaskResult) XXX_Unmarshal Uses

func (m *TaskResult) XXX_Unmarshal(b []byte) error

type TaskSlice Uses

type TaskSlice struct {
    // The property of the task to try to run.
    //
    // If there is no bot that can serve this properties.dimensions when this task
    // slice is enqueued, it is immediately denied. This can trigger if:
    // - There is no bot with these dimensions currently known (NO_RESOURCE).
    // - Bots that could run this task are either all missing or quarantined.
    Properties *TaskProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"`
    // If this task slice is not scheduled after waiting this long, the next one
    // will be processed.
    Expiration *duration.Duration `protobuf:"bytes,2,opt,name=expiration,proto3" json:"expiration,omitempty"`
    // When a task is scheduled and there are currently no bots available to run
    // the task, the TaskSlice can either be PENDING, or be denied immediately.
    // When denied, the next TaskSlice is enqueued, and if there's no following
    // TaskSlice, the task state is set to NO_RESOURCE. This should normally be
    // set to False to avoid unnecessary waiting.
    WaitForCapacity bool `protobuf:"varint,3,opt,name=wait_for_capacity,json=waitForCapacity,proto3" json:"wait_for_capacity,omitempty"`
    // Digest of a serialized form of TaskProperties.
    //
    // This is used for DEDUPED and PENDING_DEDUPING when idempotent is true.
    // Consider this value as opaque string, only use to check equality.
    //
    // It is set even if idempotent is false.
    PropertiesHash       string   `protobuf:"bytes,4,opt,name=properties_hash,json=propertiesHash,proto3" json:"properties_hash,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}

Defines a possible task execution for a task request to be run on the Swarming infrastructure.

When there is more than TaskSlice specified in TaskRequest, the second TaskSlice onwards represent possible fallbacks.

func (*TaskSlice) Descriptor Uses

func (*TaskSlice) Descriptor() ([]byte, []int)

func (*TaskSlice) GetExpiration Uses

func (m *TaskSlice) GetExpiration() *duration.Duration

func (*TaskSlice) GetProperties Uses

func (m *TaskSlice) GetProperties() *TaskProperties

func (*TaskSlice) GetPropertiesHash Uses

func (m *TaskSlice) GetPropertiesHash() string

func (*TaskSlice) GetWaitForCapacity Uses

func (m *TaskSlice) GetWaitForCapacity() bool

func (*TaskSlice) ProtoMessage Uses

func (*TaskSlice) ProtoMessage()

func (*TaskSlice) Reset Uses

func (m *TaskSlice) Reset()

func (*TaskSlice) String Uses

func (m *TaskSlice) String() string

func (*TaskSlice) XXX_DiscardUnknown Uses

func (m *TaskSlice) XXX_DiscardUnknown()

func (*TaskSlice) XXX_Marshal Uses

func (m *TaskSlice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TaskSlice) XXX_Merge Uses

func (m *TaskSlice) XXX_Merge(src proto.Message)

func (*TaskSlice) XXX_Size Uses

func (m *TaskSlice) XXX_Size() int

func (*TaskSlice) XXX_Unmarshal Uses

func (m *TaskSlice) XXX_Unmarshal(b []byte) error

type TaskSpec Uses

type TaskSpec struct {
    // Id is the swarming task request ID.
    //
    // Other than being a unique string to track the lifecycle of this request,
    // it is opaque to external scheduler. By convention, swarming uses a task's
    // summary ID (trailing '0') here, not the run ID.
    Id  string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
    // Tags is the list of tags applied to this task request.
    Tags []string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty"`
    // Slices is the set of task slices for this spec. A TaskSpec must contain
    // at least 1 slice.
    Slices []*SliceSpec `protobuf:"bytes,3,rep,name=slices,proto3" json:"slices,omitempty"`
    // State is the current state of this task.
    State TaskState `protobuf:"varint,4,opt,name=state,proto3,enum=swarming.v1.TaskState" json:"state,omitempty"`
    // BotID is the id of the bot that this task is running on. It is only
    // valid if state=RUNNING.
    BotId string `protobuf:"bytes,5,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
    // EnqueuedTime is the time at which a task was enqueued. It is only valid
    // if state=PENDING.
    EnqueuedTime         *timestamp.Timestamp `protobuf:"bytes,6,opt,name=enqueued_time,json=enqueuedTime,proto3" json:"enqueued_time,omitempty"`
    XXX_NoUnkeyedLiteral struct{}             `json:"-"`
    XXX_unrecognized     []byte               `json:"-"`
    XXX_sizecache        int32                `json:"-"`
}

TaskSpec describes a task request and its state, for the purposes of the external scheduler API.

It intentionally elides aspects of a task request that are irrelevant to scheduling decisions, to keep this proto small for performance reasons.

This message format is in its early stages, and may be subject to frequent or even breaking changes as the external scheduler API is rolled out.

func (*TaskSpec) Descriptor Uses

func (*TaskSpec) Descriptor() ([]byte, []int)

func (*TaskSpec) GetBotId Uses

func (m *TaskSpec) GetBotId() string

func (*TaskSpec) GetEnqueuedTime Uses

func (m *TaskSpec) GetEnqueuedTime() *timestamp.Timestamp

func (*TaskSpec) GetId Uses

func (m *TaskSpec) GetId() string

func (*TaskSpec) GetSlices Uses

func (m *TaskSpec) GetSlices() []*SliceSpec

func (*TaskSpec) GetState Uses

func (m *TaskSpec) GetState() TaskState

func (*TaskSpec) GetTags Uses

func (m *TaskSpec) GetTags() []string

func (*TaskSpec) ProtoMessage Uses

func (*TaskSpec) ProtoMessage()

func (*TaskSpec) Reset Uses

func (m *TaskSpec) Reset()

func (*TaskSpec) String Uses

func (m *TaskSpec) String() string

func (*TaskSpec) XXX_DiscardUnknown Uses

func (m *TaskSpec) XXX_DiscardUnknown()

func (*TaskSpec) XXX_Marshal Uses

func (m *TaskSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TaskSpec) XXX_Merge Uses

func (m *TaskSpec) XXX_Merge(src proto.Message)

func (*TaskSpec) XXX_Size Uses

func (m *TaskSpec) XXX_Size() int

func (*TaskSpec) XXX_Unmarshal Uses

func (m *TaskSpec) XXX_Unmarshal(b []byte) error

type TaskState Uses

type TaskState int32

TaskState represents the different possible states for a Task.

Each state is in one of the bitmask in TaskStateCategory.

const (
    // Invalid task state.
    TaskState_TASK_STATE_INVALID TaskState = 0
    // The task is currently pending.
    //
    // This means that no bot reaped the task yet. It will stay in this state
    // until either a bot reaps the task, or the expiration elapsed or all bots
    // become MISSING, leading to a NO_RESOURCE. The task pending expiration is
    // specified as TaskSlice.expiration, one per task slice.
    //
    // The task may go through multiple pending TaskSlice as they expire or are
    // skipped due to NO_RESOURCE (see definition below). In this situation the
    // task state still stays in PENDING state as long as there's a chance for a
    // bot to reap the task.
    TaskState_PENDING TaskState = 16
    // The task is currently pending, but another previously scheduled task was
    // identified to be deduped against, but the previously scheduled task hasn't
    // completed yet.
    //
    // In this case, the task may go back into PENDING if the previous identical
    // task failed, or immediately into DEDUPED if it succeeded.
    TaskState_PENDING_DEDUPING TaskState = 17
    // The task is currently running.
    //
    // For new tasks, this is only the actual tasks runtime. For old tasks, this
    // includes RUNNING_OVERHEAD_START and RUNNING_OVERHEAD_END.
    TaskState_RUNNING TaskState = 32
    // The task is assigned to a bot. The bot is fetching input files and setting
    // up the runtime environment.
    TaskState_RUNNING_OVERHEAD_SETUP TaskState = 33
    // Task completed and result metadata is available. Outputs and other
    // associated logs are still being uploaded and the environment is being
    // teared down.
    //
    // A client that only needs the exit code may chose to stop waiting for the
    // task, as the task will end with COMPLETED, unless there's a failure during
    // outputs upload, which would result in INTERNAL_FAILURE.
    TaskState_RUNNING_OVERHEAD_TEARDOWN TaskState = 34
    // The task is being forcibly terminated. This can be due to either a kill
    // request, preemption or time out.
    //
    // See
    // https://chromium.googlesource.com/infra/luci/luci-py.git/+/master/appengine/swarming/doc/Bot.md#graceful-termination_aka-the-sigterm-and-sigkill-dance
    TaskState_TERMINATING TaskState = 35
    // Task completed, result metadata and task outputs are available. There's
    // still some overhead being finished like attaching relevant bot logs to the
    // task.
    //
    // The client can return right away unless infrastructure issue debugging is
    // needed.
    TaskState_COMPLETING TaskState = 47
    // The task ran but the bot had an internal failure, unrelated to the task
    // itself. It can be due to disk or network I/O issues.
    TaskState_RAN_INTERNAL_FAILURE TaskState = 48
    // The task ran and completed normally, but returned an exit code that was
    // provided in the TaskProperties as signaling an hardware failure of the DUT
    // (Device Under Test).
    //
    // As such, the task may need to be retried.
    TaskState_DUT_FAILURE TaskState = 49
    // The task started but the bot failed to keep the connection to the server
    // alive. This can be due to the bot's host crashing, or network connectivity
    // issues.
    TaskState_BOT_DISAPPEARED TaskState = 50
    // The task ran but was killed by the client or an external scheduler in a way
    // that it should still be retried as another task try.
    //
    // This can happen via the external scheduler or an API yet to be defined. The
    // rationale is to kill slow running low priority task, without disrupting the
    // client and simply postponing the task for later.
    TaskState_PREEMPTED TaskState = 51
    // The task ran and completed normally. The task process exit code may be 0 or
    // another value.
    //
    // This value is also used when the task is deduped against a previous task.
    TaskState_COMPLETED TaskState = 64
    // The task ran for longer than the allowed time in
    // TaskProperties.execution_timeout.
    //
    // This means the bot forcefully killed the task process as described in the
    // graceful termination dance in the documentation.
    TaskState_TIMED_OUT TaskState = 65
    // The task timed out due to not sending updates to stdout or stderr within
    // the period specified in TaskProperties.io_timeout.
    //
    // This means the bot forcefully killed the task process as described in the
    // graceful termination dance in the documentation.
    TaskState_TIMED_OUT_SILENCE TaskState = 66
    // The task ran but was manually killed via the 'cancel' API.
    //
    // This means the bot forcefully killed the task process as described in the
    // graceful termination dance in the documentation.
    TaskState_KILLED TaskState = 67
    // The task had specified invalid inputs. This is found out by the bot while
    // RUNNING_OVERHEAD_SETUP.
    //
    // For example, the cas_inputs or cipd_inputs refers to missing items,
    // or the requested containment cannot be achieved.
    TaskState_MISSING_INPUTS TaskState = 68
    // The task didn't have to run, because a previous task had results. It is
    // functionally equivalent to COMPLETED, except that previous results were
    // returned as-is.
    TaskState_DEDUPED TaskState = 80
    // The task is not pending anymore; it never ran due to lack of capacity.
    //
    // This means that other higher priority tasks ran instead and that not enough
    // bots were available to run this task for TaskSlice.expiration.
    TaskState_EXPIRED TaskState = 81
    // The task never ran, and was manually cancelled via the 'cancel' API before
    // it was reaped.
    TaskState_CANCELED TaskState = 82
    // The task was never set to PENDING and was immediately refused, as the
    // server determined that there is no bot capacity to run this task. This
    // happens because no bot exposes a superset of the requested task dimensions.
    //
    // There can be a situation where a task goes from PENDING to NO_RESOURCE if
    // capacity (bots) is removed.
    //
    // Set TaskSlice.wait_for_capacity to True to force the server to keep the
    // task slice pending even in this case. Generally speaking, the task will
    // eventually switch to EXPIRED, as there's no bot to run it. That said, there
    // are situations where it is known that in some not-too-distant future a wild
    // bot will appear that will be able to run this task.
    TaskState_NO_RESOURCE TaskState = 83
    // The task was valid but was denied due to a temporary capacity surcharge.
    // The user should try again after a delay, or surface the lack of capacity to
    // the user.
    TaskState_LOAD_SHED TaskState = 84
    // The task is valid but was denied due to insufficient quota.
    TaskState_RESOURCE_EXHAUSTED TaskState = 85
    // The task never ran, the server had an internal failure, unrelated to the
    // task itself. It can be due to a server bug or network I/O issues.
    TaskState_SKIPPED_INTERNAL_FAILURE TaskState = 86
)

func (TaskState) EnumDescriptor Uses

func (TaskState) EnumDescriptor() ([]byte, []int)

func (TaskState) String Uses

func (x TaskState) String() string

type TaskStateCategory Uses

type TaskStateCategory int32

TaskStateCategory represents the 5 different categories of task state.

For active state categories (RUNNING_MASK and TRANSIENT_DONE_MASK), it is possible to go 'back' to PENDING_MASK category; for example, a task has an internal error, and the server reenqueues the task for a second try.

const (
    // Invalid value.
    TaskStateCategory_TASK_STATE_CATEGORY_UNSPECIFIED TaskStateCategory = 0
    // Bit mask for the TaskState inside each category.
    TaskStateCategory_TASK_STATE_MASK TaskStateCategory = 15
    // The task is enqueued and pending bot availability.
    TaskStateCategory_CATEGORY_PENDING TaskStateCategory = 16
    // The task is running.
    TaskStateCategory_CATEGORY_RUNNING TaskStateCategory = 32
    // Transient done states are uncertain states; something ran but the result
    // was inconclusive.
    //
    // They can trigger the Swarming internal retry mechanism. In this case, the
    // "task try" will have this state, but the task summary will become PENDING.
    // In case the task cannot be retried, when idempotent is false, then this
    // becomes a final state.
    TaskStateCategory_CATEGORY_TRANSIENT_DONE TaskStateCategory = 48
    // The task ran, and it is done.
    TaskStateCategory_CATEGORY_EXECUTION_DONE TaskStateCategory = 64
    // The task did not run, and won't.
    TaskStateCategory_CATEGORY_NEVER_RAN_DONE TaskStateCategory = 80
)

func (TaskStateCategory) EnumDescriptor Uses

func (TaskStateCategory) EnumDescriptor() ([]byte, []int)

func (TaskStateCategory) String Uses

func (x TaskStateCategory) String() string

type UnimplementedBotAPIServer Uses

type UnimplementedBotAPIServer struct {
}

UnimplementedBotAPIServer can be embedded to have forward compatible implementations.

func (*UnimplementedBotAPIServer) Events Uses

func (*UnimplementedBotAPIServer) Events(ctx context.Context, req *BotEventsRequest) (*BotEventsResponse, error)

type UnimplementedExternalSchedulerServer Uses

type UnimplementedExternalSchedulerServer struct {
}

UnimplementedExternalSchedulerServer can be embedded to have forward compatible implementations.

func (*UnimplementedExternalSchedulerServer) AssignTasks Uses

func (*UnimplementedExternalSchedulerServer) AssignTasks(ctx context.Context, req *AssignTasksRequest) (*AssignTasksResponse, error)

func (*UnimplementedExternalSchedulerServer) GetCallbacks Uses

func (*UnimplementedExternalSchedulerServer) GetCallbacks(ctx context.Context, req *GetCallbacksRequest) (*GetCallbacksResponse, error)

func (*UnimplementedExternalSchedulerServer) GetCancellations Uses

func (*UnimplementedExternalSchedulerServer) GetCancellations(ctx context.Context, req *GetCancellationsRequest) (*GetCancellationsResponse, error)

func (*UnimplementedExternalSchedulerServer) NotifyTasks Uses

func (*UnimplementedExternalSchedulerServer) NotifyTasks(ctx context.Context, req *NotifyTasksRequest) (*NotifyTasksResponse, error)

Package apipb imports 13 packages (graph) and is imported by 1 packages. Updated 2019-06-19. Refresh now. Tools for package owners.