Documentation
¶
Index ¶
Constants ¶
View Source
const ( ContentTypeHeader = "Content-Type" XCfRouterErrorHeader = "X-Cf-Routererror" ProtoContentType = "application/x-protobuf" KeepContainer = true DeleteContainer = false )
View Source
const ( // Ping PingRoute = "Ping" // Domains DomainsRoute = "Domains" UpsertDomainRoute = "UpsertDomain" // Actual LRPs ActualLRPGroupsRoute = "ActualLRPGroups" ActualLRPGroupsByProcessGuidRoute = "ActualLRPGroupsByProcessGuid" ActualLRPGroupByProcessGuidAndIndexRoute = "ActualLRPGroupsByProcessGuidAndIndex" // Actual LRP Lifecycle ClaimActualLRPRoute = "ClaimActualLRP" StartActualLRPRoute = "StartActualLRP" CrashActualLRPRoute = "CrashActualLRP" FailActualLRPRoute = "FailActualLRP" RemoveActualLRPRoute = "RemoveActualLRP" RetireActualLRPRoute = "RetireActualLRP" // Evacuation RemoveEvacuatingActualLRPRoute = "RemoveEvacuatingActualLRP" EvacuateClaimedActualLRPRoute = "EvacuateClaimedActualLRP" EvacuateCrashedActualLRPRoute = "EvacuateCrashedActualLRP" EvacuateStoppedActualLRPRoute = "EvacuateStoppedActualLRP" EvacuateRunningActualLRPRoute = "EvacuateRunningActualLRP" // Desired LRPs DesiredLRPsRoute = "DesiredLRPs" DesiredLRPSchedulingInfosRoute = "DesiredLRPSchedulingInfos" DesiredLRPByProcessGuidRoute = "DesiredLRPByProcessGuid" // Desire LRP Lifecycle DesireDesiredLRPRoute = "DesireDesiredLRP" UpdateDesiredLRPRoute = "UpdateDesireLRP" RemoveDesiredLRPRoute = "RemoveDesiredLRP" // LRP Convergence ConvergeLRPsRoute = "ConvergeLRPs" // Tasks TasksRoute = "Tasks" TaskByGuidRoute = "TaskByGuid" DesireTaskRoute = "DesireTask" StartTaskRoute = "StartTask" CancelTaskRoute = "CancelTask" FailTaskRoute = "FailTask" CompleteTaskRoute = "CompleteTask" ResolvingTaskRoute = "ResolvingTask" DeleteTaskRoute = "DeleteTask" ConvergeTasksRoute = "ConvergeTasks" // Event Streaming EventStreamRoute = "EventStream" )
View Source
const ( CellSchemaKey = "cell" BBSLockSchemaKey = "bbs_lock" )
Variables ¶
View Source
var Routes = rata.Routes{ {Path: "/v1/ping", Method: "POST", Name: PingRoute}, {Path: "/v1/domains/list", Method: "POST", Name: DomainsRoute}, {Path: "/v1/domains/upsert", Method: "POST", Name: UpsertDomainRoute}, {Path: "/v1/actual_lrp_groups/list", Method: "POST", Name: ActualLRPGroupsRoute}, {Path: "/v1/actual_lrp_groups/list_by_process_guid", Method: "POST", Name: ActualLRPGroupsByProcessGuidRoute}, {Path: "/v1/actual_lrp_groups/get_by_process_guid_and_index", Method: "POST", Name: ActualLRPGroupByProcessGuidAndIndexRoute}, {Path: "/v1/actual_lrps/claim", Method: "POST", Name: ClaimActualLRPRoute}, {Path: "/v1/actual_lrps/start", Method: "POST", Name: StartActualLRPRoute}, {Path: "/v1/actual_lrps/crash", Method: "POST", Name: CrashActualLRPRoute}, {Path: "/v1/actual_lrps/fail", Method: "POST", Name: FailActualLRPRoute}, {Path: "/v1/actual_lrps/remove", Method: "POST", Name: RemoveActualLRPRoute}, {Path: "/v1/actual_lrps/retire", Method: "POST", Name: RetireActualLRPRoute}, {Path: "/v1/actual_lrps/remove_evacuating", Method: "POST", Name: RemoveEvacuatingActualLRPRoute}, {Path: "/v1/actual_lrps/evacuate_claimed", Method: "POST", Name: EvacuateClaimedActualLRPRoute}, {Path: "/v1/actual_lrps/evacuate_crashed", Method: "POST", Name: EvacuateCrashedActualLRPRoute}, {Path: "/v1/actual_lrps/evacuate_stopped", Method: "POST", Name: EvacuateStoppedActualLRPRoute}, {Path: "/v1/actual_lrps/evacuate_running", Method: "POST", Name: EvacuateRunningActualLRPRoute}, {Path: "/v1/desired_lrps/list", Method: "POST", Name: DesiredLRPsRoute}, {Path: "/v1/desired_lrps/get_by_process_guid", Method: "POST", Name: DesiredLRPByProcessGuidRoute}, {Path: "/v1/desired_lrp_scheduling_infos/list", Method: "POST", Name: DesiredLRPSchedulingInfosRoute}, {Path: "/v1/desired_lrp/desire", Method: "POST", Name: DesireDesiredLRPRoute}, {Path: "/v1/desired_lrp/update", Method: "POST", Name: UpdateDesiredLRPRoute}, {Path: "/v1/desired_lrp/remove", Method: "POST", Name: RemoveDesiredLRPRoute}, {Path: "/v1/lrps/converge", Method: "POST", Name: ConvergeLRPsRoute}, {Path: "/v1/tasks/list", Method: "POST", Name: TasksRoute}, {Path: "/v1/tasks/get_by_task_guid", Method: "GET", Name: TaskByGuidRoute}, {Path: "/v1/tasks/desire", Method: "POST", Name: DesireTaskRoute}, {Path: "/v1/tasks/start", Method: "POST", Name: StartTaskRoute}, {Path: "/v1/tasks/cancel", Method: "POST", Name: CancelTaskRoute}, {Path: "/v1/tasks/fail", Method: "POST", Name: FailTaskRoute}, {Path: "/v1/tasks/complete", Method: "POST", Name: CompleteTaskRoute}, {Path: "/v1/tasks/resolving", Method: "POST", Name: ResolvingTaskRoute}, {Path: "/v1/tasks/delete", Method: "POST", Name: DeleteTaskRoute}, {Path: "/v1/tasks/converge", Method: "POST", Name: ConvergeTasksRoute}, {Path: "/v1/events", Method: "GET", Name: EventStreamRoute}, }
Functions ¶
func BBSLockSchemaPath ¶
func BBSLockSchemaPath() string
func CellSchemaPath ¶
func CellSchemaRoot ¶
func CellSchemaRoot() string
Types ¶
type Client ¶
type Client interface {
ExternalClient
ClaimActualLRP(processGuid string, index int, instanceKey *models.ActualLRPInstanceKey) error
StartActualLRP(key *models.ActualLRPKey, instanceKey *models.ActualLRPInstanceKey, netInfo *models.ActualLRPNetInfo) error
CrashActualLRP(key *models.ActualLRPKey, instanceKey *models.ActualLRPInstanceKey, errorMessage string) error
FailActualLRP(key *models.ActualLRPKey, errorMessage string) error
RemoveActualLRP(processGuid string, index int) error
EvacuateClaimedActualLRP(*models.ActualLRPKey, *models.ActualLRPInstanceKey) (bool, error)
EvacuateRunningActualLRP(*models.ActualLRPKey, *models.ActualLRPInstanceKey, *models.ActualLRPNetInfo, uint64) (bool, error)
EvacuateStoppedActualLRP(*models.ActualLRPKey, *models.ActualLRPInstanceKey) (bool, error)
EvacuateCrashedActualLRP(*models.ActualLRPKey, *models.ActualLRPInstanceKey, string) (bool, error)
RemoveEvacuatingActualLRP(*models.ActualLRPKey, *models.ActualLRPInstanceKey) error
ConvergeLRPs() error
ConvergeTasks(kickTaskDuration, expirePendingTaskDuration, expireCompletedTaskDuration time.Duration) error
StartTask(taskGuid string, cellID string) (bool, error)
FailTask(taskGuid, failureReason string) error
CompleteTask(taskGuid, cellId string, failed bool, failureReason, result string) error
ResolvingTask(taskGuid string) error
DeleteTask(taskGuid string) error
}
The Client interface exposes all available endpoints of the BBS server, including private endpoints which should be used exclusively by internal Diego components. To interact with the BBS from outside of Diego, the ExternalClient should be used instead.
func NewSecureClient ¶
type ExternalClient ¶
type ExternalClient interface {
// Returns true if the BBS server is reachable
Ping() bool
// Lists the active domains
Domains() ([]string, error)
// Creates a domain or bumps the ttl on an existing domain
UpsertDomain(domain string, ttl time.Duration) error
// Returns all ActualLRPGroups matching the given ActualLRPFilter
ActualLRPGroups(models.ActualLRPFilter) ([]*models.ActualLRPGroup, error)
// Returns all ActualLRPGroups that have the given process guid
ActualLRPGroupsByProcessGuid(processGuid string) ([]*models.ActualLRPGroup, error)
// Returns the ActualLRPGroup with the given process guid and instance index
ActualLRPGroupByProcessGuidAndIndex(processGuid string, index int) (*models.ActualLRPGroup, error)
// Shuts down the ActualLRP matching the given ActualLRPKey, but does not modify the desired state
RetireActualLRP(key *models.ActualLRPKey) error
// Lists all DesiredLRPs that match the given DesiredLRPFilter
DesiredLRPs(models.DesiredLRPFilter) ([]*models.DesiredLRP, error)
// Returns the DesiredLRP with the given process guid
DesiredLRPByProcessGuid(processGuid string) (*models.DesiredLRP, error)
// Returns all DesiredLRPSchedulingInfos that match the given DesiredLRPFilter
DesiredLRPSchedulingInfos(models.DesiredLRPFilter) ([]*models.DesiredLRPSchedulingInfo, error)
// Creates the given DesiredLRP and its corresponding ActualLRPs
DesireLRP(*models.DesiredLRP) error
// Updates the DesiredLRP matching the given process guid
UpdateDesiredLRP(processGuid string, update *models.DesiredLRPUpdate) error
// Removes the DesiredLRP matching the given process guid
RemoveDesiredLRP(processGuid string) error
// Lists all Tasks
Tasks() ([]*models.Task, error)
// Lists all Tasks of the given domain
TasksByDomain(domain string) ([]*models.Task, error)
// Lists all Tasks on the given cell
TasksByCellID(cellId string) ([]*models.Task, error)
// Returns the Task with the given guid
TaskByGuid(guid string) (*models.Task, error)
// Creates a Task from the given TaskDefinition
DesireTask(guid, domain string, def *models.TaskDefinition) error
// Cancels the Task with the given task guid
CancelTask(taskGuid string) error
// Returns an EventSource for watching changes to LRPs
SubscribeToEvents() (events.EventSource, error)
}
The External Client can be used to access the BBS's public functionality. It exposes methods for basic LRP and Task Lifecycles, Domain manipulation, and event subscription.
type ServiceClient ¶
type ServiceClient interface {
CellById(logger lager.Logger, cellId string) (*models.CellPresence, error)
Cells(logger lager.Logger) (models.CellSet, error)
CellEvents(logger lager.Logger) <-chan models.CellEvent
NewCellPresenceRunner(logger lager.Logger, cellPresence *models.CellPresence, retryInterval time.Duration) ifrit.Runner
NewBBSLockRunner(logger lager.Logger, bbsPresence *models.BBSPresence, retryInterval time.Duration) (ifrit.Runner, error)
CurrentBBS(logger lager.Logger) (*models.BBSPresence, error)
CurrentBBSURL(logger lager.Logger) (string, error)
}
func NewServiceClient ¶
func NewServiceClient(session *consuladapter.Session, clock clock.Clock) ServiceClient
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
bbs
command
|
|
|
etcd/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 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
|
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 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
|
This file was generated by counterfeiter This file was generated by counterfeiter |
|
eventfakes
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
|
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
|
This file was generated by counterfeiter This file was generated by counterfeiter |
|
migrationfakes
This file was generated by counterfeiter
|
This file was generated by counterfeiter |
|
Package models is a generated protocol buffer package.
|
Package models is a generated protocol buffer package. |
|
fakes
This file was generated by counterfeiter This file was generated by counterfeiter
|
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 |
Click to show internal directories.
Click to hide internal directories.