Browse Source

Add tags to snapshot and fix blob encode issue

FabioRosado 4 years ago
parent
commit
d4bb459c79
2 changed files with 14 additions and 11 deletions
  1. 11 5
      cloudbridge/providers/azure/azure_client.py
  2. 3 6
      tests/test_network_service.py

+ 11 - 5
cloudbridge/providers/azure/azure_client.py

@@ -443,12 +443,16 @@ class AzureClient(object):
         return blob_client.get_blob_properties(container_name, blob_name)
 
     def create_blob_from_text(self, container_name, blob_name, text):
-        length = len(text.encode())
+        if isinstance(text, bytes):
+            length = len(text)
+        else:
+            length = len(text.encode())
         self.upload_blob(container_name, blob_name, text, length)
 
     def create_blob_from_file(self, container_name, blob_name, file_path, length=None):
         with open(file_path, 'rb') as data:
-            self.upload_blob(container_name, blob_name, data, length)
+            data = data.read()
+            self.upload_blob(container_name, blob_name, data, len(data))
 
     def delete_blob(self, container_name, blob_name, delete_snapshots="include"):
         blob_client = self.blob_client(container_name, blob_name)
@@ -526,14 +530,16 @@ class AzureClient(object):
         return self.compute_client.snapshots.get(self.resource_group,
                                                  snapshot_name)
 
-    def create_snapshot(self, snapshot_name, volume, params):
-        return self.compute_client.snapshots.begin_create_or_update(
+    def create_snapshot(self, snapshot_name, volume, tags):
+        snapshot = self.compute_client.snapshots.begin_create_or_update(
             self.resource_group,
             snapshot_name,
             volume,
-            params=params
         ).result()
 
+        self.update_snapshot_tags(snapshot.id, tags)
+        return snapshot
+
     def delete_snapshot(self, snapshot_id):
         url_params = azure_helpers.parse_url(SNAPSHOT_RESOURCE_ID,
                                              snapshot_id)

+ 3 - 6
tests/test_network_service.py

@@ -1,11 +1,8 @@
 from cloudbridge.base import helpers as cb_helpers
 from cloudbridge.base.resources import BaseNetwork
-from cloudbridge.interfaces.resources import FloatingIP
-from cloudbridge.interfaces.resources import Network
-from cloudbridge.interfaces.resources import NetworkState
-from cloudbridge.interfaces.resources import RouterState
-from cloudbridge.interfaces.resources import Subnet
-from cloudbridge.interfaces.resources import SubnetState
+from cloudbridge.interfaces.resources import (FloatingIP, Network,
+                                              NetworkState, RouterState,
+                                              Subnet, SubnetState)
 
 import tests.helpers as helpers
 from tests.helpers import ProviderTestBase