diff --git a/commands.go b/commands.go index 96166ec805..cc0774c090 100644 --- a/commands.go +++ b/commands.go @@ -30,6 +30,8 @@ import ( _ "github.com/docker/machine/drivers/vmwarevcloudair" _ "github.com/docker/machine/drivers/vmwarevsphere" "github.com/docker/machine/libmachine" + "github.com/docker/machine/libmachine/engine" + "github.com/docker/machine/libmachine/swarm" "github.com/docker/machine/state" "github.com/docker/machine/utils" ) @@ -392,8 +394,9 @@ func cmdCreate(c *cli.Context) { } hostOptions := &libmachine.HostOptions{ - EngineOptions: &libmachine.EngineOptions{}, - SwarmOptions: &libmachine.SwarmOptions{ + DriverOptions: c, + EngineOptions: &engine.EngineOptions{}, + SwarmOptions: &swarm.SwarmOptions{ Master: c.GlobalBool("swarm-master"), Discovery: c.GlobalString("swarm-discovery"), Address: c.GlobalString("swarm-addr"), diff --git a/libmachine/engine/engine.go b/libmachine/engine/engine.go new file mode 100644 index 0000000000..488d2a0ce1 --- /dev/null +++ b/libmachine/engine/engine.go @@ -0,0 +1,16 @@ +package engine + +type EngineOptions struct { + Dns []string + GraphDir string + Ipv6 bool + Labels []string + LogLevel string + StorageDriver string + SelinuxEnabled bool + TlsCaCert string + TlsCert string + TlsKey string + TlsVerify bool + RegistryMirror []string +} diff --git a/libmachine/host.go b/libmachine/host.go index 35ace8f908..3302ff2a7d 100644 --- a/libmachine/host.go +++ b/libmachine/host.go @@ -18,6 +18,8 @@ import ( log "github.com/Sirupsen/logrus" "github.com/docker/machine/drivers" + "github.com/docker/machine/libmachine/engine" + "github.com/docker/machine/libmachine/swarm" "github.com/docker/machine/provider" "github.com/docker/machine/ssh" "github.com/docker/machine/state" @@ -44,8 +46,17 @@ type Host struct { ServerKeyPath string ClientCertPath string StorePath string - EngineOptions *EngineOptions - SwarmOptions *SwarmOptions + EngineOptions *engine.EngineOptions + SwarmOptions *swarm.SwarmOptions +} + +type HostOptions struct { + Driver string + Memory int + Disk int + DriverOptions drivers.DriverOptions + EngineOptions *engine.EngineOptions + SwarmOptions *swarm.SwarmOptions } type DockerConfig struct { @@ -70,7 +81,7 @@ func waitForDocker(addr string) error { return nil } -func NewHost(name, driverName, StorePath, caCert, privateKey string, engineOptions *EngineOptions, swarmOptions *SwarmOptions) (*Host, error) { +func NewHost(name, driverName, StorePath, caCert, privateKey string, engineOptions *engine.EngineOptions, swarmOptions *swarm.SwarmOptions) (*Host, error) { driver, err := drivers.NewDriver(driverName, name, StorePath, caCert, privateKey) if err != nil { return nil, err diff --git a/libmachine/options.go b/libmachine/options.go deleted file mode 100644 index 55b604c719..0000000000 --- a/libmachine/options.go +++ /dev/null @@ -1,43 +0,0 @@ -package libmachine - -import ( - "github.com/docker/machine/drivers" -) - -type EngineOptions struct { - Dns []string - GraphDir string - Ipv6 bool - Labels []string - LogLevel string - StorageDriver string - SelinuxEnabled bool - TlsCaCert string - TlsCert string - TlsKey string - TlsVerify bool - RegistryMirror []string -} - -type SwarmOptions struct { - Address string - Discovery string - Master bool - Host string - Strategy string - Heartbeat int - Overcommit float64 - TlsCaCert string - TlsCert string - TlsKey string - TlsVerify bool -} - -type HostOptions struct { - Driver string - Memory int - Disk int - DriverOptions drivers.DriverOptions - EngineOptions *EngineOptions - SwarmOptions *SwarmOptions -} diff --git a/libmachine/swarm/swarm.go b/libmachine/swarm/swarm.go new file mode 100644 index 0000000000..5e8e8948b3 --- /dev/null +++ b/libmachine/swarm/swarm.go @@ -0,0 +1,15 @@ +package swarm + +type SwarmOptions struct { + Address string + Discovery string + Master bool + Host string + Strategy string + Heartbeat int + Overcommit float64 + TlsCaCert string + TlsCert string + TlsKey string + TlsVerify bool +}