فهرست منبع

Fix a bug in creating subnets

Ehsan Chiniforooshan 8 سال پیش
والد
کامیت
eb9f5f24cf
2فایلهای تغییر یافته به همراه6 افزوده شده و 6 حذف شده
  1. 4 0
      cloudbridge/cloud/providers/gce/provider.py
  2. 2 6
      cloudbridge/cloud/providers/gce/services.py

+ 4 - 0
cloudbridge/cloud/providers/gce/provider.py

@@ -182,13 +182,17 @@ class GCPResources(object):
             return self.parse_url(url_or_name)
         # Otherwise, construct resource URL with default values.
         if resource not in self._resources:
+            cb.log.warning('Unknown resource: %s', resource)
             return None
 
         parameter_defaults = copy.copy(self._parameter_defaults)
+        if project:
+            parameter_defaults['project'] = project
         if region:
             parameter_defaults['region'] = region
         if zone:
             parameter_defaults['zone'] = zone
+
         parsed_url = GCPResourceUrl(resource, self._connection)
         for key in self._resources[resource]['parameters']:
             parsed_url.parameters[key] = parameter_defaults.get(

+ 2 - 6
cloudbridge/cloud/providers/gce/services.py

@@ -845,11 +845,7 @@ class GCESubnetService(BaseSubnetService):
         if network is not None:
             filter = 'network eq %s' % network.resource_url
         if zone:
-            if not isinstance(zone, GCEPlacementZone):
-                zone = GCEPlacementZone(
-                    self.provider,
-                    self.provider.get_resource('zones', zone, zone=zone))
-            regions = [zone.region_name]
+            regions = [self._zone_to_region(zone)]
         else:
             regions = [r.name for r in self.provider.compute.regions.list()]
         subnets = []
@@ -900,7 +896,7 @@ class GCESubnetService(BaseSubnetService):
             self.provider.wait_for_operation(response, region=region)
             if 'error' in response:
                 return None
-            subnets = self.list(network, region)
+            subnets = self.list(network, zone)
             for subnet in subnets:
                 if subnet.id == response['targetId']:
                     return subnet