summaryrefslogtreecommitdiff
path: root/tests/cloud_tests/platforms/azurecloud/snapshot.py
diff options
context:
space:
mode:
authorahosmanmsft <ahosman@microsoft.com>2019-11-26 11:36:00 -0700
committerChad Smith <chad.smith@canonical.com>2019-11-26 11:36:00 -0700
commitaa3e4961ceae5a5c5b5cf13221b5f6721991fe75 (patch)
tree43bcc20bbdeeb44e02911dfb55759377f8aa1a5c /tests/cloud_tests/platforms/azurecloud/snapshot.py
parentb6055c40189afba323986059434b8d8adc85bba3 (diff)
downloadvyos-cloud-init-aa3e4961ceae5a5c5b5cf13221b5f6721991fe75.tar.gz
vyos-cloud-init-aa3e4961ceae5a5c5b5cf13221b5f6721991fe75.zip
cloud_tests: add azure platform support to integration tests
Added Azure to cloud tests supporting upstream integration testing. Implement the inherited platform classes, Azure configurations to release/platform, and docs on how to run Azure CI.
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