agent

package
v0.3.0-rc Latest Latest
Warning

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

Go to latest
Published: May 6, 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(reg *registry.Registry, eStream *registry.EventStream, 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

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(ttl time.Duration, stop chan bool)

Periodically report to the Registry at an interval equal to half of the provided ttl. Stop reporting when the provided channel is closed. Failed attempts to report state to the Registry are retried twice before moving on to the next reporting interval.

func (*Agent) HeartbeatJobs

func (a *Agent) HeartbeatJobs(ttl time.Duration, stop chan bool)

func (*Agent) LoadJob

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

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

Persist the state of the given Job into the Registry

func (*Agent) Run

func (a *Agent) Run()

Trigger all async processes the Agent intends to run

func (*Agent) StartJob

func (a *Agent) StartJob(jobName string)

func (*Agent) Stop

func (a *Agent) Stop()

Stop all async processes the Agent is running

func (*Agent) StopJob

func (a *Agent) StopJob(jobName string)

func (*Agent) UnloadJob

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

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

func (as *AgentState) PurgeJob(jobName string)

PurgeJob removes all state tracked on behalf of a given job

func (*AgentState) PurgeOffer

func (as *AgentState) PurgeOffer(name string)

func (*AgentState) ScheduledHere

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

func (*AgentState) ScheduledJobs

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

func (*AgentState) SetTargetState

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

func (*AgentState) TrackBid

func (as *AgentState) TrackBid(name string)

func (*AgentState) TrackJob

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

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

func (*EventHandler) HandleCommandStopJob

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

func (*EventHandler) HandleEventJobDestroyed

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

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

func (*EventHandler) HandleEventUnitStateUpdated

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