executor

package module
v0.1441.2 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2016 License: Apache-2.0 Imports: 7 Imported by: 0

README

Executor

Let me run that for you

####Learn more about Diego and its components at diego-design-notes

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrContainerGuidNotAvailable      = registerError("ContainerGuidNotAvailable", "container guid not available", http.StatusBadRequest)
	ErrContainerNotCompleted          = registerError("ContainerNotCompleted", "container must be stopped before it can be deleted", http.StatusBadRequest)
	ErrInsufficientResourcesAvailable = registerError("InsufficientResourcesAvailable", "insufficient resources available", http.StatusServiceUnavailable)
	ErrContainerNotFound              = registerError("ContainerNotFound", "container not found", http.StatusNotFound)
	ErrStepsInvalid                   = registerError("StepsInvalid", "steps invalid", http.StatusBadRequest)
	ErrLimitsInvalid                  = registerError("LimitsInvalid", "container limits invalid", http.StatusBadRequest)
	ErrGuidNotSpecified               = registerError("GuidNotSpecified", "container guid not specified", http.StatusBadRequest)
	ErrInvalidTransition              = registerError("InvalidStateTransition", "container cannot transition to given state", http.StatusConflict)
	ErrFailureToCheckSpace            = registerError("ErrFailureToCheckSpace", "failed to check available space", http.StatusInternalServerError)
	ErrInvalidSecurityGroup           = registerError("ErrInvalidSecurityGroup", "security group has invalid values", http.StatusBadRequest)
)
View Source
var ErrUnknownEventType = errors.New("unknown event type")
View Source
var Errors = map[string]Error{}

Functions

func EnvironmentVariablesToModel

func EnvironmentVariablesToModel(envVars []EnvironmentVariable) []models.EnvironmentVariable

Types

type AllocationFailure

type AllocationFailure struct {
	AllocationRequest
	ErrorMsg string
}

func NewAllocationFailure

func NewAllocationFailure(req *AllocationRequest, msg string) AllocationFailure

func (*AllocationFailure) Error

func (fail *AllocationFailure) Error() string

type AllocationRequest

type AllocationRequest struct {
	Guid string
	Resource
	Tags
}

func NewAllocationRequest

func NewAllocationRequest(guid string, resource *Resource, tags Tags) AllocationRequest

func (*AllocationRequest) Validate

func (a *AllocationRequest) Validate() error

type Client

type Client interface {
	Ping() error
	AllocateContainers(requests []AllocationRequest) ([]AllocationFailure, error)
	GetContainer(guid string) (Container, error)
	RunContainer(*RunRequest) error
	StopContainer(guid string) error
	DeleteContainer(guid string) error
	ListContainers(Tags) ([]Container, error)
	GetAllMetrics(Tags) (map[string]Metrics, error)
	GetMetrics(guid string) (ContainerMetrics, error)
	RemainingResources() (ExecutorResources, error)
	RemainingResourcesFrom([]Container) (ExecutorResources, error)
	TotalResources() (ExecutorResources, error)
	GetFiles(guid string, path string) (io.ReadCloser, error)
	SubscribeToEvents() (EventSource, error)
	Cleanup()
}

type ClientProvider

type ClientProvider interface {
	WithLogger(logger lager.Logger) Client
}

type Container

type Container struct {
	Guid string `json:"guid"`
	Resource
	RunInfo
	Tags        Tags
	State       State              `json:"state"`
	AllocatedAt int64              `json:"allocated_at"`
	ExternalIP  string             `json:"external_ip"`
	RunResult   ContainerRunResult `json:"run_result"`
}

func NewContainerFromResource

func NewContainerFromResource(guid string, resource *Resource, tags Tags) Container

func NewReservedContainerFromAllocationRequest

func NewReservedContainerFromAllocationRequest(req *AllocationRequest, allocatedAt int64) Container

func (Container) Copy

func (newContainer Container) Copy() Container

func (*Container) HasTags

func (c *Container) HasTags(tags Tags) bool

type ContainerCompleteEvent

type ContainerCompleteEvent struct {
	RawContainer Container `json:"container"`
}

func NewContainerCompleteEvent

func NewContainerCompleteEvent(container Container) ContainerCompleteEvent

func (ContainerCompleteEvent) Container

func (e ContainerCompleteEvent) Container() Container

func (ContainerCompleteEvent) EventType

func (ContainerCompleteEvent) EventType() EventType

type ContainerMetrics

type ContainerMetrics struct {
	MemoryUsageInBytes uint64        `json:"memory_usage_in_bytes"`
	DiskUsageInBytes   uint64        `json:"disk_usage_in_bytes"`
	TimeSpentInCPU     time.Duration `json:"time_spent_in_cpu"`
}

type ContainerReservedEvent

type ContainerReservedEvent struct {
	RawContainer Container `json:"container"`
}

func NewContainerReservedEvent

func NewContainerReservedEvent(container Container) ContainerReservedEvent

func (ContainerReservedEvent) Container

func (e ContainerReservedEvent) Container() Container

func (ContainerReservedEvent) EventType

func (ContainerReservedEvent) EventType() EventType

type ContainerRunResult

type ContainerRunResult struct {
	Failed        bool   `json:"failed"`
	FailureReason string `json:"failure_reason"`

	Stopped bool `json:"stopped"`
}

type ContainerRunningEvent

type ContainerRunningEvent struct {
	RawContainer Container `json:"container"`
}

func NewContainerRunningEvent

func NewContainerRunningEvent(container Container) ContainerRunningEvent

func (ContainerRunningEvent) Container

func (e ContainerRunningEvent) Container() Container

func (ContainerRunningEvent) EventType

func (ContainerRunningEvent) EventType() EventType

type DiskLimitScope

type DiskLimitScope uint8
const (
	ExclusiveDiskLimit DiskLimitScope = iota
	TotalDiskLimit     DiskLimitScope = iota
)

type EnvironmentVariable

type EnvironmentVariable struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

func EnvironmentVariablesFromModel

func EnvironmentVariablesFromModel(envVars []*models.EnvironmentVariable) []EnvironmentVariable

type Error

type Error interface {
	error

	Name() string
	HttpCode() int
}

type Event

type Event interface {
	EventType() EventType
}

type EventSource

type EventSource interface {
	Next() (Event, error)
	Close() error
}

type EventType

type EventType string
const (
	EventTypeInvalid EventType = ""

	EventTypeContainerComplete EventType = "container_complete"
	EventTypeContainerRunning  EventType = "container_running"
	EventTypeContainerReserved EventType = "container_reserved"
)

type ExecutorResources

type ExecutorResources struct {
	MemoryMB   int `json:"memory_mb"`
	DiskMB     int `json:"disk_mb"`
	Containers int `json:"containers"`
}

func NewExecutorResources

func NewExecutorResources(memoryMB, diskMB, containers int) ExecutorResources

func (*ExecutorResources) Subtract

func (r *ExecutorResources) Subtract(res *Resource) bool

type InnerContainer

type InnerContainer Container

type LifecycleEvent

type LifecycleEvent interface {
	Container() Container
	// contains filtered or unexported methods
}

type LogConfig

type LogConfig struct {
	Guid       string `json:"guid"`
	Index      int    `json:"index"`
	SourceName string `json:"source_name"`
}

type Metrics

type Metrics struct {
	MetricsConfig
	ContainerMetrics
}

type MetricsConfig

type MetricsConfig struct {
	Guid  string `json:"guid"`
	Index int    `json:"index"`
}

type PortMapping

type PortMapping struct {
	ContainerPort uint16 `json:"container_port"`
	HostPort      uint16 `json:"host_port,omitempty"`
}

type Resource

type Resource struct {
	MemoryMB   int    `json:"memory_mb"`
	DiskMB     int    `json:"disk_mb"`
	RootFSPath string `json:"rootfs"`
}

func NewResource

func NewResource(memoryMB, diskMB int, rootFSPath string) Resource

type RunInfo

type RunInfo struct {
	CPUWeight     uint                        `json:"cpu_weight"`
	DiskScope     DiskLimitScope              `json:"disk_scope,omitempty"`
	Ports         []PortMapping               `json:"ports"`
	LogConfig     LogConfig                   `json:"log_config"`
	MetricsConfig MetricsConfig               `json:"metrics_config"`
	StartTimeout  uint                        `json:"start_timeout"`
	Privileged    bool                        `json:"privileged"`
	Setup         *models.Action              `json:"setup"`
	Action        *models.Action              `json:"run"`
	Monitor       *models.Action              `json:"monitor"`
	EgressRules   []*models.SecurityGroupRule `json:"egress_rules,omitempty"`
	Env           []EnvironmentVariable       `json:"env,omitempty"`
}

type RunRequest

type RunRequest struct {
	Guid string
	RunInfo
	Tags
}

func NewRunRequest

func NewRunRequest(guid string, runInfo *RunInfo, tags Tags) RunRequest

type State

type State string
const (
	StateInvalid      State = ""
	StateReserved     State = "reserved"
	StateInitializing State = "initializing"
	StateCreated      State = "created"
	StateRunning      State = "running"
	StateCompleted    State = "completed"
)

type Tags

type Tags map[string]string

func (Tags) Add

func (t Tags) Add(other Tags)

func (Tags) Copy

func (t Tags) Copy() Tags

type WorkPoolSettings

type WorkPoolSettings struct {
	CreateWorkPoolSize  int
	DeleteWorkPoolSize  int
	ReadWorkPoolSize    int
	MetricsWorkPoolSize int
}

Directories

Path Synopsis
allocationstore/fakes
This file was generated by counterfeiter
This file was generated by counterfeiter
event/fakes
This file was generated by counterfeiter
This file was generated by counterfeiter
fakes
This file was generated by counterfeiter
This file was generated by counterfeiter
gardenstore/fakes
This file was generated by counterfeiter
This file was generated by counterfeiter
keyed_lock/fakelockmanager
This file was generated by counterfeiter
This file was generated by counterfeiter
log_streamer/fake_log_streamer
This file was generated by counterfeiter
This file was generated by counterfeiter
steps/fakes
This file was generated by counterfeiter
This file was generated by counterfeiter
uploader/fake_uploader
This file was generated by counterfeiter
This file was generated by counterfeiter
This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter
This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter

Jump to

Keyboard shortcuts

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