From a4ca389f2e822dc39cf11b7c3ca5dd4a8b3ff2cc Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Thu, 26 Nov 2015 17:36:30 +0000 Subject: [PATCH] Make the plugin scope (local or global) an option --- plugin/net/driver.go | 11 ++++++----- prog/plugin/main.go | 4 +++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/plugin/net/driver.go b/plugin/net/driver.go index 5eb5c984..34c5c306 100644 --- a/plugin/net/driver.go +++ b/plugin/net/driver.go @@ -23,14 +23,16 @@ const ( type driver struct { version string nameserver string + scope string sync.RWMutex endpoints map[string]struct{} } -func New(client *docker.Client, version string, nameserver string) (skel.Driver, error) { +func New(client *docker.Client, version string, nameserver string, scope string) (skel.Driver, error) { driver := &driver{ nameserver: nameserver, version: version, + scope: scope, endpoints: make(map[string]struct{}), } @@ -48,11 +50,10 @@ func errorf(format string, a ...interface{}) error { // === protocol handlers -var caps = &api.GetCapabilityResponse{ - Scope: "global", -} - func (driver *driver) GetCapabilities() (*api.GetCapabilityResponse, error) { + var caps = &api.GetCapabilityResponse{ + Scope: driver.scope, + } Log.Debugf("Get capabilities: responded with %+v", caps) return caps, nil } diff --git a/prog/plugin/main.go b/prog/plugin/main.go index 4ae75164..71d8a3ac 100644 --- a/prog/plugin/main.go +++ b/prog/plugin/main.go @@ -23,12 +23,14 @@ func main() { address string nameserver string logLevel string + scope string ) flag.BoolVar(&justVersion, "version", false, "print version and exit") flag.StringVar(&logLevel, "log-level", "info", "logging level (debug, info, warning, error)") flag.StringVar(&address, "socket", "/run/docker/plugins/weave.sock", "socket on which to listen") flag.StringVar(&nameserver, "nameserver", "", "nameserver to provide to containers") + flag.StringVar(&scope, "scope", "global", "plugin scope (local or global)") flag.Parse() @@ -46,7 +48,7 @@ func main() { Log.Fatalf("unable to connect to docker: %s", err) } - d, err := netplugin.New(dockerClient, version, nameserver) + d, err := netplugin.New(dockerClient, version, nameserver, scope) if err != nil { Log.Fatalf("unable to create driver: %s", err) }