Selaa lähdekoodia

Return newly created instance for GCEInstanceSerice create method. Fix issue #47.

baizhang 9 vuotta sitten
vanhempi
sitoutus
5bd1d05240
1 muutettua tiedostoa jossa 12 lisäystä ja 7 poistoa
  1. 12 7
      cloudbridge/cloud/providers/gce/services.py

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

@@ -478,13 +478,18 @@ class GCEInstanceService(BaseInstanceService):
                     config['tags']['items'] = sg_names
                     config['tags']['items'] = sg_names
         else:
         else:
             config = launch_config
             config = launch_config
-        response = self.provider.gce_compute \
-                                .instances() \
-                                .insert(
-                                    project=self.provider.project_name,
-                                    zone=self.provider.default_zone,
-                                    body=config) \
-                                .execute()
+        operation = (self.provider.gce_compute.instances()
+                         .insert(
+                             project=self.provider.project_name,
+                             zone=self.provider.default_zone,
+                             body=config)
+                         .execute())
+        if 'zone' not in operation:
+            return None
+        gce_zone = self.provider.get_gce_resource_data(operation['zone'])
+        instance_id = operation.get('targetLink')
+        self.provider.wait_for_operation(operation, zone=gce_zone.get('name'))
+        return self.get(instance_id)
 
 
     def get(self, instance_id):
     def get(self, instance_id):
         """
         """