feat(openstack): add flag for using nova networks

Signed-off-by: Jeremy White <dudymas@gmail.com>
This commit is contained in:
Jeremy White
2015-10-21 13:45:01 -04:00
parent c442690618
commit f9e40c2ce2
2 changed files with 77 additions and 19 deletions
+15 -16
View File
@@ -38,6 +38,7 @@ type Driver struct {
NetworkId string
SecurityGroups []string
FloatingIpPool string
ComputeNetwork bool
FloatingIpPoolId string
IpVersion int
client Client
@@ -158,6 +159,11 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
Usage: "OpenStack comma separated security groups for the machine",
Value: "",
},
mcnflag.BoolFlag{
EnvVar: "OS_NOVA_NETWORK",
Name: "openstack-nova-network",
Usage: "Use the nova networking services instead of neutron.",
},
mcnflag.StringFlag{
EnvVar: "OS_FLOATINGIP_POOL",
Name: "openstack-floatingip-pool",
@@ -182,16 +188,6 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
Usage: "OpenStack SSH port",
Value: defaultSSHPort,
},
mcnflag.StringFlag{
Name: "openstack-ssh-user",
Usage: "OpenStack SSH user",
Value: defaultSSHUser,
},
mcnflag.IntFlag{
Name: "openstack-ssh-port",
Usage: "OpenStack SSH port",
Value: defaultSSHPort,
},
mcnflag.IntFlag{
EnvVar: "OS_ACTIVE_TIMEOUT",
Name: "openstack-active-timeout",
@@ -250,6 +246,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
}
d.FloatingIpPool = flags.String("openstack-floatingip-pool")
d.IpVersion = flags.Int("openstack-ip-version")
d.ComputeNetwork = flags.Bool("openstack-nova-network")
d.SSHUser = flags.String("openstack-ssh-user")
d.SSHPort = flags.Int("openstack-ssh-port")
d.SwarmMaster = flags.Bool("swarm-master")
@@ -468,7 +465,7 @@ func (d *Driver) checkConfig() error {
}
func (d *Driver) resolveIds() error {
if d.NetworkName != "" {
if d.NetworkName != "" && !d.ComputeNetwork {
if err := d.initNetwork(); err != nil {
return err
}
@@ -532,7 +529,7 @@ func (d *Driver) resolveIds() error {
}).Debug("Found image id using its name")
}
if d.FloatingIpPool != "" {
if d.FloatingIpPool != "" && !d.ComputeNetwork {
if err := d.initNetwork(); err != nil {
return err
}
@@ -613,12 +610,14 @@ func (d *Driver) createMachine() error {
}
func (d *Driver) assignFloatingIp() error {
var err error
if err := d.initNetwork(); err != nil {
return err
if d.ComputeNetwork {
err = d.initCompute()
} else {
err = d.initNetwork()
}
portId, err := d.client.GetInstancePortId(d)
if err != nil {
return err
}
@@ -653,7 +652,7 @@ func (d *Driver) assignFloatingIp() error {
log.WithField("MachineId", d.MachineId).Debugf("Assigning floating IP to the instance")
}
if err := d.client.AssignFloatingIP(d, floatingIp, portId); err != nil {
if err := d.client.AssignFloatingIP(d, floatingIp); err != nil {
return err
}
d.IPAddress = floatingIp.Ip