almahmoud 7 лет назад
Родитель
Сommit
89c0cf94ed

+ 15 - 15
cloudbridge/cloud/base/resources.py

@@ -324,7 +324,7 @@ class BaseInstance(BaseCloudResource, BaseObjectLifeCycleMixin, Instance):
 
     def __repr__(self):
         return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
-                                            self.label, self.name)
+                                            self.label, self.id)
 
 
 class BaseLaunchConfig(LaunchConfig):
@@ -425,7 +425,7 @@ class BaseMachineImage(
 
     def __repr__(self):
         return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
-                                            self.name, self.id)
+                                            self.label or self.name, self.id)
 
 
 class BaseAttachmentInfo(AttachmentInfo):
@@ -471,7 +471,7 @@ class BaseVolume(BaseCloudResource, BaseObjectLifeCycleMixin, Volume):
 
     def __repr__(self):
         return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
-                                            self.label, self.name)
+                                            self.label or self.name, self.id)
 
 
 class BaseSnapshot(BaseCloudResource, BaseObjectLifeCycleMixin, Snapshot):
@@ -497,7 +497,7 @@ class BaseSnapshot(BaseCloudResource, BaseObjectLifeCycleMixin, Snapshot):
 
     def __repr__(self):
         return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
-                                            self.label, self.name)
+                                            self.label or self.name, self.id)
 
 
 class BaseKeyPair(BaseCloudResource, KeyPair):
@@ -812,14 +812,14 @@ class BaseGatewayContainer(GatewayContainer, BasePageableObjectMixin):
 class BaseNetwork(BaseCloudResource, BaseObjectLifeCycleMixin, Network):
 
     CB_DEFAULT_NETWORK_NAME = os.environ.get('CB_DEFAULT_NETWORK_NAME',
-                                             'cloudbridge-net')
+                                             'cb-net')
 
     def __init__(self, provider):
         super(BaseNetwork, self).__init__(provider)
 
     def __repr__(self):
         return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
-                                            self.id, self.label)
+                                            self.label or self.name, self.id)
 
     def wait_till_ready(self, timeout=None, interval=None):
         self.wait_for(
@@ -828,9 +828,9 @@ class BaseNetwork(BaseCloudResource, BaseObjectLifeCycleMixin, Network):
             timeout=timeout,
             interval=interval)
 
-    def create_subnet(self, cidr_block, label=None, zone=None):
+    def create_subnet(self, cidr_block, name=None, zone=None):
         return self._provider.networking.subnets.create(
-            label=label, network=self, cidr_block=cidr_block, zone=zone)
+            network=self, cidr_block=cidr_block, zone=zone, name=name)
 
     def __eq__(self, other):
         return (isinstance(other, Network) and
@@ -841,15 +841,15 @@ class BaseNetwork(BaseCloudResource, BaseObjectLifeCycleMixin, Network):
 
 class BaseSubnet(BaseCloudResource, BaseObjectLifeCycleMixin, Subnet):
 
-    CB_DEFAULT_SUBNET_LABEL = os.environ.get('CB_DEFAULT_SUBNET_LABEL',
-                                             'cloudbridge-subnet')
+    CB_DEFAULT_SUBNET_NAME = os.environ.get('CB_DEFAULT_SUBNET_NAME',
+                                            'cb-subnet')
 
     def __init__(self, provider):
         super(BaseSubnet, self).__init__(provider)
 
     def __repr__(self):
         return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
-                                            self.id, self.label)
+                                            self.name, self.id)
 
     def __eq__(self, other):
         return (isinstance(other, Subnet) and
@@ -929,8 +929,8 @@ class BaseRouter(BaseCloudResource, Router):
         super(BaseRouter, self).__init__(provider)
 
     def __repr__(self):
-        return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__, self.id,
-                                            self.label)
+        return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
+                                            self.label or self.name, self.id)
 
     def __eq__(self, other):
         return (isinstance(other, Router) and
@@ -950,8 +950,8 @@ class BaseInternetGateway(BaseCloudResource, BaseObjectLifeCycleMixin,
         self.__provider = provider
 
     def __repr__(self):
-        return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__, self.id,
-                                            self.label)
+        return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
+                                            self.label or self.name, self.id)
 
     def __eq__(self, other):
         return (isinstance(other, InternetGateway) and

+ 1 - 1
cloudbridge/cloud/base/services.py

@@ -186,7 +186,7 @@ class BaseSubnetService(
 
     def find(self, **kwargs):
         obj_list = self
-        filters = ['label']
+        filters = ['name']
         matches = cb_helpers.generic_find(filters, kwargs, obj_list)
         return ClientPagedResultList(self._provider, list(matches))
 

+ 2 - 10
cloudbridge/cloud/interfaces/resources.py

@@ -950,7 +950,7 @@ class Network(ObjectLifeCycleMixin, LabeledCloudResource):
         pass
 
     @abstractmethod
-    def create_subnet(self, cidr_block, label=None, zone=None):
+    def create_subnet(self, cidr_block, name=None, zone=None):
         """
         Create a new network subnet and associate it with this Network.
 
@@ -1000,20 +1000,12 @@ class SubnetState(object):
     ERROR = "error"
 
 
-class Subnet(ObjectLifeCycleMixin, LabeledCloudResource):
+class Subnet(ObjectLifeCycleMixin, CloudResource):
     """
     Represents a subnet, as part of a Network.
     """
     __metaclass__ = ABCMeta
 
-    @LabeledCloudResource.label.setter
-    @abstractmethod
-    def label(self, value):
-        """
-        Set the resource label.
-        """
-        pass
-
     @abstractproperty
     def cidr_block(self):
         """

+ 1 - 1
cloudbridge/cloud/interfaces/services.py

@@ -730,7 +730,7 @@ class SubnetService(PageableObjectMixin, CloudService):
         pass
 
     @abstractmethod
-    def create(self, network_id, cidr_block, zone, label=None):
+    def create(self, network_id, cidr_block, zone, name=None):
         """
         Create a new subnet within the supplied network.
 

+ 0 - 10
cloudbridge/cloud/providers/aws/resources.py

@@ -1038,18 +1038,8 @@ class AWSSubnet(BaseSubnet):
 
     @property
     def name(self):
-        return self.id
-
-    @property
-    def label(self):
         return find_tag_value(self._subnet.tags, 'Name')
 
-    @label.setter
-    # pylint:disable=arguments-differ
-    def label(self, value):
-        self.assert_valid_resource_label(value)
-        self._subnet.create_tags(Tags=[{'Key': 'Name', 'Value': value or ""}])
-
     @property
     def cidr_block(self):
         return self._subnet.cidr_block

+ 16 - 12
cloudbridge/cloud/providers/aws/services.py

@@ -702,21 +702,21 @@ class AWSSubnetService(BaseSubnetService):
             return self.svc.list(limit=limit, marker=marker)
 
     def find(self, **kwargs):
-        label = kwargs.pop('label', None)
+        name = kwargs.pop('name', None)
 
         # All kwargs should have been popped at this time.
         if len(kwargs) > 0:
             raise TypeError("Unrecognised parameters for search: %s."
-                            " Supported attributes: %s" % (kwargs, 'label'))
+                            " Supported attributes: %s" % (kwargs, 'name'))
 
-        log.debug("Searching for AWS Subnet Service %s", label)
-        return self.svc.find(filter_name='tag:Name', filter_value=label)
+        log.debug("Searching for AWS Subnet Service %s", name)
+        return self.svc.find(filter_name='tag:Name', filter_value=name)
 
-    def create(self, network, cidr_block, zone, label=None):
+    def create(self, network, cidr_block, zone, name=None):
         log.debug("Creating AWS Subnet Service with the params "
-                  "[label: %s network: %s block: %s zone: %s]",
-                  label, network, cidr_block, zone)
-        AWSSubnet.assert_valid_resource_label(label)
+                  "[name: %s network: %s block: %s zone: %s]",
+                  name, network, cidr_block, zone)
+        AWSSubnet.assert_valid_resource_name(name)
 
         network_id = network.id if isinstance(network, AWSNetwork) else network
 
@@ -724,8 +724,12 @@ class AWSSubnetService(BaseSubnetService):
                                  VpcId=network_id,
                                  CidrBlock=cidr_block,
                                  AvailabilityZone=zone)
-        if label:
-            subnet.label = label
+        if not name:
+            name = self.CB_DEFAULT_SUBNET_NAME
+
+        # pylint:disable=protected-access
+        subnet._subnet.create_tags(Tags=[{'Key': 'Name',
+                                          'Value': name or ""}])
         return subnet
 
     def get_or_create_default(self, zone):
@@ -748,7 +752,7 @@ class AWSSubnetService(BaseSubnetService):
             # pylint:disable=protected-access
             for tag in sn._subnet.tags or {}:
                 if (tag.get('Key') == 'Name' and
-                        tag.get('Value') == AWSSubnet.CB_DEFAULT_SUBNET_LABEL):
+                        tag.get('Value') == AWSSubnet.CB_DEFAULT_SUBNET_NAME):
                     return sn
         # No provider-default Subnet exists, try to create it (net + subnets)
         default_net = self.provider.networking.networks.create(
@@ -759,7 +763,7 @@ class AWSSubnetService(BaseSubnetService):
         default_sn = None
         for i, z in enumerate(region.zones):
             sn = self.create(default_net, '10.0.{0}.0/24'.format(i), z.name,
-                             label=AWSSubnet.CB_DEFAULT_SUBNET_LABEL)
+                             label=AWSSubnet.CB_DEFAULT_SUBNET_NAME)
             if zone and zone == z.name:
                 default_sn = sn
         # No specific zone was supplied; return the last created subnet

+ 2 - 2
cloudbridge/cloud/providers/azure/resources.py

@@ -952,7 +952,7 @@ class AzureNetwork(BaseNetwork):
         """
         return self._provider.networking.subnets.list(network=self.id)
 
-    def create_subnet(self, cidr_block, label=None, zone=None):
+    def create_subnet(self, cidr_block, name=None, zone=None):
         """
         Create the subnet with cidr_block
         :param cidr_block:
@@ -961,7 +961,7 @@ class AzureNetwork(BaseNetwork):
         :return:
         """
         return self._provider.networking.subnets. \
-            create(network=self.id, cidr_block=cidr_block, label=label)
+            create(network=self.id, cidr_block=cidr_block, name=name)
 
     @property
     def gateways(self):

+ 2 - 2
cloudbridge/cloud/providers/azure/services.py

@@ -1043,7 +1043,7 @@ class AzureSubnetService(BaseSubnetService):
         default_cidr = '10.0.1.0/24'
 
         # No provider-default Subnet exists, look for a library-default one
-        matches = self.find(label=AzureSubnet.CB_DEFAULT_SUBNET_LABEL)
+        matches = self.find(label=AzureSubnet.CB_DEFAULT_SUBNET_NAME)
         if matches:
             return matches[0]
 
@@ -1058,7 +1058,7 @@ class AzureSubnetService(BaseSubnetService):
                 AzureNetwork.CB_DEFAULT_NETWORK_NAME, '10.0.0.0/16')
 
         subnet = self.create(network, default_cidr,
-                             prefix=AzureSubnet.CB_DEFAULT_SUBNET_LABEL)
+                             prefix=AzureSubnet.CB_DEFAULT_SUBNET_NAME)
         return subnet
 
     def delete(self, subnet):

+ 0 - 14
cloudbridge/cloud/providers/openstack/resources.py

@@ -948,22 +948,8 @@ class OpenStackSubnet(BaseSubnet):
 
     @property
     def name(self):
-        return self.id
-
-    @property
-    def label(self):
         return self._subnet.get('name', None)
 
-    @label.setter
-    def label(self, value):  # pylint:disable=arguments-differ
-        """
-        Set the subnet label.
-        """
-        self.assert_valid_resource_label(value)
-        self._provider.neutron.update_subnet(
-            self.id, {'subnet': {'name': value or ""}})
-        self._subnet['name'] = value
-
     @property
     def cidr_block(self):
         return self._subnet.get('cidr', None)

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

@@ -845,13 +845,14 @@ class OpenStackSubnetService(BaseSubnetService):
         return ClientPagedResultList(self.provider, subnets,
                                      limit=limit, marker=marker)
 
-    def create(self, network, cidr_block, zone, label=None):
+    def create(self, network, cidr_block, zone, name=None):
         """zone param is ignored."""
         log.debug("Creating OpenStack Subnet with the params: "
                   "[Label: %s Network: %s Cinder Block: %s Zone: -ignored-]",
-                  label, network, cidr_block)
-        OpenStackSubnet.assert_valid_resource_label(label)
-        name = OpenStackSubnet._generate_name_from_label(label, 'cb-subnet')
+                  name, network, cidr_block)
+        OpenStackSubnet.assert_valid_resource_name(name)
+        if not name:
+            name = self.CB_DEFAULT_SUBNET_NAME
         network_id = (network.id if isinstance(network, OpenStackNetwork)
                       else network)
         subnet_info = {'name': name, 'network_id': network_id,
@@ -859,7 +860,6 @@ class OpenStackSubnetService(BaseSubnetService):
         subnet = (self.provider.neutron.create_subnet({'subnet': subnet_info})
                   .get('subnet'))
         cb_subnet = OpenStackSubnet(self.provider, subnet)
-        cb_subnet.label = label
         return cb_subnet
 
     def get_or_create_default(self, zone):
@@ -867,7 +867,7 @@ class OpenStackSubnetService(BaseSubnetService):
         Subnet zone is not supported by OpenStack and is thus ignored.
         """
         try:
-            sn = self.find(label=OpenStackSubnet.CB_DEFAULT_SUBNET_LABEL)
+            sn = self.find(name=OpenStackSubnet.CB_DEFAULT_SUBNET_NAME)
             if sn:
                 return sn[0]
             # No default; create one
@@ -875,7 +875,7 @@ class OpenStackSubnetService(BaseSubnetService):
                 name=OpenStackNetwork.CB_DEFAULT_NETWORK_NAME,
                 cidr_block='10.0.0.0/16')
             sn = net.create_subnet(
-                label=OpenStackSubnet.CB_DEFAULT_SUBNET_LABEL,
+                name=OpenStackSubnet.CB_DEFAULT_SUBNET_NAME,
                 cidr_block='10.0.0.0/24')
             router = self.provider.networking.routers.create(
                 network=net, label=OpenStackRouter.CB_DEFAULT_ROUTER_LABEL)

+ 1 - 1
test/helpers/__init__.py

@@ -119,7 +119,7 @@ def create_test_network(provider, name):
     net = provider.networking.networks.create(name=name,
                                               cidr_block='10.0.0.0/16')
     cidr_block = (net.cidr_block).split('/')[0] or '10.0.0.1'
-    sn = net.create_subnet(cidr_block='{0}/28'.format(cidr_block), label=name,
+    sn = net.create_subnet(cidr_block='{0}/28'.format(cidr_block), name=name,
                            zone=get_provider_test_data(provider, 'placement'))
     return net, sn
 

+ 5 - 5
test/test_network_service.py

@@ -31,7 +31,7 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
     @helpers.skipIfNoService(['networking.networks'])
     def test_network_properties(self):
         label = 'cb-propnetwork-{0}'.format(helpers.get_uuid())
-        subnet_label = 'cb-propsubnet-{0}'.format(helpers.get_uuid())
+        subnet_name = 'cb-propsubnet-{0}'.format(helpers.get_uuid())
         net = self.provider.networking.networks.create(
             name=label, cidr_block='10.0.0.0/16')
         with helpers.cleanup_action(
@@ -51,7 +51,7 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
 
             cidr = '10.0.1.0/24'
             sn = net.create_subnet(
-                label=subnet_label, cidr_block=cidr,
+                name=subnet_name, cidr_block=cidr,
                 zone=helpers.get_provider_test_data(self.provider,
                                                     'placement'))
             with helpers.cleanup_action(lambda: sn.delete()):
@@ -85,9 +85,9 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
         # correct value
         net = None
 
-        def create_subnet(label):
+        def create_subnet(name):
             return self.provider.networking.subnets.create(
-                network=net, cidr_block="10.0.0.0/24", label=label,
+                network=net, cidr_block="10.0.0.0/24", name=name,
                 zone=helpers.get_provider_test_data(
                     self.provider, 'placement'))
 
@@ -171,7 +171,7 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
             router = self.provider.networking.routers.create(network=net,
                                                              label=label)
             cidr = '10.0.1.0/24'
-            sn = net.create_subnet(label=label, cidr_block=cidr,
+            sn = net.create_subnet(name=label, cidr_block=cidr,
                                    zone=helpers.get_provider_test_data(
                                        self.provider, 'placement'))