From 9354fed274d49f6239658b9fcd7daa54f71ab71d Mon Sep 17 00:00:00 2001 From: David Gageot Date: Tue, 29 Dec 2015 10:14:53 +0100 Subject: [PATCH] Remove some duplication related to swarm Signed-off-by: David Gageot --- drivers/amazonec2/amazonec2.go | 4 +--- drivers/azure/azure.go | 4 +--- drivers/digitalocean/digitalocean.go | 4 +--- drivers/exoscale/exoscale.go | 4 +--- drivers/google/google.go | 4 +--- drivers/hyperv/hyperv.go | 5 ++--- drivers/openstack/openstack.go | 4 +--- drivers/rackspace/rackspace.go | 4 +--- drivers/softlayer/driver.go | 4 +--- drivers/virtualbox/virtualbox.go | 4 +--- drivers/vmwarefusion/fusion_darwin.go | 4 +--- drivers/vmwarevcloudair/vcloudair.go | 4 +--- drivers/vmwarevsphere/vsphere.go | 4 +--- libmachine/drivers/base.go | 7 +++++++ 14 files changed, 21 insertions(+), 39 deletions(-) diff --git a/drivers/amazonec2/amazonec2.go b/drivers/amazonec2/amazonec2.go index b0f268e6d7..4b38945ce2 100644 --- a/drivers/amazonec2/amazonec2.go +++ b/drivers/amazonec2/amazonec2.go @@ -237,14 +237,12 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.RootSize = int64(flags.Int("amazonec2-root-size")) d.VolumeType = flags.String("amazonec2-volume-type") d.IamInstanceProfile = flags.String("amazonec2-iam-instance-profile") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") d.SSHUser = flags.String("amazonec2-ssh-user") d.SSHPort = 22 d.PrivateIPOnly = flags.Bool("amazonec2-private-address-only") d.UsePrivateIP = flags.Bool("amazonec2-use-private-address") d.Monitoring = flags.Bool("amazonec2-monitoring") + d.SetSwarmConfigFromFlags(flags) if d.AccessKey == "" { return fmt.Errorf("amazonec2 driver requires the --amazonec2-access-key option") diff --git a/drivers/azure/azure.go b/drivers/azure/azure.go index f898425888..45656f0795 100644 --- a/drivers/azure/azure.go +++ b/drivers/azure/azure.go @@ -180,9 +180,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.DockerPort = flags.Int("azure-docker-port") d.DockerSwarmMasterPort = flags.Int("azure-docker-swarm-master-port") d.SSHPort = flags.Int("azure-ssh-port") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") + d.SetSwarmConfigFromFlags(flags) return nil } diff --git a/drivers/digitalocean/digitalocean.go b/drivers/digitalocean/digitalocean.go index eeb66b3123..32f2ffc4ec 100644 --- a/drivers/digitalocean/digitalocean.go +++ b/drivers/digitalocean/digitalocean.go @@ -131,11 +131,9 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.PrivateNetworking = flags.Bool("digitalocean-private-networking") d.Backups = flags.Bool("digitalocean-backups") d.UserDataFile = flags.String("digitalocean-userdata") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") d.SSHUser = flags.String("digitalocean-ssh-user") d.SSHPort = flags.Int("digitalocean-ssh-port") + d.SetSwarmConfigFromFlags(flags) if d.AccessToken == "" { return fmt.Errorf("digitalocean driver requires the --digitalocean-access-token option") diff --git a/drivers/exoscale/exoscale.go b/drivers/exoscale/exoscale.go index cdc069f2d6..da53c45da7 100644 --- a/drivers/exoscale/exoscale.go +++ b/drivers/exoscale/exoscale.go @@ -130,9 +130,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { } d.SecurityGroup = strings.Join(securityGroups, ",") d.AvailabilityZone = flags.String("exoscale-availability-zone") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") + d.SetSwarmConfigFromFlags(flags) if d.URL == "" { d.URL = "https://api.exoscale.ch/compute" diff --git a/drivers/google/google.go b/drivers/google/google.go index 8de00670f2..15346e267f 100644 --- a/drivers/google/google.go +++ b/drivers/google/google.go @@ -165,11 +165,9 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.UseInternalIP = flags.Bool("google-use-internal-ip") d.Scopes = flags.String("google-scopes") d.Tags = flags.String("google-tags") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") d.SSHUser = flags.String("google-username") d.SSHPort = 22 + d.SetSwarmConfigFromFlags(flags) return nil } diff --git a/drivers/hyperv/hyperv.go b/drivers/hyperv/hyperv.go index 861414281b..d91baa199d 100644 --- a/drivers/hyperv/hyperv.go +++ b/drivers/hyperv/hyperv.go @@ -83,10 +83,9 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.DiskSize = flags.Int("hyperv-disk-size") d.MemSize = flags.Int("hyperv-memory") d.CPU = flags.Int("hyperv-cpu-count") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") d.SSHUser = "docker" + d.SetSwarmConfigFromFlags(flags) + return nil } diff --git a/drivers/openstack/openstack.go b/drivers/openstack/openstack.go index d2dd0d58c9..87cbcd1555 100644 --- a/drivers/openstack/openstack.go +++ b/drivers/openstack/openstack.go @@ -270,9 +270,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.SSHPort = flags.Int("openstack-ssh-port") d.KeyPairName = flags.String("openstack-keypair-name") d.PrivateKeyFile = flags.String("openstack-private-key-file") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") + d.SetSwarmConfigFromFlags(flags) return d.checkConfig() } diff --git a/drivers/rackspace/rackspace.go b/drivers/rackspace/rackspace.go index f6e7a0f133..863b411995 100644 --- a/drivers/rackspace/rackspace.go +++ b/drivers/rackspace/rackspace.go @@ -119,9 +119,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.FlavorId = flags.String("rackspace-flavor-id") d.SSHUser = flags.String("rackspace-ssh-user") d.SSHPort = flags.Int("rackspace-ssh-port") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") + d.SetSwarmConfigFromFlags(flags) if d.Region == "" { return missingEnvOrOption("Region", "OS_REGION_NAME", "--rackspace-region") diff --git a/drivers/softlayer/driver.go b/drivers/softlayer/driver.go index 58a0eea819..38aaf677a5 100644 --- a/drivers/softlayer/driver.go +++ b/drivers/softlayer/driver.go @@ -217,9 +217,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { ApiKey: flags.String("softlayer-api-key"), } - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") + d.SetSwarmConfigFromFlags(flags) d.SSHUser = "root" d.SSHPort = 22 diff --git a/drivers/virtualbox/virtualbox.go b/drivers/virtualbox/virtualbox.go index 15d89e2615..695d54a9bf 100644 --- a/drivers/virtualbox/virtualbox.go +++ b/drivers/virtualbox/virtualbox.go @@ -184,9 +184,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.Memory = flags.Int("virtualbox-memory") d.DiskSize = flags.Int("virtualbox-disk-size") d.Boot2DockerURL = flags.String("virtualbox-boot2docker-url") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") + d.SetSwarmConfigFromFlags(flags) d.SSHUser = "docker" d.Boot2DockerImportVM = flags.String("virtualbox-import-boot2docker-vm") d.HostDNSResolver = flags.Bool("virtualbox-host-dns-resolver") diff --git a/drivers/vmwarefusion/fusion_darwin.go b/drivers/vmwarefusion/fusion_darwin.go index 8d17660ddf..0919d94bfd 100644 --- a/drivers/vmwarefusion/fusion_darwin.go +++ b/drivers/vmwarefusion/fusion_darwin.go @@ -150,9 +150,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.ConfigDriveURL = flags.String("vmwarefusion-configdrive-url") d.ISO = d.ResolveStorePath(isoFilename) d.ConfigDriveISO = d.ResolveStorePath(isoConfigDrive) - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") + d.SetSwarmConfigFromFlags(flags) d.SSHUser = flags.String("vmwarefusion-ssh-user") d.SSHPassword = flags.String("vmwarefusion-ssh-password") d.SSHPort = 22 diff --git a/drivers/vmwarevcloudair/vcloudair.go b/drivers/vmwarevcloudair/vcloudair.go index d90287485e..97290d5fe9 100644 --- a/drivers/vmwarevcloudair/vcloudair.go +++ b/drivers/vmwarevcloudair/vcloudair.go @@ -155,9 +155,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.UserPassword = flags.String("vmwarevcloudair-password") d.VDCID = flags.String("vmwarevcloudair-vdcid") d.PublicIP = flags.String("vmwarevcloudair-publicip") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") + d.SetSwarmConfigFromFlags(flags) // Check for required Params if d.UserName == "" || d.UserPassword == "" || d.VDCID == "" || d.PublicIP == "" { diff --git a/drivers/vmwarevsphere/vsphere.go b/drivers/vmwarevsphere/vsphere.go index 83f36f34a8..e27ab68177 100644 --- a/drivers/vmwarevsphere/vsphere.go +++ b/drivers/vmwarevsphere/vsphere.go @@ -192,9 +192,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.Datacenter = flags.String("vmwarevsphere-datacenter") d.Pool = flags.String("vmwarevsphere-pool") d.HostSystem = flags.String("vmwarevsphere-hostsystem") - d.SwarmMaster = flags.Bool("swarm-master") - d.SwarmHost = flags.String("swarm-host") - d.SwarmDiscovery = flags.String("swarm-discovery") + d.SetSwarmConfigFromFlags(flags) d.ISO = d.ResolveStorePath(isoFilename) diff --git a/libmachine/drivers/base.go b/libmachine/drivers/base.go index 6612e6b88a..a45a63b10a 100644 --- a/libmachine/drivers/base.go +++ b/libmachine/drivers/base.go @@ -76,3 +76,10 @@ func (d *BaseDriver) PreCreateCheck() error { func (d *BaseDriver) ResolveStorePath(file string) string { return filepath.Join(d.StorePath, "machines", d.MachineName, file) } + +// SetSwarmConfigFromFlags configures the driver for swarm +func (d *BaseDriver) SetSwarmConfigFromFlags(flags DriverOptions) { + d.SwarmMaster = flags.Bool("swarm-master") + d.SwarmHost = flags.String("swarm-host") + d.SwarmDiscovery = flags.String("swarm-discovery") +}