forked from vladaionescu/leveros
/
client.go
41 lines (38 loc) · 1004 Bytes
/
client.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
package hostman
import (
"github.com/leveros/leveros/scale"
"golang.org/x/net/context"
)
// InitializeInstance initializes the infrastructure necessary for instance to
// start serving.
func InitializeInstance(
grpcPool *scale.GRPCPool, info *InstanceInfo, node string) error {
res, err := scale.DereferenceResource(
ManagerService, "swarm://"+node)
if err != nil {
return err
}
conn, err := grpcPool.Dial(res.GetTarget())
if err != nil {
return err
}
client := NewManagerClient(conn)
_, err = client.InitializeInstance(context.Background(), info)
return err
}
// StopInstance stops a given Lever instance.
func StopInstance(
grpcPool *scale.GRPCPool, key *InstanceKey, node string) error {
res, err := scale.DereferenceResource(
ManagerService, "swarm://"+node)
if err != nil {
return err
}
conn, err := grpcPool.Dial(res.GetTarget())
if err != nil {
return err
}
client := NewManagerClient(conn)
_, err = client.StopInstance(context.Background(), key)
return err
}