summaryrefslogtreecommitdiff
path: root/tests/cloud_tests/platforms/azurecloud/snapshot.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-03-11 21:15:45 +0100
committerGitHub <noreply@github.com>2020-03-11 21:15:45 +0100
commitfd87c24ff8f6f09a7e2cc223a4e8cdb8c08f1ef8 (patch)
treeb754b3991e5e57a9ae9155819f73fa0cbd4be269 /tests/cloud_tests/platforms/azurecloud/snapshot.py
parentca9a4eb26b41c204d1bd3a15586b14a5dde950bb (diff)
parentc6627bc05a57645e6af8b9a5a67e452d9f37e487 (diff)
downloadvyos-cloud-init-fd87c24ff8f6f09a7e2cc223a4e8cdb8c08f1ef8.tar.gz
vyos-cloud-init-fd87c24ff8f6f09a7e2cc223a4e8cdb8c08f1ef8.zip
Merge pull request #4 from zdc/T2117
Cloud-init: T2117: Updated to 20.1 version
Diffstat (limited to 'tests/cloud_tests/platforms/azurecloud/snapshot.py')
-rw-r--r--tests/cloud_tests/platforms/azurecloud/snapshot.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/cloud_tests/platforms/azurecloud/snapshot.py b/tests/cloud_tests/platforms/azurecloud/snapshot.py
new file mode 100644
index 00000000..580cc596
--- /dev/null
+++ b/tests/cloud_tests/platforms/azurecloud/snapshot.py
@@ -0,0 +1,58 @@
+# This file is part of cloud-init. See LICENSE file for license information.
+
+"""Base Azure Cloud snapshot."""
+
+from ..snapshots import Snapshot
+
+from tests.cloud_tests import LOG
+
+
+class AzureCloudSnapshot(Snapshot):
+ """Azure Cloud image copy backed snapshot."""
+
+ platform_name = 'azurecloud'
+
+ def __init__(self, platform, properties, config, features, image_id,
+ delete_on_destroy=True):
+ """Set up snapshot.
+
+ @param platform: platform object
+ @param properties: image properties
+ @param config: image config
+ @param features: supported feature flags
+ """
+ super(AzureCloudSnapshot, self).__init__(
+ platform, properties, config, features)
+
+ self.image_id = image_id
+ self.delete_on_destroy = delete_on_destroy
+
+ def launch(self, user_data, meta_data=None, block=True, start=True,
+ use_desc=None):
+ """Launch instance.
+
+ @param user_data: user-data for the instance
+ @param meta_data: meta_data for the instance
+ @param block: wait until instance is created
+ @param start: start instance and wait until fully started
+ @param use_desc: description of snapshot instance use
+ @return_value: an Instance
+ """
+ if meta_data is not None:
+ raise ValueError("metadata not supported on Azure Cloud tests")
+
+ instance = self.platform.create_instance(
+ self.properties, self.config, self.features,
+ self.image_id, user_data)
+
+ return instance
+
+ def destroy(self):
+ """Clean up snapshot data."""
+ LOG.debug('destroying image %s', self.image_id)
+ if self.delete_on_destroy:
+ self.platform.compute_client.images.delete(
+ self.platform.resource_group.name,
+ self.image_id)
+
+# vi: ts=4 expandtab