Browse Source

Fix network and router issues

Ehsan Chiniforooshan 7 years ago
parent
commit
c18bc99035

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

@@ -359,7 +359,7 @@ class BasePageableObjectMixin(PageableObjectMixin):
         for result in self.list_all():
             yield result
 
-    def list_all(**kwargs):
+    def list_all(self, **kwargs):
         result_list = self.list(**kwargs)
         if result_list.supports_server_paging:
             for result in result_list:

+ 7 - 0
cloudbridge/cloud/providers/gce/services.py

@@ -880,10 +880,17 @@ class GCESubnetService(BaseSubnetService):
         region_name = self._zone_to_region_name(zone)
         for subnet in self.list_all(network=network):
             if BaseNetwork.cidr_blocks_overlap(subnet.cidr_block, cidr_block):
+                if subnet.region_name != region_name:
+                    cb.log.error('Failed to create subnetwork in region %s: '
+                                 'the given IP range %s overlaps with a '
+                                 'subnetwork in a different region %s',
+                                 region_name, cidr_block, subnet.region_name)
+                    return None
                 return subnet
             if subnet.name == name and subnet.region_name == region_name:
                 return subnet
 
+
         body = {'ipCidrRange': cidr_block,
                 'name': name,
                 'network': network.resource_url,