agent

package
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: May 13, 2014 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TTL to use with all state pushed to Registry
	DefaultTTL = "30s"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Agent

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

The Agent owns all of the coordination between the Registry, the local Machine, and the local SystemdManager.

func New

func New(mgr *systemd.SystemdManager, reg registry.Registry, mach *machine.Machine, ttl string, verifier *sign.SignatureVerifier) (*Agent, error)

func (*Agent) AbleToRun

func (a *Agent) AbleToRun(j *job.Job) bool

Determine if the Agent can run the provided Job

func (*Agent) Bid

func (a *Agent) Bid(jobName string)

Submit a bid for the given Job

func (*Agent) BidForPossibleJobs

func (a *Agent) BidForPossibleJobs()

Submit all possible bids for unresolved offers

func (*Agent) BidForPossiblePeers

func (a *Agent) BidForPossiblePeers(jobName string)

Submit all possible bids for known peers of the provided job

func (*Agent) FetchJob

func (a *Agent) FetchJob(jobName string) *job.Job

Pull a Job and its payload from the Registry

func (*Agent) HasConflict added in v0.3.0

func (a *Agent) HasConflict(potentialJobName string, potentialConflicts []string) (bool, string)

HasConflict determines whether there are any known conflicts with the given argument

func (*Agent) Heartbeat

func (a *Agent) Heartbeat(stop chan bool)

Heartbeat updates the Registry periodically with this Agent's presence information as well as an acknowledgement of the jobs it is expected to be running.

func (*Agent) Initialize added in v0.2.0

func (a *Agent) Initialize() uint64

Initialize prepares the Agent for normal operation by doing three things: 1. Announce presence to the Registry, tracking the etcd index of the operation 2. Discover any jobs that are scheduled locally, loading/starting them if they can run locally 3. Cache all unresolved job offers and bid for any that can be run locally The returned value is the etcd index at which the agent's presence was announced.

func (*Agent) LoadJob added in v0.3.0

func (a *Agent) LoadJob(j *job.Job)

func (*Agent) Machine

func (a *Agent) Machine() *machine.Machine

Access Agent's machine field

func (*Agent) MarshalJSON added in v0.2.0

func (a *Agent) MarshalJSON() ([]byte, error)

func (*Agent) Purge

func (a *Agent) Purge()

Purge removes the Agent's state from the Registry

func (*Agent) ReportUnitState added in v0.3.0

func (a *Agent) ReportUnitState(jobName string, us *unit.UnitState)

ReportUnitState attaches the current state of the Agent's Machine to the given unit.UnitState object, then persists that state in the Registry

func (*Agent) StartJob

func (a *Agent) StartJob(jobName string)

func (*Agent) StopJob

func (a *Agent) StopJob(jobName string)

func (*Agent) UnloadJob added in v0.3.0

func (a *Agent) UnloadJob(jobName string)

func (*Agent) VerifyJob added in v0.2.0

func (a *Agent) VerifyJob(j *job.Job) bool

VerifyJob attempts to verify the integrity of the given Job by checking the signature against a SignatureSet stored in its repository.

type AgentState

type AgentState struct {

	// index of local payload conflicts to the job they belong to
	Conflicts map[string][]string
	// contains filtered or unexported fields
}

func NewState

func NewState() *AgentState

func (*AgentState) GetJobsByPeer

func (as *AgentState) GetJobsByPeer(peerName string) []string

Retrieve all Jobs that share a given Peer

func (*AgentState) GetOffersWithoutBids added in v0.1.1

func (as *AgentState) GetOffersWithoutBids() []job.JobOffer

GetOffersWithoutBids returns all tracked JobOffers that have no corresponding JobBid tracked in the same AgentState object.

func (*AgentState) HasBid

func (as *AgentState) HasBid(name string) bool

func (*AgentState) LaunchedJobs added in v0.3.0

func (as *AgentState) LaunchedJobs() []string

func (*AgentState) Lock

func (as *AgentState) Lock()

func (*AgentState) MarshalJSON added in v0.2.0

func (as *AgentState) MarshalJSON() ([]byte, error)

func (*AgentState) PurgeJob added in v0.3.0

func (as *AgentState) PurgeJob(jobName string)

PurgeJob removes all state tracked on behalf of a given job

func (*AgentState) PurgeOffer added in v0.3.0

func (as *AgentState) PurgeOffer(name string)

func (*AgentState) ScheduledHere added in v0.3.0

func (as *AgentState) ScheduledHere(jobName string) bool

func (*AgentState) ScheduledJobs added in v0.3.0

func (as *AgentState) ScheduledJobs() []string

func (*AgentState) SetTargetState added in v0.3.0

func (as *AgentState) SetTargetState(jobName string, state job.JobState)

func (*AgentState) TrackBid

func (as *AgentState) TrackBid(name string)

func (*AgentState) TrackJob added in v0.3.0

func (as *AgentState) TrackJob(j *job.Job)

TrackJob extracts and stores information about the given job for later reference

func (*AgentState) TrackOffer

func (as *AgentState) TrackOffer(offer job.JobOffer)

func (*AgentState) Unlock

func (as *AgentState) Unlock()

type EventHandler

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

func NewEventHandler

func NewEventHandler(agent *Agent) *EventHandler

func (*EventHandler) HandleCommandStartJob added in v0.3.0

func (eh *EventHandler) HandleCommandStartJob(ev event.Event)

func (*EventHandler) HandleCommandStopJob added in v0.3.0

func (eh *EventHandler) HandleCommandStopJob(ev event.Event)

func (*EventHandler) HandleEventJobDestroyed added in v0.3.0

func (eh *EventHandler) HandleEventJobDestroyed(ev event.Event)

func (*EventHandler) HandleEventJobOffered

func (eh *EventHandler) HandleEventJobOffered(ev event.Event)

func (*EventHandler) HandleEventJobScheduled

func (eh *EventHandler) HandleEventJobScheduled(ev event.Event)

func (*EventHandler) HandleEventJobUnscheduled added in v0.3.0

func (eh *EventHandler) HandleEventJobUnscheduled(ev event.Event)

func (*EventHandler) HandleEventUnitStateUpdated added in v0.3.0

func (eh *EventHandler) HandleEventUnitStateUpdated(ev event.Event)

Jump to

Keyboard shortcuts

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