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

Add Azure stop VM instance method

Rodrigo Antunes 3 лет назад
Родитель
Сommit
04061010e4
2 измененных файлов с 13 добавлено и 0 удалено
  1. 7 0
      cloudbridge/providers/azure/azure_client.py
  2. 6 0
      cloudbridge/providers/azure/resources.py

+ 7 - 0
cloudbridge/providers/azure/azure_client.py

@@ -742,6 +742,13 @@ class AzureClient(object):
         return self.compute_client.virtual_machines.begin_restart(
         return self.compute_client.virtual_machines.begin_restart(
             self.resource_group, vm_name).wait()
             self.resource_group, vm_name).wait()
 
 
+    def stop_vm(self, vm_id):
+        url_params = azure_helpers.parse_url(VM_RESOURCE_ID,
+                                             vm_id)
+        vm_name = url_params.get(VM_NAME, "")
+        self.compute_client.virtual_machines. \
+            begin_power_off(self.resource_group, vm_name).wait()
+
     def delete_vm(self, vm_id):
     def delete_vm(self, vm_id):
         url_params = azure_helpers.parse_url(VM_RESOURCE_ID,
         url_params = azure_helpers.parse_url(VM_RESOURCE_ID,
                                              vm_id)
                                              vm_id)

+ 6 - 0
cloudbridge/providers/azure/resources.py

@@ -1131,6 +1131,12 @@ class AzureInstance(BaseInstance):
         """
         """
         self._provider.azure_client.restart_vm(self.id)
         self._provider.azure_client.restart_vm(self.id)
 
 
+    def stop(self):
+        """
+        Stop this instance (using the cloud middleware API).
+        """
+        self._provider.azure_client.stop_vm(self.id)
+
     @property
     @property
     def image_id(self):
     def image_id(self):
         """
         """