/
docker_swarmDaemon.go
75 lines (61 loc) · 1.98 KB
/
docker_swarmDaemon.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
67
68
69
70
71
72
73
74
75
package mocks
import (
"strings"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm"
)
const (
//TestNodeID defines the ID of the swarm node for testing
TestNodeID = "1"
)
// SwarmDockerDaemon mocks a DockerDaemon operating in Swarm mode
type SwarmDockerDaemon struct {
DockerDaemonMock
}
// Info provides a mock function with given fields:
func (_m *SwarmDockerDaemon) Info() (types.Info, error) {
clusterInfo := swarm.ClusterInfo{ID: "MyClusterID"}
swarmInfo := swarm.Info{
LocalNodeState: swarm.LocalNodeStateActive,
NodeID: "ThisNodeID",
Cluster: &clusterInfo,
ControlAvailable: true}
return types.Info{
Name: "test",
NCPU: 2,
MemTotal: 1024,
Swarm: swarmInfo}, nil
}
// Node returns a node with the given id
func (_m *SwarmDockerDaemon) Node(id string) (*swarm.Node, error) {
return &swarm.Node{ID: id}, nil
}
// Nodes returns a list of nodes with 1 element
func (_m *SwarmDockerDaemon) Nodes() ([]swarm.Node, error) {
return []swarm.Node{{ID: TestNodeID}}, nil
}
// NodeTasks mock
func (_m *SwarmDockerDaemon) NodeTasks(nodeID string) ([]swarm.Task, error) {
return []swarm.Task{{NodeID: nodeID}}, nil
}
// ResolveNode mock
func (_m *SwarmDockerDaemon) ResolveNode(id string) (string, error) {
return strings.Join([]string{"Node", id}, ""), nil
}
// ResolveService mock
func (_m *SwarmDockerDaemon) ResolveService(id string) (string, error) {
return strings.Join([]string{"Service", id}, ""), nil
}
// Services returns a list of services with 1 element
func (_m *SwarmDockerDaemon) Services() ([]swarm.Service, error) {
return []swarm.Service{
{ID: "ServiceID"}}, nil
}
// ServiceTasks returns one task per service, the task belongs to node with id "1"
func (_m *SwarmDockerDaemon) ServiceTasks(services ...string) ([]swarm.Task, error) {
tasks := make([]swarm.Task, len(services))
for _, service := range services {
tasks = append(tasks, swarm.Task{ServiceID: service, NodeID: TestNodeID})
}
return tasks, nil
}