openstack: Set GetZone FailureDomain to nova AZ

Set FailureDomain in GetZone result to value of availability_zone in
local instance metadata.
pull/6/head
Angus Lees 2016-08-30 12:41:43 +10:00
parent 8167df2965
commit ab5250efd8
2 changed files with 18 additions and 2 deletions

View File

@ -395,9 +395,18 @@ func (os *OpenStack) Zones() (cloudprovider.Zones, bool) {
return os, true return os, true
} }
func (os *OpenStack) GetZone() (cloudprovider.Zone, error) { func (os *OpenStack) GetZone() (cloudprovider.Zone, error) {
glog.V(1).Infof("Current zone is %v", os.region) md, err := getMetadata()
if err != nil {
return cloudprovider.Zone{}, err
}
return cloudprovider.Zone{Region: os.region}, nil zone := cloudprovider.Zone{
FailureDomain: md.AvailabilityZone,
Region: os.region,
}
glog.V(1).Infof("Current zone is %v", zone)
return zone, nil
} }
func (os *OpenStack) Routes() (cloudprovider.Routes, bool) { func (os *OpenStack) Routes() (cloudprovider.Routes, bool) {

View File

@ -232,6 +232,9 @@ func TestLoadBalancer(t *testing.T) {
} }
func TestZones(t *testing.T) { func TestZones(t *testing.T) {
SetMetadataFixture(&FakeMetadata)
defer ClearMetadata()
os := OpenStack{ os := OpenStack{
provider: &gophercloud.ProviderClient{ provider: &gophercloud.ProviderClient{
IdentityBase: "http://auth.url/", IdentityBase: "http://auth.url/",
@ -252,6 +255,10 @@ func TestZones(t *testing.T) {
if zone.Region != "myRegion" { if zone.Region != "myRegion" {
t.Fatalf("GetZone() returned wrong region (%s)", zone.Region) t.Fatalf("GetZone() returned wrong region (%s)", zone.Region)
} }
if zone.FailureDomain != "nova" {
t.Fatalf("GetZone() returned wrong failure domain (%s)", zone.FailureDomain)
}
} }
func TestVolumes(t *testing.T) { func TestVolumes(t *testing.T) {