Quellcode durchsuchen

Added region.current property to RegionService.

Nuwan Goonasekera vor 10 Jahren
Ursprung
Commit
0323f51001

+ 11 - 0
cloudbridge/cloud/interfaces/services.py

@@ -975,6 +975,17 @@ class RegionService(PageableObjectMixin, CloudService):
     """
     """
     __metaclass__ = ABCMeta
     __metaclass__ = ABCMeta
 
 
+    @abstractproperty
+    def current(self):
+        """
+        Returns the current region that this provider is connected
+        to
+
+        :rtype: ``object`` of :class:`.Region`
+        :return:  a Region instance
+        """
+        pass
+
     @abstractmethod
     @abstractmethod
     def get(self, region_id):
     def get(self, region_id):
         """
         """

+ 4 - 0
cloudbridge/cloud/providers/aws/services.py

@@ -639,6 +639,10 @@ class AWSRegionService(BaseRegionService):
         return ClientPagedResultList(self.provider, regions,
         return ClientPagedResultList(self.provider, regions,
                                      limit=limit, marker=marker)
                                      limit=limit, marker=marker)
 
 
+    @property
+    def current(self):
+        return self.get(self._provider.region_name)
+
 
 
 class AWSNetworkService(BaseNetworkService):
 class AWSNetworkService(BaseNetworkService):
 
 

+ 4 - 0
cloudbridge/cloud/providers/openstack/services.py

@@ -468,6 +468,10 @@ class OpenStackRegionService(BaseRegionService):
         return ClientPagedResultList(self.provider, os_regions,
         return ClientPagedResultList(self.provider, os_regions,
                                      limit=limit, marker=marker)
                                      limit=limit, marker=marker)
 
 
+    @property
+    def current(self):
+        return self.get(self._provider.region_name)
+
 
 
 class OpenStackComputeService(BaseComputeService):
 class OpenStackComputeService(BaseComputeService):
 
 

+ 8 - 0
test/test_region_service.py

@@ -55,6 +55,14 @@ class CloudRegionServiceTestCase(ProviderTestBase):
         unique_regions = set([region.id for region in regions])
         unique_regions = set([region.id for region in regions])
         self.assertTrue(len(regions) == len(list(unique_regions)))
         self.assertTrue(len(regions) == len(list(unique_regions)))
 
 
+    def test_current_region(self):
+        """
+        RegionService.current should return a valid region
+        """
+        current_region = self.provider.compute.regions.current
+        self.assertIsInstance(current_region, Region)
+        self.assertTrue(current_region in self.provider.compute.regions.list())
+
     def test_zones(self):
     def test_zones(self):
         """
         """
         Test whether regions return the correct zone information
         Test whether regions return the correct zone information