def test_detach_random_volume_ec2_invalid_id(aws_client): client = MagicMock() aws_client.return_value = client instance_ids = ['i-987654321fedcba'] client.describe_instances.return_value = {'Reservations': []} with pytest.raises(FailedActivity) as x: detach_random_volume(instance_ids=instance_ids) assert "no instances found matching: {'InstanceIds': %s}" % ( instance_ids) in str(x.value)
def test_detach_random_volume_ec2_invalid_filters(aws_client): client = MagicMock() aws_client.return_value = client filters = [{ 'Name': 'block-device-mapping.device-name', 'Values': ['/dev/sdb'] }] client.describe_instances.return_value = {'Reservations': []} with pytest.raises(FailedActivity) as x: detach_random_volume(filters=filters) assert str(filters) in str(x.value)
def test_detach_random_volume_ec2_invalid_filters(aws_client): client = MagicMock() aws_client.return_value = client filters = [{ "Name": "block-device-mapping.device-name", "Values": ["/dev/sdb"] }] client.describe_instances.return_value = {"Reservations": []} with pytest.raises(FailedActivity) as x: detach_random_volume(filters=filters) assert "block-device-mapping.device-name" in str(x.value) assert "/dev/sdb" in str(x.value)
def test_detach_random_volume_ec2_filter(aws_client): client = MagicMock() aws_client.return_value = client filters = [{ 'Name': 'block-device-mapping.device-name', 'Values': ['/dev/sdb']}] client.describe_instances.return_value = { 'Reservations': [{ 'Instances': [{ 'InstanceId': 'i-987654321fedcba', 'BlockDeviceMappings': [ { 'DeviceName': '/dev/xvda', 'Ebs': {'VolumeId': 'vol-00000001'} }, { 'DeviceName': '/dev/sdb', 'Ebs': {'VolumeId': 'vol-00000002'} }]}]}]} client.detach_volume.return_value = { 'Device': '/dev/sdb', 'InstanceId': 'i-987654321fedcba', 'State': 'detaching', 'VolumeId': 'vol-00000002'} results = detach_random_volume(filters=filters) client.describe_instances.assert_called_with( Filters=filters) client.detach_volume.assert_called_with( Device='/dev/sdb', Force=True, InstanceId='i-987654321fedcba', VolumeId='vol-00000002') assert results[0]['Device'] == '/dev/sdb'
def test_detach_random_volume_ec2_id(aws_client): client = MagicMock() aws_client.return_value = client instance_ids = ['i-987654321fedcba'] client.describe_instances.return_value = { 'Reservations': [{ 'Instances': [{ 'InstanceId': 'i-987654321fedcba', 'BlockDeviceMappings': [ { 'DeviceName': '/dev/xvda', 'Ebs': {'VolumeId': 'vol-00000001'} }, { 'DeviceName': '/dev/sdc', 'Ebs': {'VolumeId': 'vol-00000002'} }]}]}]} client.detach_volume.return_value = { 'Device': '/dev/sdc', 'InstanceId': 'i-987654321fedcba', 'State': 'detaching', 'VolumeId': 'vol-00000002'} results = detach_random_volume(instance_ids=instance_ids) client.describe_instances.assert_called_with( InstanceIds=['i-987654321fedcba']) client.detach_volume.assert_called_with( Device='/dev/sdc', Force=True, InstanceId='i-987654321fedcba', VolumeId='vol-00000002') assert results[0]['Device'] == '/dev/sdc'
def test_detach_random_volume_ec2_filter(aws_client): client = MagicMock() aws_client.return_value = client filters = [{ "Name": "block-device-mapping.device-name", "Values": ["/dev/sdb"] }] client.describe_instances.return_value = { "Reservations": [{ "Instances": [{ "InstanceId": "i-987654321fedcba", "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "VolumeId": "vol-00000001" }, }, { "DeviceName": "/dev/sdb", "Ebs": { "VolumeId": "vol-00000002" }, }, ], }] }] } client.detach_volume.return_value = { "Device": "/dev/sdb", "InstanceId": "i-987654321fedcba", "State": "detaching", "VolumeId": "vol-00000002", } results = detach_random_volume(filters=filters) client.describe_instances.assert_called_with(Filters=filters) client.detach_volume.assert_called_with( Device="/dev/sdb", Force=True, InstanceId="i-987654321fedcba", VolumeId="vol-00000002", ) assert results[0]["Device"] == "/dev/sdb"