Просмотр исходного кода

Fix and test for openstack provider not returning unique regions.

Nuwan Goonasekera 10 лет назад
Родитель
Сommit
dbbbbacd95
2 измененных файлов с 9 добавлено и 1 удалено
  1. 1 1
      cloudbridge/cloud/providers/openstack/services.py
  2. 8 0
      test/test_region_service.py

+ 1 - 1
cloudbridge/cloud/providers/openstack/services.py

@@ -459,7 +459,7 @@ class OpenStackRegionService(BaseRegionService):
             for svc in self.provider.keystone.service_catalog.get_data()
             for endpoint in svc.get('endpoints', [])
         )
-        regions = (region for region in regions if region)
+        regions = set(region for region in regions if region)
         os_regions = [OpenStackRegion(self.provider, region)
                       for region in regions]
 

+ 8 - 0
test/test_region_service.py

@@ -43,3 +43,11 @@ class CloudRegionServiceTestCase(ProviderTestBase):
             region.name in region.to_json(),
             "Region name {0} not in JSON representation {1}".format(
                 region.name, region.to_json()))
+
+    def test_regions_unique(self):
+        """
+        Regions should not return duplicate items
+        """
+        regions = self.provider.compute.regions.list()
+        unique_regions = set([region.id for region in regions])
+        self.assertTrue(len(regions) == len(list(unique_regions)))