diff --git a/libnetwork/Makefile b/libnetwork/Makefile index 59c181ecdc..9deb2653f7 100644 --- a/libnetwork/Makefile +++ b/libnetwork/Makefile @@ -22,7 +22,7 @@ build: ${build_image}.created ${docker} make build-local build-local: - $(shell which godep) go build -tags experimental ./... + $(shell which godep) go build -tags experimental,libnetwork_discovery ./... check: ${build_image}.created ${docker} make check-local diff --git a/libnetwork/hostdiscovery/hostdiscovery.go b/libnetwork/hostdiscovery/hostdiscovery.go index 550cb95fda..57a187e9e5 100644 --- a/libnetwork/hostdiscovery/hostdiscovery.go +++ b/libnetwork/hostdiscovery/hostdiscovery.go @@ -1,3 +1,5 @@ +// +build libnetwork_discovery + package hostdiscovery import ( @@ -24,22 +26,6 @@ import ( const defaultHeartbeat = 10 -// JoinCallback provides a callback event for new node joining the cluster -type JoinCallback func(entries []net.IP) - -// LeaveCallback provides a callback event for node leaving the cluster -type LeaveCallback func(entries []net.IP) - -// HostDiscovery primary interface -type HostDiscovery interface { - // StartDiscovery initiates the discovery process and provides appropriate callbacks - StartDiscovery(*config.ClusterCfg, JoinCallback, LeaveCallback) error - // StopDiscovery stops the discovery perocess - StopDiscovery() error - // Fetch returns a list of host IPs that are currently discovered - Fetch() ([]net.IP, error) -} - type hostDiscovery struct { discovery discovery.Discovery nodes mapset.Set diff --git a/libnetwork/hostdiscovery/hostdiscovery_api.go b/libnetwork/hostdiscovery/hostdiscovery_api.go new file mode 100644 index 0000000000..09394e09bc --- /dev/null +++ b/libnetwork/hostdiscovery/hostdiscovery_api.go @@ -0,0 +1,23 @@ +package hostdiscovery + +import ( + "net" + + "github.com/docker/libnetwork/config" +) + +// JoinCallback provides a callback event for new node joining the cluster +type JoinCallback func(entries []net.IP) + +// LeaveCallback provides a callback event for node leaving the cluster +type LeaveCallback func(entries []net.IP) + +// HostDiscovery primary interface +type HostDiscovery interface { + // StartDiscovery initiates the discovery process and provides appropriate callbacks + StartDiscovery(*config.ClusterCfg, JoinCallback, LeaveCallback) error + // StopDiscovery stops the discovery perocess + StopDiscovery() error + // Fetch returns a list of host IPs that are currently discovered + Fetch() ([]net.IP, error) +} diff --git a/libnetwork/hostdiscovery/hostdiscovery_disabled.go b/libnetwork/hostdiscovery/hostdiscovery_disabled.go new file mode 100644 index 0000000000..2dc67ccb0f --- /dev/null +++ b/libnetwork/hostdiscovery/hostdiscovery_disabled.go @@ -0,0 +1,28 @@ +// +build !libnetwork_discovery + +package hostdiscovery + +import ( + "net" + + "github.com/docker/libnetwork/config" +) + +type hostDiscovery struct{} + +// NewHostDiscovery function creates a host discovery object +func NewHostDiscovery() HostDiscovery { + return &hostDiscovery{} +} + +func (h *hostDiscovery) StartDiscovery(cfg *config.ClusterCfg, joinCallback JoinCallback, leaveCallback LeaveCallback) error { + return nil +} + +func (h *hostDiscovery) StopDiscovery() error { + return nil +} + +func (h *hostDiscovery) Fetch() ([]net.IP, error) { + return []net.IP{}, nil +} diff --git a/libnetwork/hostdiscovery/hostdiscovery_test.go b/libnetwork/hostdiscovery/hostdiscovery_test.go index 90eca9d469..43b4c82fbd 100644 --- a/libnetwork/hostdiscovery/hostdiscovery_test.go +++ b/libnetwork/hostdiscovery/hostdiscovery_test.go @@ -1,3 +1,5 @@ +// +build libnetwork_discovery + package hostdiscovery import (