Fix up ec2 tests for flavors on instances

Change-Id: I5c5526a970e68bc067449cea2ac271233cf60970
This commit is contained in:
Dan Smith 2015-06-16 09:37:26 -07:00
parent db74457d90
commit 06a8518697
2 changed files with 170 additions and 160 deletions

View File

@ -21,6 +21,7 @@ import uuid
import fixtures
from oslo_config import cfg
from oslo_serialization import jsonutils
from nova.api.ec2 import cloud
from nova.api.ec2 import ec2utils
@ -497,23 +498,29 @@ class CinderCloudTestCase(test.TestCase):
def _setUpBlockDeviceMapping(self):
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
sys_meta = flavors.save_flavor_info(
{}, flavors.get_flavor(1))
flavorinfo = jsonutils.dumps({
'cur': flavors.get_flavor(1).obj_to_primitive(),
'old': None,
'new': None,
})
inst0 = db.instance_create(self.context,
{'image_ref': image_uuid,
'instance_type_id': 1,
'root_device_name': '/dev/sdb1',
'system_metadata': sys_meta})
'extra': {'flavor': flavorinfo},
'system_metadata': {}})
inst1 = db.instance_create(self.context,
{'image_ref': image_uuid,
'instance_type_id': 1,
'root_device_name': '/dev/sdc1',
'system_metadata': sys_meta})
'extra': {'flavor': flavorinfo},
'system_metadata': {}})
inst2 = db.instance_create(self.context,
{'image_ref': '',
'instance_type_id': 1,
'root_device_name': '/dev/vda',
'system_metadata': sys_meta})
'extra': {'flavor': flavorinfo},
'system_metadata': {}})
instance0_uuid = inst0['uuid']
mappings0 = [

View File

@ -908,26 +908,30 @@ class CloudTestCase(test.TestCase):
self._stub_instance_get_with_fixed_ips('get')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
sys_meta = flavors.save_flavor_info(
{}, flavors.get_flavor(1))
sys_meta['EC2_client_token'] = "client-token-1"
inst1 = db.instance_create(self.context, {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
'host': 'host1',
'hostname': 'server-1234',
'vm_state': 'active',
'system_metadata': sys_meta})
sys_meta['EC2_client_token'] = "client-token-2"
inst2 = db.instance_create(self.context, {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
'host': 'host2',
'hostname': 'server-4321',
'vm_state': 'active',
'system_metadata': sys_meta})
inst1 = objects.Instance(context=self.context,
reservation_id='a',
image_ref=image_uuid,
instance_type_id=1,
host='host1',
hostname='server-1234',
vm_state='active',
system_metadata={
'EC2_client_token': 'client-token-1',
},
flavor=flavors.get_flavor(1))
inst1.create()
inst2 = objects.Instance(context=self.context,
reservation_id='a',
image_ref=image_uuid,
instance_type_id=1,
host='host2',
hostname='server-4321',
vm_state='active',
system_metadata={
'EC2_client_token': 'client-token-2',
},
flavor=flavors.get_flavor(1))
inst2.create()
comp1 = db.service_create(self.context, {'host': 'host1',
'topic': "compute"})
agg = db.aggregate_create(self.context,
@ -1019,39 +1023,37 @@ class CloudTestCase(test.TestCase):
utc = iso8601.iso8601.Utc()
flavor = flavors.get_flavor(1)
# Create some test images
sys_meta = flavors.save_flavor_info(
{}, flavor)
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
inst1_kwargs = {
'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': flavor.id,
'host': 'host1',
'vm_state': 'active',
'launched_at': timeutils.utcnow(),
'hostname': 'server-1111',
'created_at': datetime.datetime(2012, 5, 1, 1, 1, 1,
inst1 = objects.Instance(context=self.context,
reservation_id='a',
image_ref=image_uuid,
instance_type_id=flavor.id,
host='host1',
vm_state='active',
launched_at=timeutils.utcnow(),
hostname='server-1111',
created_at=datetime.datetime(
2012, 5, 1, 1, 1, 1,
tzinfo=utc),
'system_metadata': sys_meta
}
inst2_kwargs = {
'reservation_id': 'b',
'image_ref': image_uuid,
'instance_type_id': flavor.id,
'host': 'host2',
'vm_state': 'active',
'launched_at': timeutils.utcnow(),
'hostname': 'server-1112',
'created_at': datetime.datetime(2012, 5, 1, 1, 1, 2,
flavor=flavor,
system_metadata={})
inst1.create()
inst2 = objects.Instance(context=self.context,
reservation_id='b',
image_ref=image_uuid,
instance_type_id=flavor.id,
host='host2',
vm_state='active',
launched_at=timeutils.utcnow(),
hostname='server-1112',
created_at=datetime.datetime(
2012, 5, 1, 1, 1, 2,
tzinfo=utc),
'system_metadata': sys_meta
}
flavor=flavor,
system_metadata={})
inst2.create()
inst1 = db.instance_create(self.context, inst1_kwargs)
ec2_id1 = ec2utils.id_to_ec2_inst_id(inst1['uuid'])
inst2 = db.instance_create(self.context, inst2_kwargs)
ec2_id2 = ec2utils.id_to_ec2_inst_id(inst2['uuid'])
# Create some tags
@ -1218,41 +1220,36 @@ class CloudTestCase(test.TestCase):
self._stub_instance_get_with_fixed_ips('get')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
sys_meta = flavors.save_flavor_info(
{}, flavors.get_flavor(1))
inst_base = {
'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
'vm_state': 'active',
'system_metadata': sys_meta,
}
inst_base = objects.Instance(context=self.context,
reservation_id='a',
image_ref=image_uuid,
instance_type_id=1,
vm_state='active',
system_metadata={},
flavor=flavors.get_flavor(1))
utc = iso8601.iso8601.Utc()
inst1_kwargs = {}
inst1_kwargs.update(inst_base)
inst1_kwargs['host'] = 'host1'
inst1_kwargs['hostname'] = 'server-1111'
inst1_kwargs['created_at'] = datetime.datetime(2012, 5, 1, 1, 1, 1,
inst1 = inst_base.obj_clone()
inst1.host = 'host1'
inst1.hostname = 'server-1111'
inst1.created_at = datetime.datetime(2012, 5, 1, 1, 1, 1,
tzinfo=utc)
inst1 = db.instance_create(self.context, inst1_kwargs)
inst1.create()
inst2_kwargs = {}
inst2_kwargs.update(inst_base)
inst2_kwargs['host'] = 'host2'
inst2_kwargs['hostname'] = 'server-2222'
inst2_kwargs['created_at'] = datetime.datetime(2012, 2, 1, 1, 1, 1,
inst2 = inst_base.obj_clone()
inst2.host = 'host2'
inst2.hostname = 'server-2222'
inst2.created_at = datetime.datetime(2012, 2, 1, 1, 1, 1,
tzinfo=utc)
inst2 = db.instance_create(self.context, inst2_kwargs)
inst2.create()
inst3_kwargs = {}
inst3_kwargs.update(inst_base)
inst3_kwargs['host'] = 'host3'
inst3_kwargs['hostname'] = 'server-3333'
inst3_kwargs['created_at'] = datetime.datetime(2012, 2, 5, 1, 1, 1,
inst3 = inst_base.obj_clone()
inst3.host = 'host3'
inst3.hostname = 'server-3333'
inst3.created_at = datetime.datetime(2012, 2, 5, 1, 1, 1,
tzinfo=utc)
inst3 = db.instance_create(self.context, inst3_kwargs)
inst3.create()
comp1 = db.service_create(self.context, {'host': 'host1',
'topic': "compute"})
@ -1262,15 +1259,15 @@ class CloudTestCase(test.TestCase):
result = self.cloud.describe_instances(self.context)
result = result['reservationSet'][0]['instancesSet']
self.assertEqual(result[0]['launchTime'], inst2_kwargs['created_at'])
self.assertEqual(result[1]['launchTime'], inst3_kwargs['created_at'])
self.assertEqual(result[2]['launchTime'], inst1_kwargs['created_at'])
self.assertEqual(result[0]['launchTime'], inst2.created_at)
self.assertEqual(result[1]['launchTime'], inst3.created_at)
self.assertEqual(result[2]['launchTime'], inst1.created_at)
db.instance_destroy(self.context, inst1['uuid'])
db.instance_destroy(self.context, inst2['uuid'])
db.instance_destroy(self.context, inst3['uuid'])
db.service_destroy(self.context, comp1['id'])
db.service_destroy(self.context, comp2['id'])
db.instance_destroy(self.context, inst1.uuid)
db.instance_destroy(self.context, inst2.uuid)
db.instance_destroy(self.context, inst3.uuid)
db.service_destroy(self.context, comp1.id)
db.service_destroy(self.context, comp2.id)
def test_describe_instance_state(self):
# Makes sure describe_instances for instanceState works.
@ -1278,14 +1275,15 @@ class CloudTestCase(test.TestCase):
def test_instance_state(expected_code, expected_name,
power_state_, vm_state_, values=None):
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
sys_meta = flavors.save_flavor_info(
{}, flavors.get_flavor(1))
values = values or {}
values.update({'image_ref': image_uuid, 'instance_type_id': 1,
'power_state': power_state_, 'vm_state': vm_state_,
'system_metadata': sys_meta})
inst = db.instance_create(self.context, values)
inst = objects.Instance(context=self.context,
flavor=flavors.get_flavor(1),
image_ref=image_uuid,
instance_type_id=1,
power_state=power_state_,
vm_state=vm_state_,
system_metadata={},
**(values or {}))
inst.create()
instance_id = ec2utils.id_to_ec2_inst_id(inst['uuid'])
result = self.cloud.describe_instances(self.context,
instance_id=[instance_id])
@ -1297,7 +1295,7 @@ class CloudTestCase(test.TestCase):
self.assertEqual(code, expected_code)
self.assertEqual(name, expected_name)
db.instance_destroy(self.context, inst['uuid'])
db.instance_destroy(self.context, inst.uuid)
test_instance_state(inst_state.RUNNING_CODE, inst_state.RUNNING,
power_state.RUNNING, vm_states.ACTIVE)
@ -1313,73 +1311,78 @@ class CloudTestCase(test.TestCase):
self._stub_instance_get_with_fixed_ips('get')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
sys_meta = flavors.save_flavor_info(
{}, flavors.get_flavor(1))
inst1 = db.instance_create(self.context, {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
'hostname': 'server-1234',
'vm_state': 'active',
'system_metadata': sys_meta})
inst = objects.Instance(context=self.context,
reservation_id='a',
image_ref=image_uuid,
instance_type_id=1,
hostname='server-1234',
vm_state='active',
system_metadata={},
flavor=flavors.get_flavor(1))
inst.create()
comp1 = db.service_create(self.context, {'host': 'host1',
'topic': "compute"})
result = self.cloud.describe_instances(self.context)
result = result['reservationSet'][0]
self.assertEqual(len(result['instancesSet']), 1)
instance = result['instancesSet'][0]
instance_id = ec2utils.id_to_ec2_inst_id(inst1['uuid'])
instance_id = ec2utils.id_to_ec2_inst_id(inst.uuid)
self.assertEqual(instance['instanceId'], instance_id)
self.assertEqual(instance['ipAddress'], '1.2.3.4')
self.assertEqual(instance['dnsName'], '1.2.3.4')
self.assertEqual(instance['privateDnsName'], 'server-1234')
self.assertEqual(instance['privateIpAddress'], '192.168.0.3')
self.assertNotIn('dnsNameV6', instance)
db.instance_destroy(self.context, inst1['uuid'])
db.instance_destroy(self.context, inst.uuid)
db.service_destroy(self.context, comp1['id'])
def test_describe_instances_deleted(self):
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
sys_meta = flavors.save_flavor_info(
{}, flavors.get_flavor(1))
args1 = {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
'host': 'host1',
'vm_state': 'active',
'system_metadata': sys_meta}
inst1 = db.instance_create(self.context, args1)
args2 = {'reservation_id': 'b',
'image_ref': image_uuid,
'instance_type_id': 1,
'host': 'host1',
'vm_state': 'active',
'system_metadata': sys_meta}
inst2 = db.instance_create(self.context, args2)
db.instance_destroy(self.context, inst1['uuid'])
inst1 = objects.Instance(context=self.context,
reservation_id='a',
image_ref=image_uuid,
instance_type_id=1,
host='host1',
vm_state='active',
system_metadata={},
flavor=flavors.get_flavor(1))
inst1.create()
inst2 = objects.Instance(context=self.context,
reservation_id='b',
image_ref=image_uuid,
instance_type_id=1,
host='host2',
vm_state='active',
system_metadata={},
flavor=flavors.get_flavor(1))
inst2.create()
db.instance_destroy(self.context, inst1.uuid)
result = self.cloud.describe_instances(self.context)
self.assertEqual(len(result['reservationSet']), 1)
result1 = result['reservationSet'][0]['instancesSet']
self.assertEqual(result1[0]['instanceId'],
ec2utils.id_to_ec2_inst_id(inst2['uuid']))
ec2utils.id_to_ec2_inst_id(inst2.uuid))
def test_describe_instances_with_image_deleted(self):
image_uuid = 'aebef54a-ed67-4d10-912f-14455edce176'
sys_meta = flavors.save_flavor_info(
{}, flavors.get_flavor(1))
args1 = {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
'host': 'host1',
'vm_state': 'active',
'system_metadata': sys_meta}
db.instance_create(self.context, args1)
args2 = {'reservation_id': 'b',
'image_ref': image_uuid,
'instance_type_id': 1,
'host': 'host1',
'vm_state': 'active',
'system_metadata': sys_meta}
db.instance_create(self.context, args2)
inst1 = objects.Instance(context=self.context,
reservation_id='a',
image_ref=image_uuid,
instance_type_id=1,
host='host1',
vm_state='active',
system_metadata={},
flavor=flavors.get_flavor(1))
inst1.create()
inst2 = objects.Instance(context=self.context,
reservation_id='b',
image_ref=image_uuid,
instance_type_id=1,
host='host1',
vm_state='active',
system_metadata={},
flavor=flavors.get_flavor(1))
inst2.create()
result = self.cloud.describe_instances(self.context)
self.assertEqual(len(result['reservationSet']), 2)
@ -1389,23 +1392,22 @@ class CloudTestCase(test.TestCase):
self._stub_instance_get_with_fixed_ips('get', get_floating=False)
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
sys_meta = flavors.save_flavor_info(
{}, flavors.get_flavor(1))
db.instance_create(self.context, {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
'host': 'host1',
'hostname': 'server-1234',
'vm_state': 'active',
'system_metadata': sys_meta})
inst = objects.Instance(context=self.context,
reservation='a',
image_ref=image_uuid,
instance_type_id=1,
host='host1',
hostname='server-1234',
vm_state='active',
system_metadata={},
flavor=flavors.get_flavor(1))
inst.create()
result = self.cloud.describe_instances(self.context)
result = result['reservationSet'][0]
instance = result['instancesSet'][0]
self.assertIsNone(instance['dnsName'])
def test_describe_instances_booting_from_a_volume(self):
sys_meta = flavors.save_flavor_info(
{}, flavors.get_flavor(1))
inst = objects.Instance(self.context)
inst.reservation_id = 'a'
inst.image_ref = ''
@ -1413,7 +1415,8 @@ class CloudTestCase(test.TestCase):
inst.instance_type_id = 1
inst.vm_state = vm_states.ACTIVE
inst.host = 'host1'
inst.system_metadata = sys_meta
inst.system_metadata = {}
inst.flavor = flavors.get_flavor(1)
inst.create()
result = self.cloud.describe_instances(self.context)
result = result['reservationSet'][0]
@ -2728,7 +2731,6 @@ class CloudTestCase(test.TestCase):
self.assertTrue(want_objects)
inst_type = flavors.get_default_flavor()
inst_type['name'] = 'fake_type'
sys_meta = flavors.save_flavor_info({}, inst_type)
secgroups = objects.SecurityGroupList()
secgroups.objects.append(
objects.SecurityGroup(name='fake0'))
@ -2745,7 +2747,8 @@ class CloudTestCase(test.TestCase):
instance.user_data = 'fake-user data'
instance.shutdown_terminate = False
instance.disable_terminate = False
instance.system_metadata = sys_meta
instance.system_metadata = {}
instance.flavor = inst_type
return instance
self.stubs.Set(self.cloud.compute_api, 'get', fake_get)