client

package module
v0.0.0-...-851e72b Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2014 License: MIT Imports: 12 Imported by: 6

README

fleet-client-go

Currently that client requires a fleetctl binary available to execute. Thus there is no ssh connection used, the possible commands are submit, start, stop, destroy, list-units, list-machines. The client supports a dump version of Status, that uses list-units and just parses whether a service is running or not.

A new way to use fleets http api has been implemented.

install

import fleetClientPkg "github.com/catalyst-zero/fleet-client-go"

usage

// Create new fleet client based on a given binary.
fleetClient := fleetClientPkg.NewClientCLI()

// Create new fleet client based on the http api.
fleetClient := fleetClientPkg.NewClientAPI()

// Interface methods.
type FleetClient interface {
  // A Unit is a submitted job known by fleet, but not started yet. Submitting
  // a job creates a unit. Unit() returns such an object. Further a Unit has
  // different properties than a ScheduledUnit.
	Unit(name string) (*job.Unit, error)

  // A ScheduledUnit is a submitted job known by fleet in a specific state.
  // ScheduledUnit() does not fetch a ScheduledUnit if a Unit is not started
  // yet, but only submitted. Further a ScheduledUnit has different properties
  // than a Unit.
	ScheduledUnit(name string) (*job.ScheduledUnit, error)

	Submit(name, filePath string) error
	Start(name string) error
	Stop(name string) error
	Load(name string) error
	Destroy(name string) error
	Status(name string) (*Status, error) // Deprecated, use StatusUnit()
	StatusUnit(name string) (UnitStatus, error)
}

Documentation

Index

Constants

View Source
const (
	STATE_LAUNCHED = "launched"
	STATE_LOADED   = "loaded"
	STATE_INACTIVE = "inactive"

	LOAD_UNKNOWN = "-"
	LOAD_LOADED  = "loaded" // See https://github.com/coreos/fleet/blob/master/job/job.go

	ACTIVE_UNKNOWN    = "-"
	ACTIVE_ACTIVE     = "active"
	ACTIVE_ACTIVATING = "activating"
	ACTIVE_FAILED     = "failed"

	SUB_UNKNOWN   = "-"
	SUB_DEAD      = "dead"
	SUB_LAUNCHED  = "launched"
	SUB_START     = "start"
	SUB_START_PRE = "start-pre"
	SUB_RUNNING   = "running"
	SUB_EXITED    = "exited"
	SUB_FAILED    = "failed"
)
View Source
const (
	FLEETCTL        = "fleetctl"
	ENDPOINT_OPTION = "--endpoint"
	ENDPOINT_VALUE  = "http://172.17.42.1:4001"
)
View Source
const (
	ERROR_TYPE_NOT_FOUND = 10000 + iota
)
View Source
const (
	FLEET_SOCK = "/var/run/fleet.sock"
)

Variables

This section is empty.

Functions

func GetMachineIP

func GetMachineIP(unitMachine string) string

GetMachineIP parses the unitMachine in format "uuid/ip" and returns only the IP part. Can be used with the {UnitStatus.Machine} field. Returns an empty string, if no ip was found.

func IsNotFoundError

func IsNotFoundError(err error) bool

Types

type ClientAPI

type ClientAPI struct {
	// contains filtered or unexported fields
}

func (*ClientAPI) Destroy

func (this *ClientAPI) Destroy(name string) error

func (*ClientAPI) Load

func (this *ClientAPI) Load(name string) error

func (*ClientAPI) Start

func (this *ClientAPI) Start(name string) error

func (*ClientAPI) Status

func (this *ClientAPI) Status(name string) (*Status, error)

func (*ClientAPI) StatusUnit

func (this *ClientAPI) StatusUnit(name string) (UnitStatus, error)

func (*ClientAPI) Stop

func (this *ClientAPI) Stop(name string) error

func (*ClientAPI) Submit

func (this *ClientAPI) Submit(name, filePath string) error

func (*ClientAPI) Unit

func (this *ClientAPI) Unit(name string) (*schema.Unit, error)

type ClientCLI

type ClientCLI struct {
	// contains filtered or unexported fields
}

func (*ClientCLI) Destroy

func (this *ClientCLI) Destroy(name string) error

func (*ClientCLI) Load

func (this *ClientCLI) Load(name string) error

func (*ClientCLI) Start

func (this *ClientCLI) Start(name string) error

func (*ClientCLI) Status

func (this *ClientCLI) Status(name string) (*Status, error)

func (*ClientCLI) StatusAll

func (this *ClientCLI) StatusAll() ([]UnitStatus, error)

StatusAll executes "fleetctl status" and parses the output table. Thus, certain fields can be mangled or shortened, e.g. the machine column.

func (*ClientCLI) StatusUnit

func (this *ClientCLI) StatusUnit(name string) (UnitStatus, error)

StatusUnit returns the UnitStatus for the given unitfile. If the unit is not found or could not be retrieved, an error will be returned.

Internally it executes `fleetctl status` and looks for the matching unit file. Its {UnitStatus} will be returned.

func (*ClientCLI) Stop

func (this *ClientCLI) Stop(name string) error

func (*ClientCLI) Submit

func (this *ClientCLI) Submit(name, filePath string) error

func (*ClientCLI) Unit

func (this *ClientCLI) Unit(name string) (*schema.Unit, error)

type FleetClient

type FleetClient interface {
	// A Unit is a submitted job known by fleet, but not started yet. Submitting
	// a job creates a unit. Unit() returns such an object. Further a Unit has
	// different properties than a ScheduledUnit.
	Unit(name string) (*schema.Unit, error)

	Submit(name, filePath string) error
	Start(name string) error
	Stop(name string) error
	Load(name string) error
	Destroy(name string) error
	Status(name string) (*Status, error) // Deprecated, use StatusUnit()
	StatusUnit(name string) (UnitStatus, error)
}

func NewClient

func NewClient() FleetClient

func NewClientAPI

func NewClientAPI() FleetClient

func NewClientAPIWithSocket

func NewClientAPIWithSocket(socket string) FleetClient

func NewClientCLI

func NewClientCLI() FleetClient

func NewClientCLIWithPeer

func NewClientCLIWithPeer(etcdPeer string) FleetClient

type FleetClientError

type FleetClientError struct {
	StatusCode int
	StatusText string
}

func NewFleetClientError

func NewFleetClientError(code int, text string) FleetClientError

func (FleetClientError) Error

func (this FleetClientError) Error() string

type Status

type Status struct {
	Running     bool
	ContainerIP string
}

type UnitStatus

type UnitStatus struct {
	// Unit Name with file extension
	Unit string

	// Fleet state, "launched" or "inactive"
	State string

	// "-", "loaded"
	Load string

	// "-", "active", "failed"
	Active string

	// The state of the unit, e.g. "-", "running" or "failed". See the SUB_* constants.
	Sub string

	Description string

	// The machine that is used to execute the unit.
	// Is "-", when no machine is assigned.
	// Otherwise is in the format of "uuid/ip", where uuid is shortened version of the host uuid
	// and IP is the IP assigned to that machine.
	Machine string
}

func (UnitStatus) MachineIP

func (status UnitStatus) MachineIP() string

MachineIP returns the IP of the used machine, if available, an empty string otherwise. Alias for `return GetMachineIp(status.Machine)`.

Directories

Path Synopsis
examples
cli

Jump to

Keyboard shortcuts

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