"""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