Kaynağa Gözat

Fixed region service

Nuwan Goonasekera 8 yıl önce
ebeveyn
işleme
78ba6213d2

+ 3 - 3
cloudbridge/cloud/providers/aws/provider.py

@@ -114,11 +114,11 @@ class AWSCloudProvider(BaseCloudProvider):
         """
         Get a boto ec2 connection object.
         """
-        return self._conect_ec2_region()
+        return self._conect_ec2_region(region_name=self.region_name)
 
-    def _conect_ec2_region(self, region=None):
+    def _conect_ec2_region(self, region_name=None):
         '''Get an EC2 resource object'''
-        return self.session.resource(region_name=region or self.region_name,
+        return self.session.resource(region_name=region_name,
                                      **self.ec2_cfg)
 
     def _connect_s3(self):

+ 4 - 4
cloudbridge/cloud/providers/aws/resources.py

@@ -1005,7 +1005,7 @@ class AWSRegion(BaseRegion):
 
     @property
     def id(self):
-        return self._aws_region
+        return self._aws_region.get('RegionName')
 
     @property
     def name(self):
@@ -1016,15 +1016,15 @@ class AWSRegion(BaseRegion):
         """
         Accesss information about placement zones within this region.
         """
-        if self.id == self._provider.session.region_name:  # optimisation
+        if self.id == self._provider.region_name:  # optimisation
             conn = self._provider.ec2_conn
         else:
             conn = self._provider._conect_ec2_region(region_name=self.id)
 
         zones = (conn.meta.client.describe_availability_zones()
                  .get('AvailabilityZones', []))
-        return [AWSPlacementZone(self._provider, zone,
-                                 self._aws_region)
+        return [AWSPlacementZone(self._provider, zone.get('ZoneName'),
+                                 self.id)
                 for zone in zones]
 
 

+ 2 - 6
test/test_region_service.py

@@ -63,9 +63,5 @@ class CloudRegionServiceTestCase(ProviderTestBase):
                                            six.string_types))
                 if test_zone == zone.name:
                     zone_find_count += 1
-        # TODO: Can't do a check for zone_find_count == 1 because Moto
-        # always returns the same zone for any region
-        self.assertTrue(zone_find_count > 0,
-                        "The test zone: {0} should appear exactly"
-                        " once in the list of regions, but was not found"
-                        .format(test_zone, zone_find_count))
+        # zone info cannot be repeated between regions
+        self.assertEqual(zone_find_count, 1)