merge the sknurt
This commit is contained in:
@@ -421,6 +421,9 @@ DEFINE_string('root_helper', 'sudo',
|
||||
|
||||
DEFINE_bool('use_ipv6', False, 'use ipv6')
|
||||
|
||||
DEFINE_integer('password_length', 12,
|
||||
'Length of generated instance admin passwords')
|
||||
|
||||
DEFINE_bool('monkey_patch', False,
|
||||
'Whether to log monkey patching')
|
||||
|
||||
|
||||
@@ -515,7 +515,7 @@ class ApiEc2TestCase(test.TestCase):
|
||||
# be good enough for that.
|
||||
for group in rv:
|
||||
if group.name == security_group_name:
|
||||
self.assertEquals(len(group.rules), 1)
|
||||
self.assertEquals(len(group.rules), 3)
|
||||
self.assertEquals(len(group.rules[0].grants), 1)
|
||||
self.assertEquals(str(group.rules[0].grants[0]), '%s-%s' %
|
||||
(other_security_group_name, 'fake'))
|
||||
|
||||
@@ -176,6 +176,20 @@ class ComputeTestCase(test.TestCase):
|
||||
self.assertEqual(pre_build_len,
|
||||
len(db.instance_get_all(context.get_admin_context())))
|
||||
|
||||
def test_create_instance_with_img_ref_associates_config_drive(self):
|
||||
"""Make sure create associates a config drive."""
|
||||
|
||||
instance_id = self._create_instance(params={'config_drive': '1234', })
|
||||
|
||||
try:
|
||||
self.compute.run_instance(self.context, instance_id)
|
||||
instances = db.instance_get_all(context.get_admin_context())
|
||||
instance = instances[0]
|
||||
|
||||
self.assertTrue(instance.config_drive)
|
||||
finally:
|
||||
db.instance_destroy(self.context, instance_id)
|
||||
|
||||
def test_create_instance_associates_config_drive(self):
|
||||
"""Make sure create associates a config drive."""
|
||||
|
||||
@@ -649,7 +663,6 @@ class ComputeTestCase(test.TestCase):
|
||||
|
||||
dbmock = self.mox.CreateMock(db)
|
||||
dbmock.instance_get(c, i_id).AndReturn(instance_ref)
|
||||
dbmock.instance_get_fixed_addresses(c, i_id).AndReturn(None)
|
||||
|
||||
self.compute.db = dbmock
|
||||
self.mox.ReplayAll()
|
||||
@@ -659,6 +672,9 @@ class ComputeTestCase(test.TestCase):
|
||||
|
||||
def test_pre_live_migration_instance_has_volume(self):
|
||||
"""Confirm setup_compute_volume is called when volume is mounted."""
|
||||
def fake_nw_info(*args, **kwargs):
|
||||
return [(0, {'ips':['dummy']})]
|
||||
|
||||
i_ref = self._get_dummy_instance()
|
||||
c = context.get_admin_context()
|
||||
|
||||
@@ -668,13 +684,13 @@ class ComputeTestCase(test.TestCase):
|
||||
drivermock = self.mox.CreateMock(self.compute_driver)
|
||||
|
||||
dbmock.instance_get(c, i_ref['id']).AndReturn(i_ref)
|
||||
dbmock.instance_get_fixed_addresses(c, i_ref['id']).AndReturn('dummy')
|
||||
for i in range(len(i_ref['volumes'])):
|
||||
vid = i_ref['volumes'][i]['id']
|
||||
volmock.setup_compute_volume(c, vid).InAnyOrder('g1')
|
||||
drivermock.plug_vifs(i_ref, [])
|
||||
drivermock.ensure_filtering_rules_for_instance(i_ref, [])
|
||||
drivermock.plug_vifs(i_ref, fake_nw_info())
|
||||
drivermock.ensure_filtering_rules_for_instance(i_ref, fake_nw_info())
|
||||
|
||||
self.stubs.Set(self.compute, '_get_instance_nw_info', fake_nw_info)
|
||||
self.compute.db = dbmock
|
||||
self.compute.volume_manager = volmock
|
||||
self.compute.driver = drivermock
|
||||
@@ -685,6 +701,9 @@ class ComputeTestCase(test.TestCase):
|
||||
|
||||
def test_pre_live_migration_instance_has_no_volume(self):
|
||||
"""Confirm log meg when instance doesn't mount any volumes."""
|
||||
def fake_nw_info(*args, **kwargs):
|
||||
return [(0, {'ips':['dummy']})]
|
||||
|
||||
i_ref = self._get_dummy_instance()
|
||||
i_ref['volumes'] = []
|
||||
c = context.get_admin_context()
|
||||
@@ -694,12 +713,12 @@ class ComputeTestCase(test.TestCase):
|
||||
drivermock = self.mox.CreateMock(self.compute_driver)
|
||||
|
||||
dbmock.instance_get(c, i_ref['id']).AndReturn(i_ref)
|
||||
dbmock.instance_get_fixed_addresses(c, i_ref['id']).AndReturn('dummy')
|
||||
self.mox.StubOutWithMock(compute_manager.LOG, 'info')
|
||||
compute_manager.LOG.info(_("%s has no volume."), i_ref['hostname'])
|
||||
drivermock.plug_vifs(i_ref, [])
|
||||
drivermock.ensure_filtering_rules_for_instance(i_ref, [])
|
||||
drivermock.plug_vifs(i_ref, fake_nw_info())
|
||||
drivermock.ensure_filtering_rules_for_instance(i_ref, fake_nw_info())
|
||||
|
||||
self.stubs.Set(self.compute, '_get_instance_nw_info', fake_nw_info)
|
||||
self.compute.db = dbmock
|
||||
self.compute.driver = drivermock
|
||||
|
||||
@@ -713,6 +732,8 @@ class ComputeTestCase(test.TestCase):
|
||||
It retries and raise exception when timeout exceeded.
|
||||
|
||||
"""
|
||||
def fake_nw_info(*args, **kwargs):
|
||||
return [(0, {'ips':['dummy']})]
|
||||
|
||||
i_ref = self._get_dummy_instance()
|
||||
c = context.get_admin_context()
|
||||
@@ -724,13 +745,13 @@ class ComputeTestCase(test.TestCase):
|
||||
drivermock = self.mox.CreateMock(self.compute_driver)
|
||||
|
||||
dbmock.instance_get(c, i_ref['id']).AndReturn(i_ref)
|
||||
dbmock.instance_get_fixed_addresses(c, i_ref['id']).AndReturn('dummy')
|
||||
for i in range(len(i_ref['volumes'])):
|
||||
volmock.setup_compute_volume(c, i_ref['volumes'][i]['id'])
|
||||
for i in range(FLAGS.live_migration_retry_count):
|
||||
drivermock.plug_vifs(i_ref, []).\
|
||||
drivermock.plug_vifs(i_ref, fake_nw_info()).\
|
||||
AndRaise(exception.ProcessExecutionError())
|
||||
|
||||
self.stubs.Set(self.compute, '_get_instance_nw_info', fake_nw_info)
|
||||
self.compute.db = dbmock
|
||||
self.compute.network_manager = netmock
|
||||
self.compute.volume_manager = volmock
|
||||
@@ -1360,12 +1381,16 @@ class ComputeTestCase(test.TestCase):
|
||||
db.block_device_mapping_destroy(self.context, bdm['id'])
|
||||
self.compute.terminate_instance(self.context, instance_id)
|
||||
|
||||
def test_ephemeral_size(self):
|
||||
def test_volume_size(self):
|
||||
local_size = 2
|
||||
inst_type = {'local_gb': local_size}
|
||||
self.assertEqual(self.compute_api._ephemeral_size(inst_type,
|
||||
swap_size = 3
|
||||
inst_type = {'local_gb': local_size, 'swap': swap_size}
|
||||
self.assertEqual(self.compute_api._volume_size(inst_type,
|
||||
'ephemeral0'),
|
||||
local_size)
|
||||
self.assertEqual(self.compute_api._ephemeral_size(inst_type,
|
||||
'ephemeral1'),
|
||||
self.assertEqual(self.compute_api._volume_size(inst_type,
|
||||
'ephemeral1'),
|
||||
0)
|
||||
self.assertEqual(self.compute_api._volume_size(inst_type,
|
||||
'swap'),
|
||||
swap_size)
|
||||
|
||||
@@ -269,7 +269,7 @@ class LibvirtConnTestCase(test.TestCase):
|
||||
instance_data = dict(self.test_instance)
|
||||
self._check_xml_and_container(instance_data)
|
||||
|
||||
def test_snapshot(self):
|
||||
def test_snapshot_in_raw_format(self):
|
||||
if not self.lazy_load_library_exists():
|
||||
return
|
||||
|
||||
@@ -302,6 +302,44 @@ class LibvirtConnTestCase(test.TestCase):
|
||||
snapshot = image_service.show(context, recv_meta['id'])
|
||||
self.assertEquals(snapshot['properties']['image_state'], 'available')
|
||||
self.assertEquals(snapshot['status'], 'active')
|
||||
self.assertEquals(snapshot['disk_format'], 'raw')
|
||||
self.assertEquals(snapshot['name'], snapshot_name)
|
||||
|
||||
def test_snapshot_in_qcow2_format(self):
|
||||
if not self.lazy_load_library_exists():
|
||||
return
|
||||
|
||||
self.flags(image_service='nova.image.fake.FakeImageService')
|
||||
self.flags(snapshot_image_format='qcow2')
|
||||
|
||||
# Start test
|
||||
image_service = utils.import_object(FLAGS.image_service)
|
||||
|
||||
# Assuming that base image already exists in image_service
|
||||
instance_ref = db.instance_create(self.context, self.test_instance)
|
||||
properties = {'instance_id': instance_ref['id'],
|
||||
'user_id': str(self.context.user_id)}
|
||||
snapshot_name = 'test-snap'
|
||||
sent_meta = {'name': snapshot_name, 'is_public': False,
|
||||
'status': 'creating', 'properties': properties}
|
||||
# Create new image. It will be updated in snapshot method
|
||||
# To work with it from snapshot, the single image_service is needed
|
||||
recv_meta = image_service.create(context, sent_meta)
|
||||
|
||||
self.mox.StubOutWithMock(connection.LibvirtConnection, '_conn')
|
||||
connection.LibvirtConnection._conn.lookupByName = self.fake_lookup
|
||||
self.mox.StubOutWithMock(connection.utils, 'execute')
|
||||
connection.utils.execute = self.fake_execute
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
conn = connection.LibvirtConnection(False)
|
||||
conn.snapshot(self.context, instance_ref, recv_meta['id'])
|
||||
|
||||
snapshot = image_service.show(context, recv_meta['id'])
|
||||
self.assertEquals(snapshot['properties']['image_state'], 'available')
|
||||
self.assertEquals(snapshot['status'], 'active')
|
||||
self.assertEquals(snapshot['disk_format'], 'qcow2')
|
||||
self.assertEquals(snapshot['name'], snapshot_name)
|
||||
|
||||
def test_snapshot_no_image_architecture(self):
|
||||
|
||||
Reference in New Issue
Block a user