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

Define a default variable for the cidr range for networks

Enis Afgan 7 лет назад
Родитель
Сommit
234ddb98b4

+ 2 - 0
cloudbridge/cloud/base/resources.py

@@ -775,6 +775,8 @@ class BaseNetwork(BaseCloudResource, BaseObjectLifeCycleMixin, Network):
 
 
     CB_DEFAULT_NETWORK_LABEL = os.environ.get('CB_DEFAULT_NETWORK_LABEL',
     CB_DEFAULT_NETWORK_LABEL = os.environ.get('CB_DEFAULT_NETWORK_LABEL',
                                               'cloudbridge-net')
                                               'cloudbridge-net')
+    CB_DEFAULT_IPV4RANGE = os.environ.get('CB_DEFAULT_IPV4RANGE',
+                                          '10.0.0.0/16')
 
 
     def __init__(self, provider):
     def __init__(self, provider):
         super(BaseNetwork, self).__init__(provider)
         super(BaseNetwork, self).__init__(provider)

+ 3 - 1
cloudbridge/cloud/interfaces/resources.py

@@ -2063,10 +2063,12 @@ class VMFirewallRuleContainer(PageableObjectMixin):
 
 
         .. code-block:: python
         .. code-block:: python
             from cloudbridge.cloud.interfaces.resources import TrafficDirection
             from cloudbridge.cloud.interfaces.resources import TrafficDirection
+            from cloudbridge.cloud.interfaces.resources import BaseNetwork
 
 
             fw = provider.security.vm_firewalls.get('my_fw_id')
             fw = provider.security.vm_firewalls.get('my_fw_id')
             fw.rules.create(TrafficDirection.INBOUND, protocol='tcp',
             fw.rules.create(TrafficDirection.INBOUND, protocol='tcp',
-                            from_port=80, to_port=80, cidr='10.0.0.0/16')
+                            from_port=80, to_port=80,
+                            cidr=BaseNetwork.CB_DEFAULT_IPV4RANGE)
             fw.rules.create(TrafficDirection.INBOUND, src_dest_fw=fw)
             fw.rules.create(TrafficDirection.INBOUND, src_dest_fw=fw)
             fw.rules.create(TrafficDirection.OUTBOUND, src_dest_fw=fw)
             fw.rules.create(TrafficDirection.OUTBOUND, src_dest_fw=fw)
 
 

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

@@ -643,7 +643,7 @@ class NetworkService(PageableObjectMixin, CloudService):
                            subnets you create fall within this initially
                            subnets you create fall within this initially
                            specified range. Note that the block size should be
                            specified range. Note that the block size should be
                            between a /16 netmask (65,536 IP addresses) and /28
                            between a /16 netmask (65,536 IP addresses) and /28
-                           netmask (16 IP addresses). e.g. 10.0.0.0/16
+                           netmask (16 IP addresses), e.g. 10.0.0.0/16.
 
 
         :rtype: ``object`` of :class:`.Network`
         :rtype: ``object`` of :class:`.Network`
         :return:  A Network object
         :return:  A Network object

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

@@ -747,7 +747,7 @@ class AWSNetworkService(BaseNetworkService):
                      AWSNetwork.CB_DEFAULT_NETWORK_LABEL)
                      AWSNetwork.CB_DEFAULT_NETWORK_LABEL)
             return self.provider.networking.networks.create(
             return self.provider.networking.networks.create(
                 label=AWSNetwork.CB_DEFAULT_NETWORK_LABEL,
                 label=AWSNetwork.CB_DEFAULT_NETWORK_LABEL,
-                cidr_block='10.0.0.0/16')
+                cidr_block=AWSNetwork.CB_DEFAULT_IPV4RANGE)
 
 
 
 
 class AWSSubnetService(BaseSubnetService):
 class AWSSubnetService(BaseSubnetService):

+ 1 - 1
cloudbridge/cloud/providers/gce/provider.py

@@ -39,7 +39,7 @@ class GCPResourceUrl(object):
         https://cloud.google.com/storage/docs/json_api/v1/.
         https://cloud.google.com/storage/docs/json_api/v1/.
 
 
         Example:
         Example:
-            When requesting a subnetwork resource the output looks like:
+            When requesting a subnet resource, the output looks like:
 
 
             {'kind': 'compute#subnetwork',
             {'kind': 'compute#subnetwork',
              'id': '6662746501848591938',
              'id': '6662746501848591938',

+ 1 - 2
cloudbridge/cloud/providers/gce/resources.py

@@ -1389,7 +1389,6 @@ class GCEInstance(BaseInstance):
 
 
 
 
 class GCENetwork(BaseNetwork):
 class GCENetwork(BaseNetwork):
-    DEFAULT_IPV4RANGE = '10.128.0.0/9'
 
 
     def __init__(self, provider, network):
     def __init__(self, provider, network):
         super(GCENetwork, self).__init__(provider)
         super(GCENetwork, self).__init__(provider)
@@ -1488,7 +1487,7 @@ class GCENetwork(BaseNetwork):
         if 'IPv4Range' in self._network:
         if 'IPv4Range' in self._network:
             # This is a legacy network.
             # This is a legacy network.
             return self._network['IPv4Range']
             return self._network['IPv4Range']
-        return GCENetwork.DEFAULT_IPV4RANGE
+        return GCENetwork.CB_DEFAULT_IPV4RANGE
 
 
     @property
     @property
     def subnets(self):
     def subnets(self):

+ 4 - 2
docs/topics/networking.rst

@@ -66,8 +66,10 @@ internet gateway.
 
 
 When creating a network, we need to set an address pool. Any subsequent
 When creating a network, we need to set an address pool. Any subsequent
 subnets you create must have a CIDR block that falls within the parent
 subnets you create must have a CIDR block that falls within the parent
-network's CIDR block. Below, we'll create a subnet starting from the beginning
-of the block and allow up to 16 IP addresses within a subnet (``/28``).
+network's CIDR block. CloudBridge also defines a default IPv4 network range in
+``BaseNetwork.CB_DEFAULT_IPV4RANGE``. Below, we'll create a subnet starting
+from the beginning of the block and allow up to 16 IP addresses within a
+subnet (``/28``).
 
 
 .. code-block:: python
 .. code-block:: python
 
 

+ 2 - 0
docs/topics/setup.rst

@@ -230,4 +230,6 @@ CB_DEFAULT_NETWORK_LABEL Name to be used for a network that will be considered
                          the 'default' by the library. This default will be
                          the 'default' by the library. This default will be
                          used only in cases there is no network marked as the
                          used only in cases there is no network marked as the
                          default by the provider.
                          default by the provider.
+CB_DEFAULT_IPV4RANGE     The default IPv4 range when creating networks if one
+                         is not provided. This value is also used in tests.
 ======================== ======================================================
 ======================== ======================================================

+ 2 - 1
test/test_compute_service.py

@@ -2,6 +2,7 @@ import ipaddress
 
 
 import six
 import six
 
 
+from cloudbridge.cloud.base.resources import BaseNetwork
 from cloudbridge.cloud.factory import ProviderList
 from cloudbridge.cloud.factory import ProviderList
 from cloudbridge.cloud.interfaces import InstanceState
 from cloudbridge.cloud.interfaces import InstanceState
 from cloudbridge.cloud.interfaces import InvalidConfigurationException
 from cloudbridge.cloud.interfaces import InvalidConfigurationException
@@ -317,7 +318,7 @@ class CloudComputeServiceTestCase(ProviderTestBase):
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 instance=test_inst, vm_firewall=fw, network=net)):
                 instance=test_inst, vm_firewall=fw, network=net)):
             net = self.provider.networking.networks.create(
             net = self.provider.networking.networks.create(
-                label=label, cidr_block='10.0.0.0/16')
+                label=label, cidr_block=BaseNetwork.CB_DEFAULT_IPV4RANGE)
             cidr = '10.0.1.0/24'
             cidr = '10.0.1.0/24'
             subnet = net.create_subnet(label=label, cidr_block=cidr,
             subnet = net.create_subnet(label=label, cidr_block=cidr,
                                        zone=helpers.get_provider_test_data(
                                        zone=helpers.get_provider_test_data(

+ 2 - 1
test/test_image_service.py

@@ -1,5 +1,6 @@
 from cloudbridge.cloud.interfaces import MachineImageState
 from cloudbridge.cloud.interfaces import MachineImageState
-from cloudbridge.cloud.interfaces.resources import Instance, MachineImage
+from cloudbridge.cloud.interfaces.resources import Instance
+from cloudbridge.cloud.interfaces.resources import MachineImage
 
 
 from test import helpers
 from test import helpers
 from test.helpers import ProviderTestBase
 from test.helpers import ProviderTestBase

+ 6 - 6
test/test_network_service.py

@@ -21,7 +21,7 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
 
 
         def create_net(label):
         def create_net(label):
             return self.provider.networking.networks.create(
             return self.provider.networking.networks.create(
-                label=label, cidr_block='10.0.0.0/16')
+                label=label, cidr_block=BaseNetwork.CB_DEFAULT_IPV4RANGE)
 
 
         def cleanup_net(net):
         def cleanup_net(net):
             if net:
             if net:
@@ -41,7 +41,7 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
         label = 'cb-propnetwork-{0}'.format(helpers.get_uuid())
         label = 'cb-propnetwork-{0}'.format(helpers.get_uuid())
         subnet_label = 'cb-propsubnet-{0}'.format(helpers.get_uuid())
         subnet_label = 'cb-propsubnet-{0}'.format(helpers.get_uuid())
         net = self.provider.networking.networks.create(
         net = self.provider.networking.networks.create(
-            label=label, cidr_block='10.0.0.0/16')
+            label=label, cidr_block=BaseNetwork.CB_DEFAULT_IPV4RANGE)
         with helpers.cleanup_action(lambda: net.delete()):
         with helpers.cleanup_action(lambda: net.delete()):
             net.wait_till_ready()
             net.wait_till_ready()
             self.assertEqual(
             self.assertEqual(
@@ -51,9 +51,9 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
             sit.check_repr(self, net)
             sit.check_repr(self, net)
 
 
             self.assertIn(
             self.assertIn(
-                net.cidr_block, ['', '10.0.0.0/16', '10.128.0.0/9'],
-                "Network CIDR %s does not contain the expected value."
-                % net.cidr_block)
+                net.cidr_block, ['', BaseNetwork.CB_DEFAULT_IPV4RANGE],
+                "Network CIDR %s does not contain the expected value %s."
+                % (net.cidr_block, BaseNetwork.CB_DEFAULT_IPV4RANGE))
 
 
             cidr = '10.0.20.0/24'
             cidr = '10.0.20.0/24'
             sn = net.create_subnet(
             sn = net.create_subnet(
@@ -182,7 +182,7 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
         gteway = None
         gteway = None
         with helpers.cleanup_action(lambda: _cleanup(net, sn, router, gteway)):
         with helpers.cleanup_action(lambda: _cleanup(net, sn, router, gteway)):
             net = self.provider.networking.networks.create(
             net = self.provider.networking.networks.create(
-                label=label, cidr_block='10.0.0.0/16')
+                label=label, cidr_block=BaseNetwork.CB_DEFAULT_IPV4RANGE)
             router = self.provider.networking.routers.create(label=label,
             router = self.provider.networking.routers.create(label=label,
                                                              network=net)
                                                              network=net)
             cidr = '10.0.15.0/24'
             cidr = '10.0.15.0/24'