forked from projecteru2/agent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
node.go
35 lines (32 loc) · 876 Bytes
/
node.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
package corestore
import (
pb "github.com/projecteru2/core/rpc/gen"
"github.com/projecteru2/core/types"
"golang.org/x/net/context"
)
//GetNode return a node by core
func (c *Client) GetNode(nodename string) (*types.Node, error) {
client := pb.NewCoreRPCClient(c.conn)
resp, err := client.GetNodeByName(context.Background(), &pb.GetNodeOptions{Nodename: nodename})
if err != nil {
return nil, err
}
node := &types.Node{
Name: resp.Name,
Podname: resp.Podname,
Endpoint: resp.Endpoint,
Available: resp.Available,
}
return node, nil
}
//UpdateNode update node status
func (c *Client) UpdateNode(node *types.Node) error {
client := pb.NewCoreRPCClient(c.conn)
opts := &pb.NodeAvailable{
Podname: node.Podname,
Nodename: node.Name,
Available: node.Available,
}
_, err := client.SetNodeAvailable(context.Background(), opts)
return err
}