functional tests: work with EBS image if needed
Some tests can't pass on non-EBS image with messages: The instance 'i-0' does not have an 'ebs' root device type and cannot be stopped. EBS block device mappings not supported for instance-store AMIs. Change-Id: I034c2df65a00140c20171c5fe4212bf084d2bdfb
This commit is contained in:
parent
346cee6eed
commit
6f5f9a29dc
|
@ -311,13 +311,13 @@ class InstanceAttributeTest(base.EC2TestCase):
|
|||
self.client.terminate_instances(InstanceIds=[instance_id])
|
||||
self.get_instance_waiter().wait_delete(instance_id)
|
||||
|
||||
@testtools.skipUnless(CONF.aws.image_id, "EBS image id is not defined")
|
||||
@testtools.skipUnless(CONF.aws.ebs_image_id, "EBS image id is not defined")
|
||||
@testtools.skipUnless(CONF.aws.instance_type_alt,
|
||||
"Alternative instance type is not defined")
|
||||
@testtools.skipUnless(CONF.aws.instance_type_alt != CONF.aws.instance_type,
|
||||
"Alternative instance type is not defined")
|
||||
def test_instance_type_attribute(self):
|
||||
instance_id = self.run_instance()
|
||||
instance_id = self.run_instance(ImageId=CONF.aws.ebs_image_id)
|
||||
|
||||
self.client.stop_instances(InstanceIds=[instance_id])
|
||||
self.get_instance_waiter().wait_available(instance_id,
|
||||
|
|
|
@ -186,9 +186,10 @@ class InstanceTest(base.EC2TestCase):
|
|||
self.cancelResourceCleanUp(res_clean)
|
||||
self.get_instance_waiter().wait_delete(instance_id)
|
||||
|
||||
@testtools.skipUnless(CONF.aws.ebs_image_id, "EBS image id is not defined")
|
||||
def test_stop_instance(self):
|
||||
instance_type = CONF.aws.instance_type
|
||||
image_id = CONF.aws.image_id
|
||||
image_id = CONF.aws.ebs_image_id
|
||||
data = self.client.run_instances(
|
||||
ImageId=image_id, InstanceType=instance_type,
|
||||
Placement={'AvailabilityZone': self.zone}, MinCount=1, MaxCount=1)
|
||||
|
@ -239,39 +240,3 @@ class InstanceTest(base.EC2TestCase):
|
|||
self.client.terminate_instances(InstanceIds=[instance_id])
|
||||
self.cancelResourceCleanUp(res_clean)
|
||||
self.get_instance_waiter().wait_delete(instance_id)
|
||||
|
||||
def test_launch_instance_with_creating_blank_volume(self):
|
||||
"""Launch instance with creating blank volume."""
|
||||
data = self.client.describe_images(ImageIds=[CONF.aws.image_id])
|
||||
# NOTE(ft): ec2 api doesn't report root device name if it isn't
|
||||
# explicity contained in an image. So we assume it is /dev/vda,
|
||||
# which is true for only qemu hypervisor though.
|
||||
device_name_prefix = base.get_device_name_prefix(
|
||||
data['Images'][0].get('RootDeviceName', '/dev/vda'))
|
||||
device_name = device_name_prefix + 'b'
|
||||
instance_type = CONF.aws.instance_type
|
||||
data = self.client.run_instances(
|
||||
ImageId=CONF.aws.image_id, InstanceType=instance_type,
|
||||
Placement={'AvailabilityZone': self.zone}, MinCount=1, MaxCount=1,
|
||||
BlockDeviceMappings=[{'DeviceName': device_name,
|
||||
'Ebs': {'VolumeSize': 1}}])
|
||||
instance_id = data['Instances'][0]['InstanceId']
|
||||
res_clean = self.addResourceCleanUp(self.client.terminate_instances,
|
||||
InstanceIds=[instance_id])
|
||||
self.get_instance_waiter().wait_available(instance_id,
|
||||
final_set=('running'))
|
||||
|
||||
bdt = self.get_instance_bdm(instance_id, device_name)
|
||||
self.assertIsNotNone(bdt)
|
||||
volume_id = bdt['Ebs'].get('VolumeId')
|
||||
self.assertIsNotNone(volume_id)
|
||||
self.assertTrue(bdt['Ebs']['DeleteOnTermination'])
|
||||
|
||||
data = self.client.describe_volumes(VolumeIds=[volume_id])
|
||||
self.assertEqual(1, len(data['Volumes']))
|
||||
volume = data['Volumes'][0]
|
||||
self.assertEqual(1, volume['Size'])
|
||||
|
||||
self.client.terminate_instances(InstanceIds=[instance_id])
|
||||
self.cancelResourceCleanUp(res_clean)
|
||||
self.get_instance_waiter().wait_delete(instance_id)
|
||||
|
|
Loading…
Reference in New Issue