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

Add disk to the snapshot create or update method

FabioRosado 4 лет назад
Родитель
Сommit
42f3f2e1fe

+ 3 - 2
cloudbridge/providers/azure/azure_client.py

@@ -526,11 +526,12 @@ class AzureClient(object):
         return self.compute_client.snapshots.get(self.resource_group,
                                                  snapshot_name)
 
-    def create_snapshot(self, snapshot_name, params):
+    def create_snapshot(self, snapshot_name, volume, params):
         return self.compute_client.snapshots.begin_create_or_update(
             self.resource_group,
             snapshot_name,
-            params
+            volume,
+            params=params
         ).result()
 
     def delete_snapshot(self, snapshot_id):

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

@@ -164,7 +164,6 @@ class AzureBucketObject(BaseBucketObject):
         super(AzureBucketObject, self).__init__(provider)
         self._container = container
         self._blob_client = blob_client
-        breakpoint()
         if isinstance(self._blob_client, BlobProperties):
             self._blob_properties = blob_client
         else:

+ 6 - 11
cloudbridge/providers/azure/services.py

@@ -476,18 +476,13 @@ class AzureSnapshotService(BaseSnapshotService):
         volume = (self.provider.storage.volumes.get(volume)
                   if isinstance(volume, str) else volume)
 
-        params = {
-            'location': self.provider.azure_client.region_name,
-            'creation_data': {
-                'create_option': DiskCreateOption.copy,
-                'source_uri': volume.resource_id
-            },
-            'disk_size_gb': volume.size,
-            'tags': tags
-        }
+        # We need to pass the Disk Object to create the snapshot
+        volume = volume._volume
+
+        azure_snap = self.provider.azure_client.create_snapshot(
+            snapshot_name,volume, tags
+        )
 
-        azure_snap = self.provider.azure_client.create_snapshot(snapshot_name,
-                                                                params)
         return AzureSnapshot(self.provider, azure_snap)
 
     @dispatch(event="provider.storage.snapshots.delete",