summaryrefslogtreecommitdiff
path: root/tests/integration_tests/bugs/test_lp1901011.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration_tests/bugs/test_lp1901011.py')
-rw-r--r--tests/integration_tests/bugs/test_lp1901011.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/integration_tests/bugs/test_lp1901011.py b/tests/integration_tests/bugs/test_lp1901011.py
new file mode 100644
index 00000000..2b47f0a8
--- /dev/null
+++ b/tests/integration_tests/bugs/test_lp1901011.py
@@ -0,0 +1,58 @@
+"""Integration test for LP: #1901011
+
+Ensure an ephemeral disk exists after boot.
+
+See https://github.com/canonical/cloud-init/pull/800
+"""
+import pytest
+
+from tests.integration_tests.clouds import IntegrationCloud
+
+
+@pytest.mark.azure
+@pytest.mark.parametrize('instance_type,is_ephemeral', [
+ ('Standard_DS1_v2', True),
+ ('Standard_D2s_v4', False),
+])
+def test_ephemeral(instance_type, is_ephemeral,
+ session_cloud: IntegrationCloud, setup_image):
+ if is_ephemeral:
+ expected_log = (
+ "Ephemeral resource disk '/dev/disk/cloud/azure_resource' exists. "
+ "Merging default Azure cloud ephemeral disk configs."
+ )
+ else:
+ expected_log = (
+ "Ephemeral resource disk '/dev/disk/cloud/azure_resource' does "
+ "not exist. Not merging default Azure cloud ephemeral disk "
+ "configs."
+ )
+
+ with session_cloud.launch(
+ launch_kwargs={'instance_type': instance_type}
+ ) as client:
+ # Verify log file
+ log = client.read_from_file('/var/log/cloud-init.log')
+ assert expected_log in log
+
+ # Verify devices
+ dev_links = client.execute('ls /dev/disk/cloud')
+ assert 'azure_root' in dev_links
+ assert 'azure_root-part1' in dev_links
+ if is_ephemeral:
+ assert 'azure_resource' in dev_links
+ assert 'azure_resource-part1' in dev_links
+
+ # Verify mounts
+ blks = client.execute('lsblk -pPo NAME,TYPE,MOUNTPOINT')
+ root_device = client.execute(
+ 'realpath /dev/disk/cloud/azure_root-part1'
+ )
+ assert 'NAME="{}" TYPE="part" MOUNTPOINT="/"'.format(
+ root_device) in blks
+ if is_ephemeral:
+ ephemeral_device = client.execute(
+ 'realpath /dev/disk/cloud/azure_resource-part1'
+ )
+ assert 'NAME="{}" TYPE="part" MOUNTPOINT="/mnt"'.format(
+ ephemeral_device) in blks