Przeglądaj źródła

Move provider.network services one level deeper to provider.networking.networks; include provider.networking.subnets service

Enis Afgan 8 lat temu
rodzic
commit
98eebf2546

+ 7 - 0
cloudbridge/cloud/base/services.py

@@ -9,6 +9,7 @@ from cloudbridge.cloud.interfaces.services import InstanceService
 from cloudbridge.cloud.interfaces.services import InstanceTypesService
 from cloudbridge.cloud.interfaces.services import KeyPairService
 from cloudbridge.cloud.interfaces.services import NetworkService
+from cloudbridge.cloud.interfaces.services import NetworkingService
 from cloudbridge.cloud.interfaces.services import ObjectStoreService
 from cloudbridge.cloud.interfaces.services import RegionService
 from cloudbridge.cloud.interfaces.services import SecurityGroupService
@@ -143,6 +144,12 @@ class BaseRegionService(
         return [region for region in self if region.name == name]
 
 
+class BaseNetworkingService(NetworkingService, BaseCloudService):
+
+    def __init__(self, provider):
+        super(BaseNetworkingService, self).__init__(provider)
+
+
 class BaseNetworkService(
         BasePageableObjectMixin, NetworkService, BaseCloudService):
 

+ 5 - 5
cloudbridge/cloud/interfaces/provider.py

@@ -137,7 +137,7 @@ class CloudProvider(object):
         pass
 
     @abstractproperty
-    def network(self):
+    def networking(self):
         """
         Provide access to all network related services in this provider.
 
@@ -145,11 +145,11 @@ class CloudProvider(object):
 
         .. code-block:: python
 
-            networks = provider.network.list()
-            network = provider.network.create(name="DevNet")
+            networks = provider.networking.networks.list()
+            network = provider.networking.networks.create(name="DevNet")
 
-        :rtype: :class:`.NetworkService`
-        :return:  a NetworkService object
+        :rtype: :class:`.NetworkingService`
+        :return:  a NetworkingService object
         """
 
     @abstractproperty

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

@@ -500,6 +500,37 @@ class ImageService(PageableObjectMixin, CloudService):
         pass
 
 
+class NetworkingService(CloudService):
+
+    """
+    Base service interface for networking.
+
+    This service offers a collection of networking services that in turn
+    provide access to networking resources.
+    """
+    __metaclass__ = ABCMeta
+
+    @abstractproperty
+    def networks(self):
+        """
+        Provides access to all Network related services.
+
+        :rtype: :class:`.NetworkService`
+        :return: a Network service object
+        """
+        pass
+
+    @abstractproperty
+    def subnets(self):
+        """
+        Provides access to all Subnet related services.
+
+        :rtype: :class:`.SubnetService`
+        :return: a Subnet service object
+        """
+        pass
+
+
 class NetworkService(PageableObjectMixin, CloudService):
 
     """

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

@@ -18,7 +18,7 @@ from cloudbridge.cloud.interfaces import TestMockHelperMixin
 
 from .services import AWSBlockStoreService
 from .services import AWSComputeService
-from .services import AWSNetworkService
+from .services import AWSNetworkingService
 from .services import AWSObjectStoreService
 from .services import AWSSecurityService
 
@@ -64,7 +64,7 @@ class AWSCloudProvider(BaseCloudProvider):
 
         # Initialize provider services
         self._compute = AWSComputeService(self)
-        self._network = AWSNetworkService(self)
+        self._networking = AWSNetworkingService(self)
         self._security = AWSSecurityService(self)
         self._block_store = AWSBlockStoreService(self)
         self._object_store = AWSObjectStoreService(self)
@@ -92,8 +92,8 @@ class AWSCloudProvider(BaseCloudProvider):
         return self._compute
 
     @property
-    def network(self):
-        return self._network
+    def networking(self):
+        return self._networking
 
     @property
     def security(self):

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

@@ -15,6 +15,7 @@ from cloudbridge.cloud.base.services import BaseInstanceService
 from cloudbridge.cloud.base.services import BaseInstanceTypesService
 from cloudbridge.cloud.base.services import BaseKeyPairService
 from cloudbridge.cloud.base.services import BaseNetworkService
+from cloudbridge.cloud.base.services import BaseNetworkingService
 from cloudbridge.cloud.base.services import BaseObjectStoreService
 from cloudbridge.cloud.base.services import BaseRegionService
 from cloudbridge.cloud.base.services import BaseSecurityGroupService
@@ -734,6 +735,22 @@ class AWSRegionService(BaseRegionService):
         return self.get(self._provider.region_name)
 
 
+class AWSNetworkingService(BaseNetworkingService):
+
+    def __init__(self, provider):
+        super(AWSNetworkingService, self).__init__(provider)
+        self._network_service = AWSNetworkService(self.provider)
+        self._subnet_service = AWSSubnetService(self.provider)
+
+    @property
+    def networks(self):
+        return self._network_service
+
+    @property
+    def subnets(self):
+        return self._subnet_service
+
+
 class AWSNetworkService(BaseNetworkService):
 
     def __init__(self, provider):

+ 4 - 4
cloudbridge/cloud/providers/openstack/provider.py

@@ -21,7 +21,7 @@ from swiftclient import client as swift_client
 
 from .services import OpenStackBlockStoreService
 from .services import OpenStackComputeService
-from .services import OpenStackNetworkService
+from .services import OpenStackNetworkingService
 from .services import OpenStackObjectStoreService
 from .services import OpenStackSecurityService
 
@@ -66,7 +66,7 @@ class OpenStackCloudProvider(BaseCloudProvider):
 
         # Initialize provider services
         self._compute = OpenStackComputeService(self)
-        self._network = OpenStackNetworkService(self)
+        self._networking = OpenStackNetworkingService(self)
         self._security = OpenStackSecurityService(self)
         self._block_store = OpenStackBlockStoreService(self)
         self._object_store = OpenStackObjectStoreService(self)
@@ -153,8 +153,8 @@ class OpenStackCloudProvider(BaseCloudProvider):
         return self._compute
 
     @property
-    def network(self):
-        return self._network
+    def networking(self):
+        return self._networking
 
     @property
     def security(self):

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

@@ -16,6 +16,7 @@ from cloudbridge.cloud.base.services import BaseInstanceService
 from cloudbridge.cloud.base.services import BaseInstanceTypesService
 from cloudbridge.cloud.base.services import BaseKeyPairService
 from cloudbridge.cloud.base.services import BaseNetworkService
+from cloudbridge.cloud.base.services import BaseNetworkingService
 from cloudbridge.cloud.base.services import BaseObjectStoreService
 from cloudbridge.cloud.base.services import BaseRegionService
 from cloudbridge.cloud.base.services import BaseSecurityGroupService
@@ -710,6 +711,22 @@ class OpenStackInstanceService(BaseInstanceService):
             return None
 
 
+class OpenStackNetworkingService(BaseNetworkingService):
+
+    def __init__(self, provider):
+        super(OpenStackNetworkingService, self).__init__(provider)
+        self._network_service = OpenStackNetworkService(self.provider)
+        self._subnet_service = OpenStackSubnetService(self.provider)
+
+    @property
+    def networks(self):
+        return self._network_service
+
+    @property
+    def subnets(self):
+        return self._subnet_service
+
+
 class OpenStackNetworkService(BaseNetworkService):
 
     def __init__(self, provider):