forked from deis/deis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
interface.go
66 lines (56 loc) · 2.21 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright 2014 CoreOS, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package registry
import (
"time"
"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
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 ClusterRegistry interface {
LatestDaemonVersion() (*semver.Version, error)
// EngineVersion returns the current version of the cluster. If the
// cluster does not yet have a version, zero will be returned. If
// any error occurs, an error object will be returned. In this case,
// the returned version number should be ignored.
EngineVersion() (int, error)
// UpdateEngineVersion attempts to compare-and-swap the cluster version
// from one value to another. Any failures in this process will be
// indicated by the returned error object. A nil value will be returned
// on success.
UpdateEngineVersion(from, to int) error
}