diff --git a/drivers/openstack/client.go b/drivers/openstack/client.go index 5744488934..06b3b3c4a2 100644 --- a/drivers/openstack/client.go +++ b/drivers/openstack/client.go @@ -75,7 +75,7 @@ type IpAddress struct { } func (c *GenericClient) GetInstanceState(d *Driver) (string, error) { - server, err := c.getServerDetail(d) + server, err := c.GetServerDetail(d) if err != nil { return "", err } @@ -123,7 +123,7 @@ func (c *GenericClient) WaitForInstanceStatus(d *Driver, status string, timeout } func (c *GenericClient) GetInstanceIpAddresses(d *Driver) ([]IpAddress, error) { - server, err := c.getServerDetail(d) + server, err := c.GetServerDetail(d) if err != nil { return nil, err } @@ -251,7 +251,7 @@ func (c *GenericClient) DeleteKeyPair(d *Driver, name string) error { return nil } -func (c *GenericClient) getServerDetail(d *Driver) (*servers.Server, error) { +func (c *GenericClient) GetServerDetail(d *Driver) (*servers.Server, error) { server, err := servers.Get(c.Compute, d.MachineId).Extract() if err != nil { return nil, err diff --git a/drivers/rackspace/client.go b/drivers/rackspace/client.go index 740633ba5e..dec454b040 100644 --- a/drivers/rackspace/client.go +++ b/drivers/rackspace/client.go @@ -54,3 +54,18 @@ func (c *Client) StartInstance(d *openstack.Driver) error { func (c *Client) StopInstance(d *openstack.Driver) error { return unsupportedOpErr("stop") } + +// GetInstanceIpAddresses can be short-circuited with the server's AccessIPv4Addr on Rackspace. +func (c *Client) GetInstanceIpAddresses(d *openstack.Driver) ([]openstack.IpAddress, error) { + server, err := c.GetServerDetail(d) + if err != nil { + return nil, err + } + return []openstack.IpAddress{ + { + Network: "public", + Address: server.AccessIPv4, + AddressType: openstack.Fixed, + }, + }, nil +}