Override GetInstanceIpAddresses for Rackspace.

Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
This commit is contained in:
Ash Wilson 2014-12-11 15:19:44 -05:00 committed by Guillaume Giamarchi
parent 816cc3c491
commit 5f0fe8e704
2 changed files with 18 additions and 3 deletions

View File

@ -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

View File

@ -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
}