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