Documentation
¶
Index ¶
Constants ¶
const ( // StatusPending Task state is unknown (assumed pending since you know the id). StatusPending = TaskStatus("PENDING") // StatusReceived Task was received by a worker (only used in events). StatusReceived = TaskStatus("RECEIVED") // StatusStarted Task was started by a worker (task_track_started). StatusStarted = TaskStatus("STARTED") // StatusSuccess Task succeeded StatusSuccess = TaskStatus("SUCCESS") // StatusFailure Task failed StatusFailure = TaskStatus("FAILURE") // StatusRevoked Task was revoked. StatusRevoked = TaskStatus("REVOKED") // StatusRetry Task is waiting for retry. StatusRetry = TaskStatus("RETRY") )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Backend ¶
type Backend struct {
ID *int `json:"id,omitempty"`
Address string `json:"address,omitempty"`
Director string `json:"director,omitempty"`
DC DC `json:"dc,omitempty"`
Port int `json:"port,omitempty"`
InheritTimeProfile bool `json:"inherit_time_profile,omitempty"`
Weight *int `json:"weight,omitempty"`
Tags []string `json:"tags,omitempty"`
ResourceURI string `json:"resource_uri,omitempty"`
}
Backend represents JSON structure of backend in VaaS API.
type Client ¶
type Client interface {
FindDirectorID(string) (int, error)
AddBackend(*Backend, bool) (string, error)
DeleteBackend(int) error
GetDC(string) (*DC, error)
TaskStatus(*Task) error
}
Client is an interface for VaaS API.
type Config ¶ added in v0.9.0
type Config struct {
// Varnish as a Service API url
VaasAPIHost string `default:"" envconfig:"vaas_host"`
// Varnish as a Service username
VaasAPIUsername string `default:"" envconfig:"vaas_username"`
// Varnish as a Service access token
VaasAPIKey string `default:"" envconfig:"vaas_token"`
// VaasAsyncTimeout is a timeout for async registration in VaaS
VaasAsyncTimeout time.Duration `default:"90s" envconfig:"vaas_async_timeout"`
}
Config is Varnish configuration settable from environment
type DC ¶
type DC struct {
ID int `json:"id,omitempty"`
Name string `json:"name,omitempty"`
ResourceURI string `json:"resource_uri,omitempty"`
Symbol string `json:"symbol,omitempty"`
}
DC represents JSON structure of DC in VaaS API.
type Director ¶
type Director struct {
ID int `json:"id,omitempty"`
Backends []string `json:"backends,omitempty"`
Cluster []string `json:"cluster,omitempty"`
Name string `json:"name,omitempty"`
ResourceURI string `json:"resource_uri,omitempty"`
}
Director represents JSON structure of Director in VaaS API.
type DirectorList ¶
type DirectorList struct {
Meta Meta `json:"meta,omitempty"`
Objects []Director `json:"objects,omitempty"`
}
DirectorList represents JSON structure of Director list used in responses in VaaS API.
type Hook ¶
type Hook struct {
// contains filtered or unexported fields
}
Hook manages lifecycle of Varnish backend related to executed service instance.
func (*Hook) DeregisterBackend ¶
func (sh *Hook) DeregisterBackend(_ mesosutils.TaskInfo) error
DeregisterBackend deletes backend from VaaS.
func (*Hook) HandleEvent ¶
HandleEvent calls appropriate hook functions that correspond to supported event types. Unsupported events are ignored.
func (*Hook) RegisterBackend ¶
func (sh *Hook) RegisterBackend(taskInfo mesosutils.TaskInfo) error
RegisterBackend adds new backend to VaaS if it does not exist.
type Meta ¶
type Meta struct {
Limit int `json:"limit,omitempty"`
Next *string `json:"next,omitempty"`
Offset int `json:"offset,omitempty"`
Previous *string `json:"previous,omitempty"`
TotalCount int `json:"total_count,omitempty"`
}
Meta represents JSON structure of Meta in VaaS API.
type Task ¶
type Task struct {
Info string `json:"info,omitempty"`
ResourceURI string `json:"resource_uri,omitempty"`
Status TaskStatus `json:"status,omitempty"`
}
Task represents JSON structure of a VaaS task in API.
type TaskStatus ¶
type TaskStatus string
TaskStatus is a type representing task status from VaaS API responses.