forked from aputs/kube-register
-
Notifications
You must be signed in to change notification settings - Fork 0
/
interface.go
43 lines (36 loc) · 1.23 KB
/
interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package registry
import (
"time"
"github.com/coreos/fleet/Godeps/_workspace/src/github.com/coreos/go-semver/semver"
"github.com/coreos/fleet/job"
"github.com/coreos/fleet/machine"
"github.com/coreos/fleet/unit"
)
type Registry interface {
ClearUnitHeartbeat(name string)
CreateUnit(*job.Unit) error
DestroyUnit(string) error
UnitHeartbeat(name, machID string, ttl time.Duration) error
LatestVersion() (*semver.Version, error)
LeaseRole(role, machID string, period time.Duration) (Lease, error)
Machines() ([]machine.MachineState, error)
RemoveMachineState(machID string) error
RemoveUnitState(jobName string) error
SaveUnitState(jobName string, unitState *unit.UnitState, ttl time.Duration)
ScheduleUnit(name, machID string) error
SetUnitTargetState(name string, state job.JobState) error
SetMachineState(ms machine.MachineState, ttl time.Duration) (uint64, error)
UnscheduleUnit(name, machID string) error
UnitRegistry
}
type UnitRegistry interface {
Schedule() ([]job.ScheduledUnit, error)
ScheduledUnit(name string) (*job.ScheduledUnit, error)
Unit(name string) (*job.Unit, error)
Units() ([]job.Unit, error)
UnitStates() ([]*unit.UnitState, error)
}
type Lease interface {
Renew(time.Duration) error
Release() error
}