dotcloud/docker

View on GitHub
libnetwork/cluster/provider.go

Summary

Maintainability
A
0 mins
Test Coverage
package cluster

import (
    "context"

    "github.com/docker/docker/api/types/network"
)

const (
    // EventSocketChange control socket changed
    EventSocketChange = iota
    // EventNodeReady cluster node in ready state
    EventNodeReady
    // EventNodeLeave node is leaving the cluster
    EventNodeLeave
    // EventNetworkKeysAvailable network keys correctly configured in the networking layer
    EventNetworkKeysAvailable
)

// ConfigEventType type of the event produced by the cluster
type ConfigEventType uint8

// Provider provides clustering config details
type Provider interface {
    IsManager() bool
    IsAgent() bool
    GetLocalAddress() string
    GetListenAddress() string
    GetAdvertiseAddress() string
    GetDataPathAddress() string
    GetRemoteAddressList() []string
    ListenClusterEvents() <-chan ConfigEventType
    AttachNetwork(string, string, []string) (*network.NetworkingConfig, error)
    DetachNetwork(string, string) error
    UpdateAttachment(string, string, *network.NetworkingConfig) error
    WaitForDetachment(context.Context, string, string, string, string) error
}