Tizen_4.0 base
[platform/upstream/docker-engine.git] / vendor / github.com / docker / libnetwork / cluster / provider.go
1 package cluster
2
3 import (
4         "github.com/docker/docker/api/types/network"
5         "golang.org/x/net/context"
6 )
7
8 const (
9         // EventSocketChange control socket changed
10         EventSocketChange = iota
11         // EventNodeReady cluster node in ready state
12         EventNodeReady
13         // EventNodeLeave node is leaving the cluster
14         EventNodeLeave
15         // EventNetworkKeysAvailable network keys correctly configured in the networking layer
16         EventNetworkKeysAvailable
17 )
18
19 // ConfigEventType type of the event produced by the cluster
20 type ConfigEventType uint8
21
22 // Provider provides clustering config details
23 type Provider interface {
24         IsManager() bool
25         IsAgent() bool
26         GetLocalAddress() string
27         GetListenAddress() string
28         GetAdvertiseAddress() string
29         GetDataPathAddress() string
30         GetRemoteAddressList() []string
31         ListenClusterEvents() <-chan ConfigEventType
32         AttachNetwork(string, string, []string) (*network.NetworkingConfig, error)
33         DetachNetwork(string, string) error
34         UpdateAttachment(string, string, *network.NetworkingConfig) error
35         WaitForDetachment(context.Context, string, string, string, string) error
36 }