Documentation
¶
Index ¶
- Constants
- Variables
- type APIError
- type AllTasksOpts
- type Application
- func (r *Application) AddEnv(name, value string) *Application
- func (r *Application) AddLabel(name, value string) *Application
- func (r *Application) AllTaskRunning() bool
- func (r *Application) Arg(arguments ...string) *Application
- func (r *Application) CPU(cpu float64) *Application
- func (r *Application) CheckHTTP(uri string, port, interval int) (*Application, error)
- func (r *Application) CheckTCP(port, interval int) (*Application, error)
- func (r *Application) Count(count int) *Application
- func (r *Application) DependsOn(names ...string) *Application
- func (r *Application) DeploymentIDs() []*DeploymentID
- func (r *Application) HasHealthChecks() bool
- func (r *Application) Memory(memory float64) *Application
- func (r *Application) Name(id string) *Application
- func (r *Application) Storage(disk float64) *Application
- type ApplicationVersion
- type ApplicationVersions
- type Applications
- type Cluster
- type Command
- type Config
- type Container
- type Deployment
- type DeploymentID
- type DeploymentPlan
- type DeploymentStep
- type Docker
- func (docker *Docker) Bridged() *Docker
- func (docker *Docker) Container(image string) *Docker
- func (docker *Docker) Expose(ports ...int) *Docker
- func (docker *Docker) ExposePort(containerPort, hostPort, servicePort int, protocol string) *Docker
- func (docker *Docker) ExposeUDP(ports ...int) *Docker
- func (docker *Docker) Parameter(key string, value string) *Docker
- func (docker *Docker) ServicePortIndex(port int) (int, error)
- type Event
- type EventAPIRequest
- type EventAddHealthCheck
- type EventAppTerminated
- type EventDeploymentFailed
- type EventDeploymentInfo
- type EventDeploymentStepFailure
- type EventDeploymentStepSuccess
- type EventDeploymentSuccess
- type EventFailedHealthCheck
- type EventFrameworkMessage
- type EventGroupChangeFailed
- type EventGroupChangeSuccess
- type EventHealthCheckChanged
- type EventRemoveHealthCheck
- type EventStatusUpdate
- type EventStreamAttached
- type EventStreamDetached
- type EventSubscription
- type EventType
- type EventUnsubscription
- type EventsChannel
- type EventsTransport
- type Group
- type Groups
- type HealthCheck
- type HealthCheckResult
- type Info
- type KillApplicationTasksOpts
- type KillTaskOpts
- type LastTaskFailure
- type Marathon
- type Parameters
- type PortMapping
- type Subscriptions
- type Task
- type Tasks
- type UpgradeStrategy
- type VersionInfo
- type Volume
Constants ¶
const ( // ErrCodeBadRequest specifies a 400 Bad Request error. ErrCodeBadRequest = iota ErrCodeUnauthorized // ErrCodeForbidden specifies a 403 Forbidden error. ErrCodeForbidden // ErrCodeNotFound specifies a 404 Not Found error. ErrCodeNotFound // ErrCodeDuplicateID specifies a PUT 409 Conflict error. ErrCodeDuplicateID // ErrCodeAppLocked specifies a POST 409 Conflict error. ErrCodeAppLocked // ErrCodeInvalidBean specifies a 422 UnprocessableEntity error. ErrCodeInvalidBean // ErrCodeServer specifies a 500+ Server error. ErrCodeServer // ErrCodeUnknown specifies an unknown error. ErrCodeUnknown )
const ( EVENT_API_REQUEST = 1 << iota EVENT_STATUS_UPDATE EVENT_FRAMEWORK_MESSAGE EVENT_SUBSCRIPTION EVENT_UNSUBSCRIBED EVENT_STREAM_ATTACHED EVENT_STREAM_DETACHED EVENT_ADD_HEALTH_CHECK EVENT_REMOVE_HEALTH_CHECK EVENT_FAILED_HEALTH_CHECK EVENT_CHANGED_HEALTH_CHECK EVENT_GROUP_CHANGE_SUCCESS EVENT_GROUP_CHANGE_FAILED EVENT_DEPLOYMENT_SUCCESS EVENT_DEPLOYMENT_FAILED EVENT_DEPLOYMENT_INFO EVENT_DEPLOYMENT_STEP_SUCCESS EVENT_DEPLOYMENT_STEP_FAILED EVENT_APP_TERMINATED )
const ( EVENTS_APPLICATIONS = EVENT_STATUS_UPDATE | EVENT_CHANGED_HEALTH_CHECK | EVENT_FAILED_HEALTH_CHECK | EVENT_APP_TERMINATED EVENTS_SUBSCRIPTIONS = EVENT_SUBSCRIPTION | EVENT_UNSUBSCRIBED | EVENT_STREAM_ATTACHED | EVENT_STREAM_DETACHED )
Variables ¶
var ( // ErrInvalidEndpoint is thrown when the marathon url specified was invalid ErrInvalidEndpoint = errors.New("invalid Marathon endpoint specified") // ErrInvalidResponse is thrown when marathon responds with invalid or error response ErrInvalidResponse = errors.New("invalid response from Marathon") // ErrMarathonDown is thrown when all the marathon endpoints are down ErrMarathonDown = errors.New("all the Marathon hosts are presently down") // ErrTimeoutError is thrown when the operation has timed out ErrTimeoutError = errors.New("the operation has timed out") )
var ( // ErrNoApplicationContainer is thrown when a container has been specified yet ErrNoApplicationContainer = errors.New("you have not specified a docker container yet") )
var (
Events map[string]int
)
Functions ¶
This section is empty.
Types ¶
type APIError ¶
type APIError struct {
// ErrCode specifies the nature of the error.
ErrCode int
// contains filtered or unexported fields
}
APIError represents a generic API error.
func NewAPIError ¶
NewAPIError creates a new APIError instance from the given response code and content.
type AllTasksOpts ¶
type AllTasksOpts struct {
Status string `url:"status,omitempty"`
}
AllTasksOpts contains a payload for AllTasks method
status: Return only those tasks whose status matches this parameter. If not specified, all tasks are returned. Possible values: running, staging. Default: none.
type Application ¶
type Application struct {
ID string `json:"id,omitempty"`
Cmd string `json:"cmd,omitempty"`
Args []string `json:"args"`
Constraints [][]string `json:"constraints"`
Container *Container `json:"container,omitempty"`
CPUs float64 `json:"cpus,omitempty"`
Disk float64 `json:"disk,omitempty"`
Env map[string]string `json:"env"`
Executor string `json:"executor,omitempty"`
HealthChecks []*HealthCheck `json:"healthChecks"`
Instances int `json:"instances,omitempty"`
Mem float64 `json:"mem,omitempty"`
Tasks []*Task `json:"tasks,omitempty"`
Ports []int `json:"ports"`
RequirePorts bool `json:"requirePorts,omitempty"`
BackoffSeconds float64 `json:"backoffSeconds,omitempty"`
BackoffFactor float64 `json:"backoffFactor,omitempty"`
MaxLaunchDelaySeconds float64 `json:"maxLaunchDelaySeconds,omitempty"`
Deployments []map[string]string `json:"deployments,omitempty"`
Dependencies []string `json:"dependencies"`
TasksRunning int `json:"tasksRunning,omitempty"`
TasksStaged int `json:"tasksStaged,omitempty"`
TasksHealthy int `json:"tasksHealthy,omitempty"`
TasksUnhealthy int `json:"tasksUnhealthy,omitempty"`
User string `json:"user,omitempty"`
UpgradeStrategy *UpgradeStrategy `json:"upgradeStrategy,omitempty"`
Uris []string `json:"uris"`
Version string `json:"version,omitempty"`
VersionInfo *VersionInfo `json:"versionInfo,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
AcceptedResourceRoles []string `json:"acceptedResourceRoles,omitempty"`
LastTaskFailure *LastTaskFailure `json:"lastTaskFailure,omitempty"`
}
Application is the definition for an application in marathon
func NewDockerApplication ¶
func NewDockerApplication() *Application
NewDockerApplication creates a default docker application
func (*Application) AddEnv ¶
func (r *Application) AddEnv(name, value string) *Application
AddEnv adds an environment variable to the application
name: the name of the variable value: go figure, the value associated to the above
func (*Application) AddLabel ¶
func (r *Application) AddLabel(name, value string) *Application
AddLabel adds a label to the application
name: the name of the label value: go figure, the value associated to the above
func (*Application) AllTaskRunning ¶
func (r *Application) AllTaskRunning() bool
AllTaskRunning checks to see if all the application tasks are running, i.e. the instances is equal to the number of running tasks
func (*Application) Arg ¶
func (r *Application) Arg(arguments ...string) *Application
Arg adds one or more arguments to the applications
arguments: the argument(s) you are adding
func (*Application) CPU ¶
func (r *Application) CPU(cpu float64) *Application
CPU set the amount of CPU shares per instance which is assigned to the application
cpu: the CPU shared (check Docker docs) per instance
func (*Application) CheckHTTP ¶
func (r *Application) CheckHTTP(uri string, port, interval int) (*Application, error)
CheckHTTP adds a HTTP check to an application
port: the port the check should be checking interval: the interval in seconds the check should be performed
func (*Application) CheckTCP ¶
func (r *Application) CheckTCP(port, interval int) (*Application, error)
CheckTCP adds a TCP check to an application; note the port mapping must already exist, or an error will thrown
port: the port the check should, err, check interval: the interval in seconds the check should be performed
func (*Application) Count ¶
func (r *Application) Count(count int) *Application
Count sets the number of instances of the application to run
count: the number of instances to run
func (*Application) DependsOn ¶
func (r *Application) DependsOn(names ...string) *Application
DependsOn adds one or more dependencies for this application. Note, if you want to wait for an application dependency to actually be UP, i.e. not just deployed, you need a health check on the dependant app.
names: the application id(s) this application depends on
func (*Application) DeploymentIDs ¶
func (r *Application) DeploymentIDs() []*DeploymentID
DeploymentIDs retrieves the application deployments IDs
func (*Application) HasHealthChecks ¶
func (r *Application) HasHealthChecks() bool
HasHealthChecks is a helper method, used to check if an application has healtchecks
func (*Application) Memory ¶
func (r *Application) Memory(memory float64) *Application
Memory sets he amount of memory the application can consume per instance
memory: the amount of MB to assign
func (*Application) Name ¶
func (r *Application) Name(id string) *Application
Name set the name of the application i.e. the identifier for this application
func (*Application) Storage ¶
func (r *Application) Storage(disk float64) *Application
Storage sets the amount of disk space the application is assigned, which for docker application I don't believe is relevant
disk: the disk space in MB
type ApplicationVersion ¶
type ApplicationVersion struct {
Version string `json:"version"`
}
ApplicationVersion is the application version response from marathon
type ApplicationVersions ¶
type ApplicationVersions struct {
Versions []string `json:"versions"`
}
ApplicationVersions is a collection of application versions for a specific app in marathon
type Applications ¶
type Applications struct {
Apps []Application `json:"apps"`
}
Applications is a collection of applications
type Cluster ¶
type Cluster interface {
URL() string
// retrieve a member from the cluster
GetMember() (string, error)
// make the last member as down
MarkDown()
// the size of the cluster
Size() int
// the members which are available
Active() []string
// the members which are NOT available
NonActive() []string
}
Cluster is the interface for the marathon cluster impl
type Command ¶
type Command struct {
Value string `json:"value"`
}
Command is the command health check type
type Config ¶
type Config struct {
// the url for marathon
URL string
// events transport: EventsTransportCallback or EventsTransportSSE
EventsTransport EventsTransport
// event handler port
EventsPort int
// the interface we should be listening on for events
EventsInterface string
// the timeout for requests
RequestTimeout int
// http basic auth
HTTPBasicAuthUser string
// http basic password
HTTPBasicPassword string
// custom callback url
CallbackURL string
// the output for debug log messages
LogOutput io.Writer
}
Config holds the settings and options for the client
func NewDefaultConfig ¶
func NewDefaultConfig() Config
NewDefaultConfig create a default client config
type Container ¶
type Container struct {
Type string `json:"type,omitempty"`
Docker *Docker `json:"docker,omitempty"`
Volumes []*Volume `json:"volumes,omitempty"`
}
Container is the definition for a container type in marathon
func NewDockerContainer ¶
func NewDockerContainer() *Container
NewDockerContainer creates a default docker container for you
type Deployment ¶
type Deployment struct {
ID string `json:"id"`
Version string `json:"version"`
CurrentStep int `json:"currentStep"`
TotalSteps int `json:"totalSteps"`
AffectedApps []string `json:"affectedApps"`
Steps [][]*DeploymentStep `json:"steps"`
CurrentActions []*DeploymentStep `json:"currentActions"`
}
Deployment is a marathon deployment definition
type DeploymentID ¶
type DeploymentID struct {
DeploymentID string `json:"deploymentId"`
Version string `json:"version"`
}
DeploymentID is the identifier for a application deployment
type DeploymentPlan ¶
type DeploymentPlan struct {
ID string `json:"id"`
Version string `json:"version"`
Original struct {
Apps []*Application `json:"apps"`
Dependencies []string `json:"dependencies"`
Groups []*Group `json:"groups"`
ID string `json:"id"`
Version string `json:"version"`
} `json:"original"`
Steps []*DeploymentStep `json:"steps"`
Target struct {
Apps []*Application `json:"apps"`
Dependencies []string `json:"dependencies"`
Groups []*Group `json:"groups"`
ID string `json:"id"`
Version string `json:"version"`
} `json:"target"`
}
DeploymentPlan is a collection of steps for application deployment
type DeploymentStep ¶
DeploymentStep is a step in the application deployment plan
type Docker ¶
type Docker struct {
ForcePullImage bool `json:"forcePullImage,omitempty"`
Image string `json:"image,omitempty"`
Network string `json:"network,omitempty"`
Parameters []*Parameters `json:"parameters,omitempty"`
PortMappings []*PortMapping `json:"portMappings,omitempty"`
Privileged bool `json:"privileged,omitempty"`
}
Docker is the docker definition from a marathon application
func (*Docker) Container ¶
Container sets the image of the container
image: the image name you are using
func (*Docker) Expose ¶
Expose sets the container to expose the following TCP ports
ports: the TCP ports the container is exposing
func (*Docker) ExposePort ¶
ExposePort exposes an port in the container
containerPort: the container port which is being exposed hostPort: the host port we should expose it on servicePort: check the marathon documentation protocol: the protocol to use TCP, UDP
func (*Docker) ExposeUDP ¶
ExposeUDP sets the container to expose the following UDP ports
ports: the UDP ports the container is exposing
type Event ¶
Event is the definition for a event in marathon
type EventAPIRequest ¶
type EventAPIRequest struct {
EventType string `json:"eventType"`
ClientIp string `json:"clientIp"`
Timestamp string `json:"timestamp"`
Uri string `json:"uri"`
AppDefinition *Application `json:"appDefinition"`
}
type EventAddHealthCheck ¶
type EventAddHealthCheck struct {
AppId string `json:"appId"`
EventType string `json:"eventType"`
HealthCheck struct {
GracePeriodSeconds float64 `json:"gracePeriodSeconds"`
IntervalSeconds float64 `json:"intervalSeconds"`
MaxConsecutiveFailures float64 `json:"maxConsecutiveFailures"`
Path string `json:"path"`
PortIndex float64 `json:"portIndex"`
Protocol string `json:"protocol"`
TimeoutSeconds float64 `json:"timeoutSeconds"`
} `json:"healthCheck"`
Timestamp string `json:"timestamp"`
}
type EventAppTerminated ¶
type EventDeploymentFailed ¶
type EventDeploymentInfo ¶
type EventDeploymentInfo struct {
EventType string `json:"eventType"`
CurrentStep *DeploymentStep `json:"currentStep"`
Timestamp string `json:"timestamp"`
Plan *DeploymentPlan `json:"plan"`
}
type EventDeploymentStepFailure ¶
type EventDeploymentStepFailure struct {
EventType string `json:"eventType"`
CurrentStep *DeploymentStep `json:"currentStep"`
Timestamp string `json:"timestamp"`
Plan *DeploymentPlan `json:"plan"`
}
type EventDeploymentStepSuccess ¶
type EventDeploymentStepSuccess struct {
EventType string `json:"eventType"`
CurrentStep *DeploymentStep `json:"currentStep"`
Timestamp string `json:"timestamp"`
Plan *DeploymentPlan `json:"plan"`
}
type EventDeploymentSuccess ¶
type EventFailedHealthCheck ¶
type EventFailedHealthCheck struct {
AppId string `json:"appId"`
EventType string `json:"eventType"`
HealthCheck struct {
GracePeriodSeconds float64 `json:"gracePeriodSeconds"`
IntervalSeconds float64 `json:"intervalSeconds"`
MaxConsecutiveFailures float64 `json:"maxConsecutiveFailures"`
Path string `json:"path"`
PortIndex float64 `json:"portIndex"`
Protocol string `json:"protocol"`
TimeoutSeconds float64 `json:"timeoutSeconds"`
} `json:"healthCheck"`
Timestamp string `json:"timestamp"`
}
type EventFrameworkMessage ¶
type EventGroupChangeFailed ¶
type EventGroupChangeSuccess ¶
type EventHealthCheckChanged ¶
type EventRemoveHealthCheck ¶
type EventRemoveHealthCheck struct {
AppId string `json:"appId"`
EventType string `json:"eventType"`
HealthCheck struct {
GracePeriodSeconds float64 `json:"gracePeriodSeconds"`
IntervalSeconds float64 `json:"intervalSeconds"`
MaxConsecutiveFailures float64 `json:"maxConsecutiveFailures"`
Path string `json:"path"`
PortIndex float64 `json:"portIndex"`
Protocol string `json:"protocol"`
TimeoutSeconds float64 `json:"timeoutSeconds"`
} `json:"healthCheck"`
Timestamp string `json:"timestamp"`
}
type EventStatusUpdate ¶
type EventStatusUpdate struct {
EventType string `json:"eventType"`
Timestamp string `json:"timestamp,omitempty"`
SlaveID string `json:"slaveId,omitempty"`
TaskID string `json:"taskId"`
TaskStatus string `json:"taskStatus"`
AppID string `json:"appId"`
Host string `json:"host"`
Ports []int `json:"ports,omitempty"`
Version string `json:"version,omitempty"`
}
type EventStreamAttached ¶
type EventStreamAttached struct {
RemoteAddress string `json:"remoteAddress"`
EventType string `json:"eventType"`
Timestamp string `json:"timestamp"`
}
EventStreamAttached describes 'event_stream_attached' Marathon event
type EventStreamDetached ¶
type EventStreamDetached struct {
RemoteAddress string `json:"remoteAddress"`
EventType string `json:"eventType"`
Timestamp string `json:"timestamp"`
}
EventStreamDetached describes 'event_stream_detached' Marathon event
type EventSubscription ¶
type EventSubscription struct {
CallbackUrl string `json:"callbackUrl"`
ClientIp string `json:"clientIp"`
EventType string `json:"eventType"`
Timestamp string `json:"timestamp"`
}
EventSubscription describes 'subscribe_event' Marathon event
type EventType ¶
type EventType struct {
EventType string `json:"eventType"`
}
EventType is a wrapper for a marathon event
type EventUnsubscription ¶
type EventUnsubscription struct {
CallbackUrl string `json:"callbackUrl"`
ClientIp string `json:"clientIp"`
EventType string `json:"eventType"`
Timestamp string `json:"timestamp"`
}
EventUnsubscription describes 'unsubscribe_event' Marathon event
type EventsChannel ¶
type EventsChannel chan *Event
EventsChannel is a channel to receive events upon
type EventsTransport ¶
type EventsTransport int
EventsTransport describes which transport should be used to deliver Marathon events
const ( // EventsTransportCallback activates callback events transport EventsTransportCallback EventsTransport = 1 << iota // EventsTransportSSE activates stream events transport EventsTransportSSE )
type Group ¶
type Group struct {
ID string `json:"id"`
Apps []*Application `json:"apps"`
Dependencies []string `json:"dependencies"`
Groups []*Group `json:"groups"`
}
Group is a marathon application group
func NewApplicationGroup ¶
NewApplicationGroup create a new application group
name: the name of the group
func (*Group) App ¶
func (r *Group) App(application *Application) *Group
App add a application to the group in question
application: a pointer to the Application
type Groups ¶
type Groups struct {
ID string `json:"id"`
Apps []*Application `json:"apps"`
Dependencies []string `json:"dependencies"`
Groups []*Group `json:"groups"`
}
Groups is a collection of marathon application groups
type HealthCheck ¶
type HealthCheck struct {
Command *Command `json:"command,omitempty"`
Protocol string `json:"protocol,omitempty"`
Path string `json:"path,omitempty"`
GracePeriodSeconds int `json:"gracePeriodSeconds,omitempty"`
IntervalSeconds int `json:"intervalSeconds,omitempty"`
PortIndex int `json:"portIndex,omitempty"`
MaxConsecutiveFailures int `json:"maxConsecutiveFailures"`
TimeoutSeconds int `json:"timeoutSeconds,omitempty"`
}
HealthCheck is the definition for an application health check
func NewDefaultHealthCheck ¶
func NewDefaultHealthCheck() *HealthCheck
NewDefaultHealthCheck creates a default application health check
type HealthCheckResult ¶
type HealthCheckResult struct {
Alive bool `json:"alive"`
ConsecutiveFailures int `json:"consecutiveFailures"`
FirstSuccess string `json:"firstSuccess"`
LastFailure string `json:"lastFailure"`
LastSuccess string `json:"lastSuccess"`
TaskID string `json:"taskId"`
}
HealthCheckResult is the health check result
type Info ¶
type Info struct {
EventSubscriber struct {
HTTPEndpoints []string `json:"http_endpoints"`
Type string `json:"type"`
} `json:"event_subscriber"`
FrameworkID string `json:"frameworkId"`
HTTPConfig struct {
AssetsPath interface{} `json:"assets_path"`
HTTPPort float64 `json:"http_port"`
HTTPSPort float64 `json:"https_port"`
} `json:"http_config"`
Leader string `json:"leader"`
MarathonConfig struct {
Checkpoint bool `json:"checkpoint"`
Executor string `json:"executor"`
FailoverTimeout float64 `json:"failover_timeout"`
Ha bool `json:"ha"`
Hostname string `json:"hostname"`
LocalPortMax float64 `json:"local_port_max"`
LocalPortMin float64 `json:"local_port_min"`
Master string `json:"master"`
MesosRole string `json:"mesos_role"`
MesosUser string `json:"mesos_user"`
ReconciliationInitialDelay float64 `json:"reconciliation_initial_delay"`
ReconciliationInterval float64 `json:"reconciliation_interval"`
TaskLaunchTimeout float64 `json:"task_launch_timeout"`
} `json:"marathon_config"`
Name string `json:"name"`
Version string `json:"version"`
ZookeeperConfig struct {
Zk string `json:"zk"`
ZkFutureTimeout struct {
Duration float64 `json:"duration"`
} `json:"zk_future_timeout"`
ZkHosts string `json:"zk_hosts"`
ZkPath string `json:"zk_path"`
ZkState string `json:"zk_state"`
ZkTimeout float64 `json:"zk_timeout"`
} `json:"zookeeper_config"`
}
Info is the detailed stats returned from marathon info
type KillApplicationTasksOpts ¶
type KillApplicationTasksOpts struct {
Host string `url:"host,omitempty"`
Scale bool `url:"scale,omitempty"`
}
KillApplicationTasksOpts contains a payload for KillApplicationTasks method
host: kill only those tasks on a specific host (optional) scale: Scale the app down (i.e. decrement its instances setting by the number of tasks killed) after killing the specified tasks
type KillTaskOpts ¶
type KillTaskOpts struct {
Scale bool `url:"scale,omitempty"`
}
KillTaskOpts contains a payload for task killing methods
scale: Scale the app down
type LastTaskFailure ¶
type LastTaskFailure struct {
AppID string `json:"appId,omitempty"`
Host string `json:"host,omitempty"`
Message string `json:"message,omitempty"`
State string `json:"state,omitempty"`
TaskID string `json:"taskId,omitempty"`
Timestamp string `json:"timestamp,omitempty"`
Version string `json:"version,omitempty"`
}
LastTaskFailure provides details on the last error experienced by an application
type Marathon ¶
type Marathon interface {
// get a listing of the application ids
ListApplications(url.Values) ([]string, error)
// a list of application versions
ApplicationVersions(name string) (*ApplicationVersions, error)
// check a application version exists
HasApplicationVersion(name, version string) (bool, error)
// change an application to a different version
SetApplicationVersion(name string, version *ApplicationVersion) (*DeploymentID, error)
// check if an application is ok
ApplicationOK(name string) (bool, error)
// create an application in marathon
CreateApplication(application *Application) (*Application, error)
// delete an application
DeleteApplication(name string) (*DeploymentID, error)
// update an application in marathon
UpdateApplication(application *Application) (*DeploymentID, error)
// a list of deployments on a application
ApplicationDeployments(name string) ([]*DeploymentID, error)
// scale a application
ScaleApplicationInstances(name string, instances int, force bool) (*DeploymentID, error)
// restart an application
RestartApplication(name string, force bool) (*DeploymentID, error)
// get a list of applications from marathon
Applications(url.Values) (*Applications, error)
// get a specific application
Application(name string) (*Application, error)
// wait of application
WaitOnApplication(name string, timeout time.Duration) error
// get a list of tasks for a specific application
Tasks(application string) (*Tasks, error)
// get a list of all tasks
AllTasks(opts *AllTasksOpts) (*Tasks, error)
// get the endpoints for a service on a application
TaskEndpoints(name string, port int, healthCheck bool) ([]string, error)
// kill all the tasks for any application
KillApplicationTasks(applicationID string, opts *KillApplicationTasksOpts) (*Tasks, error)
// kill a single task
KillTask(taskID string, opts *KillTaskOpts) (*Task, error)
// kill the given array of tasks
KillTasks(taskIDs []string, opts *KillTaskOpts) error
// list all the groups in the system
Groups() (*Groups, error)
// retrieve a specific group from marathon
Group(name string) (*Group, error)
// create a group deployment
CreateGroup(group *Group) error
// delete a group
DeleteGroup(name string) (*DeploymentID, error)
// update a groups
UpdateGroup(id string, group *Group) (*DeploymentID, error)
// check if a group exists
HasGroup(name string) (bool, error)
// wait for an group to be deployed
WaitOnGroup(name string, timeout time.Duration) error
// get a list of the deployments
Deployments() ([]*Deployment, error)
// delete a deployment
DeleteDeployment(id string, force bool) (*DeploymentID, error)
// check to see if a deployment exists
HasDeployment(id string) (bool, error)
// wait of a deployment to finish
WaitOnDeployment(id string, timeout time.Duration) error
// a list of current subscriptions
Subscriptions() (*Subscriptions, error)
// add a events listener
AddEventsListener(channel EventsChannel, filter int) error
// remove a events listener
RemoveEventsListener(channel EventsChannel)
// remove our self from subscriptions
Unsubscribe(string) error
// get the marathon url
GetMarathonURL() string
// ping the marathon
Ping() (bool, error)
// grab the marathon server info
Info() (*Info, error)
// retrieve the leader info
Leader() (string, error)
// cause the current leader to abdicate
AbdicateLeader() (string, error)
}
Marathon is the interface to the marathon API
type Parameters ¶
Parameters is the parameters to pass to the docker client when creating the container
type PortMapping ¶
type PortMapping struct {
ContainerPort int `json:"containerPort,omitempty"`
HostPort int `json:"hostPort"`
ServicePort int `json:"servicePort,omitempty"`
Protocol string `json:"protocol"`
}
PortMapping is the portmapping structure between container and mesos
type Subscriptions ¶
type Subscriptions struct {
CallbackURLs []string `json:"callbackUrls"`
}
Subscriptions is a collection to urls that marathon is implementing a callback on
type Task ¶
type Task struct {
ID string `json:"id"`
AppID string `json:"appId"`
Host string `json:"host"`
HealthCheckResults []*HealthCheckResult `json:"healthCheckResults"`
Ports []int `json:"ports"`
ServicePorts []int `json:"servicePorts"`
StagedAt string `json:"stagedAt"`
StartedAt string `json:"startedAt"`
Version string `json:"version"`
}
Task is the definition for a marathon task
func (*Task) HasHealthCheckResults ¶
HasHealthCheckResults checks if the task has any health checks
type Tasks ¶
type Tasks struct {
Tasks []Task `json:"tasks"`
}
Tasks is a collection of marathon tasks
type UpgradeStrategy ¶
type UpgradeStrategy struct {
MinimumHealthCapacity float64 `json:"minimumHealthCapacity"`
MaximumOverCapacity float64 `json:"maximumOverCapacity"`
}
UpgradeStrategy is upgrade strategy applied to a application
type VersionInfo ¶
type VersionInfo struct {
LastScalingAt string `json:"lastScalingAt,omitempty"`
LastConfigChangeAt string `json:"lastConfigChangeAt,omitempty"`
}
VersionInfo is the application versioning details from marathon
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
applications
command
|
|
|
events_callback_transport
command
|
|
|
events_sse_transport
command
|
|
|
glog
command
|
|
|
groups
command
|
|
|
multiple_endpoints
command
|
|
|
tasks
command
|
