jobsim

package
v0.0.0-...-1643519 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2024 License: Apache-2.0 Imports: 9 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	// Pool specifies the unique 'pool' name for this jobsim configuration. This
	// will be used to namespace jobsim objects in the datastore, and can be used
	// to demonstrate cross-distributor dependencies (by having one pool's jobs
	// depend on another pool's results).
	Pool string `protobuf:"bytes,1,opt,name=pool,proto3" json:"pool,omitempty"`
	// DoPollback controls whether or not this configuration will force DM to
	// poll back when recieving a HandleNotification. If this is true, then
	// HandleNotification will return (nil, nil), and DM will call GetStatus
	// at some later point. If this is false, then HandleNotification will
	// directly return the job's status.
	DoPollback           bool     `protobuf:"varint,2,opt,name=do_pollback,json=doPollback,proto3" json:"do_pollback,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Config is ONLY for testing purposes in dm/service. However, because of the way that the distributor proto works it needs to be included in the main distributor.proto file. For consistency, this jobsim proto lives here.

func (*Config) Descriptor

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

func (*Config) GetDoPollback

func (m *Config) GetDoPollback() bool

func (*Config) GetPool

func (m *Config) GetPool() string

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (m *Config) Reset()

func (*Config) String

func (m *Config) String() string

func (*Config) XXX_DiscardUnknown

func (m *Config) XXX_DiscardUnknown()

func (*Config) XXX_Marshal

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

func (*Config) XXX_Merge

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

func (*Config) XXX_Size

func (m *Config) XXX_Size() int

func (*Config) XXX_Unmarshal

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

type Dependency

type Dependency struct {
	// shards append [1], [2], [3], etc. to the "name"s of the dependencies, making
	// them unique quests.
	Shards uint64 `protobuf:"varint,1,opt,name=shards,proto3" json:"shards,omitempty"`
	// Types that are valid to be assigned to AttemptStrategy:
	//	*Dependency_Attempts
	//	*Dependency_Retries
	AttemptStrategy isDependency_AttemptStrategy `protobuf_oneof:"attempt_strategy"`
	// MixSeed will blend the current seed with the seed in the phrase seed,
	// when depending on it.
	//
	//   mix_seed phrase.seed==0 -> dep uses "random" seed
	//   mix_seed phrase.seed!=0 -> dep uses blend(current seed, phrase.seed)
	//  !mix_seed phrase.seed==0 -> dep uses current seed
	//  !mix_seed phrase.seed!=0 -> dep uses phrase.seed
	MixSeed              bool     `protobuf:"varint,4,opt,name=mix_seed,json=mixSeed,proto3" json:"mix_seed,omitempty"`
	Phrase               *Phrase  `protobuf:"bytes,5,opt,name=phrase,proto3" json:"phrase,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Dependency represents a nested Phrase that this Phrase depends on.

func (*Dependency) Descriptor

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

func (*Dependency) GetAttemptStrategy

func (m *Dependency) GetAttemptStrategy() isDependency_AttemptStrategy

func (*Dependency) GetAttempts

func (m *Dependency) GetAttempts() *SparseRange

func (*Dependency) GetMixSeed

func (m *Dependency) GetMixSeed() bool

func (*Dependency) GetPhrase

func (m *Dependency) GetPhrase() *Phrase

func (*Dependency) GetRetries

func (m *Dependency) GetRetries() uint32

func (*Dependency) GetShards

func (m *Dependency) GetShards() uint64

func (*Dependency) Normalize

func (d *Dependency) Normalize() error

Normalize checks Dependency for errors and converts it to its normalized form.

func (*Dependency) ProtoMessage

func (*Dependency) ProtoMessage()

func (*Dependency) Reset

func (m *Dependency) Reset()

func (*Dependency) Seed

func (d *Dependency) Seed(rnd *rand.Rand, seed, round int64)

Seed rewrites this dependency's Seed value

func (*Dependency) String

func (m *Dependency) String() string

func (*Dependency) XXX_DiscardUnknown

func (m *Dependency) XXX_DiscardUnknown()

func (*Dependency) XXX_Marshal

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

func (*Dependency) XXX_Merge

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

func (*Dependency) XXX_OneofFuncs

func (*Dependency) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

func (*Dependency) XXX_Size

func (m *Dependency) XXX_Size() int

func (*Dependency) XXX_Unmarshal

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

type Dependency_Attempts

type Dependency_Attempts struct {
	Attempts *SparseRange `protobuf:"bytes,2,opt,name=attempts,proto3,oneof"`
}

type Dependency_Retries

type Dependency_Retries struct {
	Retries uint32 `protobuf:"varint,3,opt,name=retries,proto3,oneof"`
}

type DepsStage

type DepsStage struct {
	Deps                 []*Dependency `protobuf:"bytes,1,rep,name=deps,proto3" json:"deps,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

DepsStage represents the opportunity to depend on 1 or more dependencies simultaneously.

func (*DepsStage) Descriptor

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

func (*DepsStage) ExpandShards

func (s *DepsStage) ExpandShards()

ExpandShards expands any dependencies that have non-zero Shards values.

func (*DepsStage) GetDeps

func (m *DepsStage) GetDeps() []*Dependency

func (*DepsStage) Normalize

func (d *DepsStage) Normalize() error

Normalize checks DepsStage for errors and converts it to its normalized form.

func (*DepsStage) ProtoMessage

func (*DepsStage) ProtoMessage()

func (*DepsStage) Reset

func (m *DepsStage) Reset()

func (*DepsStage) String

func (m *DepsStage) String() string

func (*DepsStage) XXX_DiscardUnknown

func (m *DepsStage) XXX_DiscardUnknown()

func (*DepsStage) XXX_Marshal

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

func (*DepsStage) XXX_Merge

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

func (*DepsStage) XXX_Size

func (m *DepsStage) XXX_Size() int

func (*DepsStage) XXX_Unmarshal

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

type FailureStage

type FailureStage struct {
	Chance               float32  `protobuf:"fixed32,1,opt,name=chance,proto3" json:"chance,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

FailureStage is the /chance/ to fail with a certain liklihood. The chance is calculated using the current Phrase's 'seed' with the "math/rand" package, The seed is either 0 (unspecified), or the value of the 'seed' property for the currently running phrase.

0 is a 0-percent chance of failure. 1 is a 100-percent chance of failure.

func (*FailureStage) Descriptor

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

func (*FailureStage) GetChance

func (m *FailureStage) GetChance() float32

func (*FailureStage) Normalize

func (f *FailureStage) Normalize() error

Normalize checks FailureStage for errors and converts it to its normalized form.

func (*FailureStage) ProtoMessage

func (*FailureStage) ProtoMessage()

func (*FailureStage) Reset

func (m *FailureStage) Reset()

func (*FailureStage) String

func (m *FailureStage) String() string

func (*FailureStage) XXX_DiscardUnknown

func (m *FailureStage) XXX_DiscardUnknown()

func (*FailureStage) XXX_Marshal

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

func (*FailureStage) XXX_Merge

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

func (*FailureStage) XXX_Size

func (m *FailureStage) XXX_Size() int

func (*FailureStage) XXX_Unmarshal

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

type Phrase

type Phrase struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Seed should be selected via a fair dice roll (using a d1.84e19).
	Seed                 int64        `protobuf:"varint,2,opt,name=seed,proto3" json:"seed,omitempty"`
	Stages               []*Stage     `protobuf:"bytes,3,rep,name=stages,proto3" json:"stages,omitempty"`
	ReturnStage          *ReturnStage `protobuf:"bytes,4,opt,name=return_stage,json=returnStage,proto3" json:"return_stage,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

Phrase is a task to do. It consists of zero or more stages, followed by an optional ReturnStage.

func (*Phrase) Descriptor

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

func (*Phrase) FromProperty

func (p *Phrase) FromProperty(prop datastore.Property) error

FromProperty implements datastore.PropertyConverter. It parses a '[]byte' into an embedded 'Phrase' when used with the "go.chromium.org/gae" library.

func (*Phrase) GetName

func (m *Phrase) GetName() string

func (*Phrase) GetReturnStage

func (m *Phrase) GetReturnStage() *ReturnStage

func (*Phrase) GetSeed

func (m *Phrase) GetSeed() int64

func (*Phrase) GetStages

func (m *Phrase) GetStages() []*Stage

func (*Phrase) Normalize

func (p *Phrase) Normalize() error

Normalize checks Phrase for errors and converts it to its normalized form.

func (*Phrase) ProtoMessage

func (*Phrase) ProtoMessage()

func (*Phrase) Reset

func (m *Phrase) Reset()

func (*Phrase) String

func (m *Phrase) String() string

func (*Phrase) ToProperty

func (p *Phrase) ToProperty() (prop datastore.Property, err error)

ToProperty implements datastore.PropertyConverter. It causes an embedded 'Phrase' to serialize to an unindexed '[]byte' when used with the "go.chromium.org/gae" library.

func (*Phrase) XXX_DiscardUnknown

func (m *Phrase) XXX_DiscardUnknown()

func (*Phrase) XXX_Marshal

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

func (*Phrase) XXX_Merge

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

func (*Phrase) XXX_Size

func (m *Phrase) XXX_Size() int

func (*Phrase) XXX_Unmarshal

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

type Range

type Range struct {
	Low                  uint32   `protobuf:"varint,1,opt,name=low,proto3" json:"low,omitempty"`
	High                 uint32   `protobuf:"varint,2,opt,name=high,proto3" json:"high,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Range represents a single low-high pair (e.g. [3-40])

func (*Range) Descriptor

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

func (*Range) GetHigh

func (m *Range) GetHigh() uint32

func (*Range) GetLow

func (m *Range) GetLow() uint32

func (*Range) Normalize

func (r *Range) Normalize() error

Normalize checks Range for errors and converts it to its normalized form.

func (*Range) ProtoMessage

func (*Range) ProtoMessage()

func (*Range) Reset

func (m *Range) Reset()

func (*Range) String

func (m *Range) String() string

func (*Range) XXX_DiscardUnknown

func (m *Range) XXX_DiscardUnknown()

func (*Range) XXX_Marshal

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

func (*Range) XXX_Merge

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

func (*Range) XXX_Size

func (m *Range) XXX_Size() int

func (*Range) XXX_Unmarshal

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

type RangeItem

type RangeItem struct {
	// Types that are valid to be assigned to RangeItem:
	//	*RangeItem_Single
	//	*RangeItem_Range
	RangeItem            isRangeItem_RangeItem `protobuf_oneof:"range_item"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

RangeItem is either a single number or a Range.

func (*RangeItem) Descriptor

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

func (*RangeItem) GetRange

func (m *RangeItem) GetRange() *Range

func (*RangeItem) GetRangeItem

func (m *RangeItem) GetRangeItem() isRangeItem_RangeItem

func (*RangeItem) GetSingle

func (m *RangeItem) GetSingle() uint32

func (*RangeItem) ProtoMessage

func (*RangeItem) ProtoMessage()

func (*RangeItem) Reset

func (m *RangeItem) Reset()

func (*RangeItem) String

func (m *RangeItem) String() string

func (*RangeItem) XXX_DiscardUnknown

func (m *RangeItem) XXX_DiscardUnknown()

func (*RangeItem) XXX_Marshal

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

func (*RangeItem) XXX_Merge

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

func (*RangeItem) XXX_OneofFuncs

func (*RangeItem) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

func (*RangeItem) XXX_Size

func (m *RangeItem) XXX_Size() int

func (*RangeItem) XXX_Unmarshal

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

type RangeItem_Range

type RangeItem_Range struct {
	Range *Range `protobuf:"bytes,2,opt,name=range,proto3,oneof"`
}

type RangeItem_Single

type RangeItem_Single struct {
	Single uint32 `protobuf:"varint,1,opt,name=single,proto3,oneof"`
}

type Result

type Result struct {
	Success              bool     `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	Value                int64    `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Result is the jobsim distributor result object used for executions.

func (*Result) Descriptor

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

func (*Result) GetSuccess

func (m *Result) GetSuccess() bool

func (*Result) GetValue

func (m *Result) GetValue() int64

func (*Result) ProtoMessage

func (*Result) ProtoMessage()

func (*Result) Reset

func (m *Result) Reset()

func (*Result) String

func (m *Result) String() string

func (*Result) XXX_DiscardUnknown

func (m *Result) XXX_DiscardUnknown()

func (*Result) XXX_Marshal

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

func (*Result) XXX_Merge

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

func (*Result) XXX_Size

func (m *Result) XXX_Size() int

func (*Result) XXX_Unmarshal

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

type ReturnStage

type ReturnStage struct {
	Retval               int64                `protobuf:"varint,1,opt,name=retval,proto3" json:"retval,omitempty"`
	Expiration           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expiration,proto3" json:"expiration,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

ReturnStage indicates that the Phrase should return the numerical value 'retval' as the result of the current Phrase. If expiration is provided, it will set that as the expiration timestamp for the provided retval.

func (*ReturnStage) Descriptor

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

func (*ReturnStage) GetExpiration

func (m *ReturnStage) GetExpiration() *timestamp.Timestamp

func (*ReturnStage) GetRetval

func (m *ReturnStage) GetRetval() int64

func (*ReturnStage) ProtoMessage

func (*ReturnStage) ProtoMessage()

func (*ReturnStage) Reset

func (m *ReturnStage) Reset()

func (*ReturnStage) String

func (m *ReturnStage) String() string

func (*ReturnStage) XXX_DiscardUnknown

func (m *ReturnStage) XXX_DiscardUnknown()

func (*ReturnStage) XXX_Marshal

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

func (*ReturnStage) XXX_Merge

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

func (*ReturnStage) XXX_Size

func (m *ReturnStage) XXX_Size() int

func (*ReturnStage) XXX_Unmarshal

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

type SparseRange

type SparseRange struct {
	Items                []*RangeItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

SparseRange allows the expression of mixed partial ranges like [1,3-10,19,21].

func (*SparseRange) Descriptor

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

func (*SparseRange) GetItems

func (m *SparseRange) GetItems() []*RangeItem

func (*SparseRange) Normalize

func (s *SparseRange) Normalize() error

Normalize checks SparseRange for errors and converts it to its normalized form.

func (*SparseRange) ProtoMessage

func (*SparseRange) ProtoMessage()

func (*SparseRange) Reset

func (m *SparseRange) Reset()

func (*SparseRange) String

func (m *SparseRange) String() string

func (*SparseRange) ToSlice

func (s *SparseRange) ToSlice() (ret []uint32)

ToSlice returns this SparseRange as an expanded slice of uint32s.

func (*SparseRange) XXX_DiscardUnknown

func (m *SparseRange) XXX_DiscardUnknown()

func (*SparseRange) XXX_Marshal

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

func (*SparseRange) XXX_Merge

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

func (*SparseRange) XXX_Size

func (m *SparseRange) XXX_Size() int

func (*SparseRange) XXX_Unmarshal

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

type Stage

type Stage struct {
	// Types that are valid to be assigned to StageType:
	//	*Stage_Failure
	//	*Stage_Stall
	//	*Stage_Deps
	StageType            isStage_StageType `protobuf_oneof:"stage_type"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

Stage is the union of the following stage types:

  • FailureStage
  • StallStage
  • DepsStage

func (*Stage) Descriptor

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

func (*Stage) GetDeps

func (m *Stage) GetDeps() *DepsStage

func (*Stage) GetFailure

func (m *Stage) GetFailure() *FailureStage

func (*Stage) GetStageType

func (m *Stage) GetStageType() isStage_StageType

func (*Stage) GetStall

func (m *Stage) GetStall() *StallStage

func (*Stage) Normalize

func (s *Stage) Normalize() error

Normalize checks Stage for errors and converts it to its normalized form.

func (*Stage) ProtoMessage

func (*Stage) ProtoMessage()

func (*Stage) Reset

func (m *Stage) Reset()

func (*Stage) String

func (m *Stage) String() string

func (*Stage) XXX_DiscardUnknown

func (m *Stage) XXX_DiscardUnknown()

func (*Stage) XXX_Marshal

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

func (*Stage) XXX_Merge

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

func (*Stage) XXX_OneofFuncs

func (*Stage) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

func (*Stage) XXX_Size

func (m *Stage) XXX_Size() int

func (*Stage) XXX_Unmarshal

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

type Stage_Deps

type Stage_Deps struct {
	Deps *DepsStage `protobuf:"bytes,3,opt,name=deps,proto3,oneof"`
}

type Stage_Failure

type Stage_Failure struct {
	Failure *FailureStage `protobuf:"bytes,1,opt,name=failure,proto3,oneof"`
}

type Stage_Stall

type Stage_Stall struct {
	Stall *StallStage `protobuf:"bytes,2,opt,name=stall,proto3,oneof"`
}

type StallStage

type StallStage struct {
	Delay                *duration.Duration `protobuf:"bytes,1,opt,name=delay,proto3" json:"delay,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

StallStage delays the phrase for the provided Duration. This could be used to simulate long-running tasks (like builds).

func (*StallStage) Descriptor

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

func (*StallStage) GetDelay

func (m *StallStage) GetDelay() *duration.Duration

func (*StallStage) Normalize

func (s *StallStage) Normalize() error

Normalize checks StallStage for errors and converts it to its normalized form.

func (*StallStage) ProtoMessage

func (*StallStage) ProtoMessage()

func (*StallStage) Reset

func (m *StallStage) Reset()

func (*StallStage) String

func (m *StallStage) String() string

func (*StallStage) XXX_DiscardUnknown

func (m *StallStage) XXX_DiscardUnknown()

func (*StallStage) XXX_Marshal

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

func (*StallStage) XXX_Merge

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

func (*StallStage) XXX_Size

func (m *StallStage) XXX_Size() int

func (*StallStage) XXX_Unmarshal

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL