Rebased to trunk rev 971
This commit is contained in:
1
Authors
1
Authors
@@ -31,6 +31,7 @@ Jay Pipes <jaypipes@gmail.com>
|
|||||||
Jesse Andrews <anotherjesse@gmail.com>
|
Jesse Andrews <anotherjesse@gmail.com>
|
||||||
Joe Heck <heckj@mac.com>
|
Joe Heck <heckj@mac.com>
|
||||||
Joel Moore <joelbm24@gmail.com>
|
Joel Moore <joelbm24@gmail.com>
|
||||||
|
Johannes Erdfelt <johannes.erdfelt@rackspace.com>
|
||||||
John Dewey <john@dewey.ws>
|
John Dewey <john@dewey.ws>
|
||||||
John Tran <jtran@attinteractive.com>
|
John Tran <jtran@attinteractive.com>
|
||||||
Jonathan Bryce <jbryce@jbryce.com>
|
Jonathan Bryce <jbryce@jbryce.com>
|
||||||
|
|||||||
@@ -701,15 +701,6 @@ class ServiceCommands(object):
|
|||||||
{"method": "update_available_resource"})
|
{"method": "update_available_resource"})
|
||||||
|
|
||||||
|
|
||||||
class LogCommands(object):
|
|
||||||
def request(self, request_id, logfile='/var/log/nova.log'):
|
|
||||||
"""Show all fields in the log for the given request. Assumes you
|
|
||||||
haven't changed the log format too much.
|
|
||||||
ARGS: request_id [logfile]"""
|
|
||||||
lines = utils.execute("cat %s | grep '\[%s '" % (logfile, request_id))
|
|
||||||
print re.sub('#012', "\n", "\n".join(lines))
|
|
||||||
|
|
||||||
|
|
||||||
class DbCommands(object):
|
class DbCommands(object):
|
||||||
"""Class for managing the database."""
|
"""Class for managing the database."""
|
||||||
|
|
||||||
@@ -878,7 +869,7 @@ class InstanceTypeCommands(object):
|
|||||||
elif name == "--all":
|
elif name == "--all":
|
||||||
inst_types = instance_types.get_all_types(True)
|
inst_types = instance_types.get_all_types(True)
|
||||||
else:
|
else:
|
||||||
inst_types = instance_types.get_instance_type(name)
|
inst_types = instance_types.get_instance_type_by_name(name)
|
||||||
except exception.DBError, e:
|
except exception.DBError, e:
|
||||||
_db_error(e)
|
_db_error(e)
|
||||||
if isinstance(inst_types.values()[0], dict):
|
if isinstance(inst_types.values()[0], dict):
|
||||||
@@ -894,20 +885,17 @@ class ImageCommands(object):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.image_service = utils.import_object(FLAGS.image_service)
|
self.image_service = utils.import_object(FLAGS.image_service)
|
||||||
|
|
||||||
def _register(self, image_type, disk_format, container_format,
|
def _register(self, container_format, disk_format,
|
||||||
path, owner, name=None, is_public='T',
|
path, owner, name=None, is_public='T',
|
||||||
architecture='x86_64', kernel_id=None, ramdisk_id=None):
|
architecture='x86_64', kernel_id=None, ramdisk_id=None):
|
||||||
meta = {'is_public': True,
|
meta = {'is_public': (is_public == 'T'),
|
||||||
'name': name,
|
'name': name,
|
||||||
'disk_format': disk_format,
|
|
||||||
'container_format': container_format,
|
'container_format': container_format,
|
||||||
|
'disk_format': disk_format,
|
||||||
'properties': {'image_state': 'available',
|
'properties': {'image_state': 'available',
|
||||||
'owner_id': owner,
|
'project_id': owner,
|
||||||
'type': image_type,
|
|
||||||
'architecture': architecture,
|
'architecture': architecture,
|
||||||
'image_location': 'local',
|
'image_location': 'local'}}
|
||||||
'is_public': (is_public == 'T')}}
|
|
||||||
print image_type, meta
|
|
||||||
if kernel_id:
|
if kernel_id:
|
||||||
meta['properties']['kernel_id'] = int(kernel_id)
|
meta['properties']['kernel_id'] = int(kernel_id)
|
||||||
if ramdisk_id:
|
if ramdisk_id:
|
||||||
@@ -932,16 +920,18 @@ class ImageCommands(object):
|
|||||||
ramdisk_id = self.ramdisk_register(ramdisk, owner, None,
|
ramdisk_id = self.ramdisk_register(ramdisk, owner, None,
|
||||||
is_public, architecture)
|
is_public, architecture)
|
||||||
self.image_register(image, owner, name, is_public,
|
self.image_register(image, owner, name, is_public,
|
||||||
architecture, kernel_id, ramdisk_id)
|
architecture, 'ami', 'ami',
|
||||||
|
kernel_id, ramdisk_id)
|
||||||
|
|
||||||
def image_register(self, path, owner, name=None, is_public='T',
|
def image_register(self, path, owner, name=None, is_public='T',
|
||||||
architecture='x86_64', kernel_id=None, ramdisk_id=None,
|
architecture='x86_64', container_format='bare',
|
||||||
disk_format='ami', container_format='ami'):
|
disk_format='raw', kernel_id=None, ramdisk_id=None):
|
||||||
"""Uploads an image into the image_service
|
"""Uploads an image into the image_service
|
||||||
arguments: path owner [name] [is_public='T'] [architecture='x86_64']
|
arguments: path owner [name] [is_public='T'] [architecture='x86_64']
|
||||||
|
[container_format='bare'] [disk_format='raw']
|
||||||
[kernel_id=None] [ramdisk_id=None]
|
[kernel_id=None] [ramdisk_id=None]
|
||||||
[disk_format='ami'] [container_format='ami']"""
|
"""
|
||||||
return self._register('machine', disk_format, container_format, path,
|
return self._register(container_format, disk_format, path,
|
||||||
owner, name, is_public, architecture,
|
owner, name, is_public, architecture,
|
||||||
kernel_id, ramdisk_id)
|
kernel_id, ramdisk_id)
|
||||||
|
|
||||||
@@ -950,7 +940,7 @@ class ImageCommands(object):
|
|||||||
"""Uploads a kernel into the image_service
|
"""Uploads a kernel into the image_service
|
||||||
arguments: path owner [name] [is_public='T'] [architecture='x86_64']
|
arguments: path owner [name] [is_public='T'] [architecture='x86_64']
|
||||||
"""
|
"""
|
||||||
return self._register('kernel', 'aki', 'aki', path, owner, name,
|
return self._register('aki', 'aki', path, owner, name,
|
||||||
is_public, architecture)
|
is_public, architecture)
|
||||||
|
|
||||||
def ramdisk_register(self, path, owner, name=None, is_public='T',
|
def ramdisk_register(self, path, owner, name=None, is_public='T',
|
||||||
@@ -958,7 +948,7 @@ class ImageCommands(object):
|
|||||||
"""Uploads a ramdisk into the image_service
|
"""Uploads a ramdisk into the image_service
|
||||||
arguments: path owner [name] [is_public='T'] [architecture='x86_64']
|
arguments: path owner [name] [is_public='T'] [architecture='x86_64']
|
||||||
"""
|
"""
|
||||||
return self._register('ramdisk', 'ari', 'ari', path, owner, name,
|
return self._register('ari', 'ari', path, owner, name,
|
||||||
is_public, architecture)
|
is_public, architecture)
|
||||||
|
|
||||||
def _lookup(self, old_image_id):
|
def _lookup(self, old_image_id):
|
||||||
@@ -975,16 +965,17 @@ class ImageCommands(object):
|
|||||||
'ramdisk': 'ari'}
|
'ramdisk': 'ari'}
|
||||||
container_format = mapping[old['type']]
|
container_format = mapping[old['type']]
|
||||||
disk_format = container_format
|
disk_format = container_format
|
||||||
|
if container_format == 'ami' and not old.get('kernelId'):
|
||||||
|
container_format = 'bare'
|
||||||
|
disk_format = 'raw'
|
||||||
new = {'disk_format': disk_format,
|
new = {'disk_format': disk_format,
|
||||||
'container_format': container_format,
|
'container_format': container_format,
|
||||||
'is_public': True,
|
'is_public': old['isPublic'],
|
||||||
'name': old['imageId'],
|
'name': old['imageId'],
|
||||||
'properties': {'image_state': old['imageState'],
|
'properties': {'image_state': old['imageState'],
|
||||||
'owner_id': old['imageOwnerId'],
|
'project_id': old['imageOwnerId'],
|
||||||
'architecture': old['architecture'],
|
'architecture': old['architecture'],
|
||||||
'type': old['type'],
|
'image_location': old['imageLocation']}}
|
||||||
'image_location': old['imageLocation'],
|
|
||||||
'is_public': old['isPublic']}}
|
|
||||||
if old.get('kernelId'):
|
if old.get('kernelId'):
|
||||||
new['properties']['kernel_id'] = self._lookup(old['kernelId'])
|
new['properties']['kernel_id'] = self._lookup(old['kernelId'])
|
||||||
if old.get('ramdiskId'):
|
if old.get('ramdiskId'):
|
||||||
@@ -1049,7 +1040,6 @@ CATEGORIES = [
|
|||||||
('network', NetworkCommands),
|
('network', NetworkCommands),
|
||||||
('vm', VmCommands),
|
('vm', VmCommands),
|
||||||
('service', ServiceCommands),
|
('service', ServiceCommands),
|
||||||
('log', LogCommands),
|
|
||||||
('db', DbCommands),
|
('db', DbCommands),
|
||||||
('volume', VolumeCommands),
|
('volume', VolumeCommands),
|
||||||
('instance_type', InstanceTypeCommands),
|
('instance_type', InstanceTypeCommands),
|
||||||
|
|||||||
@@ -247,6 +247,37 @@ class CloudTestCase(test.TestCase):
|
|||||||
self.assertRaises(NotFound, describe_images,
|
self.assertRaises(NotFound, describe_images,
|
||||||
self.context, ['ami-fake'])
|
self.context, ['ami-fake'])
|
||||||
|
|
||||||
|
def test_describe_image_attribute(self):
|
||||||
|
describe_image_attribute = self.cloud.describe_image_attribute
|
||||||
|
|
||||||
|
def fake_show(meh, context, id):
|
||||||
|
return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1,
|
||||||
|
'type': 'machine'}, 'is_public': True}
|
||||||
|
|
||||||
|
self.stubs.Set(local.LocalImageService, 'show', fake_show)
|
||||||
|
self.stubs.Set(local.LocalImageService, 'show_by_name', fake_show)
|
||||||
|
result = describe_image_attribute(self.context, 'ami-00000001',
|
||||||
|
'launchPermission')
|
||||||
|
self.assertEqual([{'group': 'all'}], result['launchPermission'])
|
||||||
|
|
||||||
|
def test_modify_image_attribute(self):
|
||||||
|
modify_image_attribute = self.cloud.modify_image_attribute
|
||||||
|
|
||||||
|
def fake_show(meh, context, id):
|
||||||
|
return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1,
|
||||||
|
'type': 'machine'}, 'is_public': False}
|
||||||
|
|
||||||
|
def fake_update(meh, context, image_id, metadata, data=None):
|
||||||
|
return metadata
|
||||||
|
|
||||||
|
self.stubs.Set(local.LocalImageService, 'show', fake_show)
|
||||||
|
self.stubs.Set(local.LocalImageService, 'show_by_name', fake_show)
|
||||||
|
self.stubs.Set(local.LocalImageService, 'update', fake_update)
|
||||||
|
result = modify_image_attribute(self.context, 'ami-00000001',
|
||||||
|
'launchPermission', 'add',
|
||||||
|
user_group=['all'])
|
||||||
|
self.assertEqual(True, result['is_public'])
|
||||||
|
|
||||||
def test_console_output(self):
|
def test_console_output(self):
|
||||||
instance_type = FLAGS.default_instance_type
|
instance_type = FLAGS.default_instance_type
|
||||||
max_count = 1
|
max_count = 1
|
||||||
|
|||||||
@@ -84,7 +84,8 @@ class ComputeTestCase(test.TestCase):
|
|||||||
inst['launch_time'] = '10'
|
inst['launch_time'] = '10'
|
||||||
inst['user_id'] = self.user.id
|
inst['user_id'] = self.user.id
|
||||||
inst['project_id'] = self.project.id
|
inst['project_id'] = self.project.id
|
||||||
inst['instance_type'] = 'm1.tiny'
|
type_id = instance_types.get_instance_type_by_name('m1.tiny')['id']
|
||||||
|
inst['instance_type_id'] = type_id
|
||||||
inst['mac_address'] = utils.generate_mac()
|
inst['mac_address'] = utils.generate_mac()
|
||||||
inst['ami_launch_index'] = 0
|
inst['ami_launch_index'] = 0
|
||||||
inst.update(params)
|
inst.update(params)
|
||||||
@@ -132,7 +133,7 @@ class ComputeTestCase(test.TestCase):
|
|||||||
cases = [dict(), dict(display_name=None)]
|
cases = [dict(), dict(display_name=None)]
|
||||||
for instance in cases:
|
for instance in cases:
|
||||||
ref = self.compute_api.create(self.context,
|
ref = self.compute_api.create(self.context,
|
||||||
FLAGS.default_instance_type, None, **instance)
|
instance_types.get_default_instance_type(), None, **instance)
|
||||||
try:
|
try:
|
||||||
self.assertNotEqual(ref[0]['display_name'], None)
|
self.assertNotEqual(ref[0]['display_name'], None)
|
||||||
finally:
|
finally:
|
||||||
@@ -143,7 +144,7 @@ class ComputeTestCase(test.TestCase):
|
|||||||
group = self._create_group()
|
group = self._create_group()
|
||||||
ref = self.compute_api.create(
|
ref = self.compute_api.create(
|
||||||
self.context,
|
self.context,
|
||||||
instance_type=FLAGS.default_instance_type,
|
instance_type=instance_types.get_default_instance_type(),
|
||||||
image_id=None,
|
image_id=None,
|
||||||
security_group=['testgroup'])
|
security_group=['testgroup'])
|
||||||
try:
|
try:
|
||||||
@@ -161,7 +162,7 @@ class ComputeTestCase(test.TestCase):
|
|||||||
|
|
||||||
ref = self.compute_api.create(
|
ref = self.compute_api.create(
|
||||||
self.context,
|
self.context,
|
||||||
instance_type=FLAGS.default_instance_type,
|
instance_type=instance_types.get_default_instance_type(),
|
||||||
image_id=None,
|
image_id=None,
|
||||||
security_group=['testgroup'])
|
security_group=['testgroup'])
|
||||||
try:
|
try:
|
||||||
@@ -177,7 +178,7 @@ class ComputeTestCase(test.TestCase):
|
|||||||
|
|
||||||
ref = self.compute_api.create(
|
ref = self.compute_api.create(
|
||||||
self.context,
|
self.context,
|
||||||
instance_type=FLAGS.default_instance_type,
|
instance_type=instance_types.get_default_instance_type(),
|
||||||
image_id=None,
|
image_id=None,
|
||||||
security_group=['testgroup'])
|
security_group=['testgroup'])
|
||||||
|
|
||||||
@@ -359,8 +360,9 @@ class ComputeTestCase(test.TestCase):
|
|||||||
instance_id = self._create_instance()
|
instance_id = self._create_instance()
|
||||||
|
|
||||||
self.compute.run_instance(self.context, instance_id)
|
self.compute.run_instance(self.context, instance_id)
|
||||||
|
inst_type = instance_types.get_instance_type_by_name('m1.xlarge')
|
||||||
db.instance_update(self.context, instance_id,
|
db.instance_update(self.context, instance_id,
|
||||||
{'instance_type': 'm1.xlarge'})
|
{'instance_type_id': inst_type['id']})
|
||||||
|
|
||||||
self.assertRaises(exception.ApiError, self.compute_api.resize,
|
self.assertRaises(exception.ApiError, self.compute_api.resize,
|
||||||
context, instance_id, 1)
|
context, instance_id, 1)
|
||||||
@@ -380,8 +382,8 @@ class ComputeTestCase(test.TestCase):
|
|||||||
self.compute.terminate_instance(context, instance_id)
|
self.compute.terminate_instance(context, instance_id)
|
||||||
|
|
||||||
def test_get_by_flavor_id(self):
|
def test_get_by_flavor_id(self):
|
||||||
type = instance_types.get_by_flavor_id(1)
|
type = instance_types.get_instance_type_by_flavor_id(1)
|
||||||
self.assertEqual(type, 'm1.tiny')
|
self.assertEqual(type['name'], 'm1.tiny')
|
||||||
|
|
||||||
def test_resize_same_source_fails(self):
|
def test_resize_same_source_fails(self):
|
||||||
"""Ensure instance fails to migrate when source and destination are
|
"""Ensure instance fails to migrate when source and destination are
|
||||||
@@ -664,4 +666,5 @@ class ComputeTestCase(test.TestCase):
|
|||||||
|
|
||||||
instances = db.instance_get_all(context.get_admin_context())
|
instances = db.instance_get_all(context.get_admin_context())
|
||||||
LOG.info(_("After force-killing instances: %s"), instances)
|
LOG.info(_("After force-killing instances: %s"), instances)
|
||||||
self.assertEqual(len(instances), 0)
|
self.assertEqual(len(instances), 1)
|
||||||
|
self.assertEqual(power_state.SHUTOFF, instances[0]['state'])
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class ConsoleTestCase(test.TestCase):
|
|||||||
inst['launch_time'] = '10'
|
inst['launch_time'] = '10'
|
||||||
inst['user_id'] = self.user.id
|
inst['user_id'] = self.user.id
|
||||||
inst['project_id'] = self.project.id
|
inst['project_id'] = self.project.id
|
||||||
inst['instance_type'] = 'm1.tiny'
|
inst['instance_type_id'] = 1
|
||||||
inst['mac_address'] = utils.generate_mac()
|
inst['mac_address'] = utils.generate_mac()
|
||||||
inst['ami_launch_index'] = 0
|
inst['ami_launch_index'] = 0
|
||||||
return db.instance_create(self.context, inst)['id']
|
return db.instance_create(self.context, inst)['id']
|
||||||
|
|||||||
@@ -40,7 +40,11 @@ class InstanceTypeTestCase(test.TestCase):
|
|||||||
max_flavorid = session.query(models.InstanceTypes).\
|
max_flavorid = session.query(models.InstanceTypes).\
|
||||||
order_by("flavorid desc").\
|
order_by("flavorid desc").\
|
||||||
first()
|
first()
|
||||||
|
max_id = session.query(models.InstanceTypes).\
|
||||||
|
order_by("id desc").\
|
||||||
|
first()
|
||||||
self.flavorid = max_flavorid["flavorid"] + 1
|
self.flavorid = max_flavorid["flavorid"] + 1
|
||||||
|
self.id = max_id["id"] + 1
|
||||||
self.name = str(int(time.time()))
|
self.name = str(int(time.time()))
|
||||||
|
|
||||||
def test_instance_type_create_then_delete(self):
|
def test_instance_type_create_then_delete(self):
|
||||||
@@ -53,7 +57,7 @@ class InstanceTypeTestCase(test.TestCase):
|
|||||||
'instance type was not created')
|
'instance type was not created')
|
||||||
instance_types.destroy(self.name)
|
instance_types.destroy(self.name)
|
||||||
self.assertEqual(1,
|
self.assertEqual(1,
|
||||||
instance_types.get_instance_type(self.name)["deleted"])
|
instance_types.get_instance_type(self.id)["deleted"])
|
||||||
self.assertEqual(starting_inst_list, instance_types.get_all_types())
|
self.assertEqual(starting_inst_list, instance_types.get_all_types())
|
||||||
instance_types.purge(self.name)
|
instance_types.purge(self.name)
|
||||||
self.assertEqual(len(starting_inst_list),
|
self.assertEqual(len(starting_inst_list),
|
||||||
|
|||||||
@@ -263,7 +263,7 @@ class SimpleDriverTestCase(test.TestCase):
|
|||||||
inst['reservation_id'] = 'r-fakeres'
|
inst['reservation_id'] = 'r-fakeres'
|
||||||
inst['user_id'] = self.user.id
|
inst['user_id'] = self.user.id
|
||||||
inst['project_id'] = self.project.id
|
inst['project_id'] = self.project.id
|
||||||
inst['instance_type'] = 'm1.tiny'
|
inst['instance_type_id'] = '1'
|
||||||
inst['mac_address'] = utils.generate_mac()
|
inst['mac_address'] = utils.generate_mac()
|
||||||
inst['vcpus'] = kwargs.get('vcpus', 1)
|
inst['vcpus'] = kwargs.get('vcpus', 1)
|
||||||
inst['ami_launch_index'] = 0
|
inst['ami_launch_index'] = 0
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ class LibvirtConnTestCase(test.TestCase):
|
|||||||
'vcpus': 2,
|
'vcpus': 2,
|
||||||
'project_id': 'fake',
|
'project_id': 'fake',
|
||||||
'bridge': 'br101',
|
'bridge': 'br101',
|
||||||
'instance_type': 'm1.small'}
|
'instance_type_id': '5'} # m1.small
|
||||||
|
|
||||||
def lazy_load_library_exists(self):
|
def lazy_load_library_exists(self):
|
||||||
"""check if libvirt is available."""
|
"""check if libvirt is available."""
|
||||||
@@ -479,7 +479,7 @@ class LibvirtConnTestCase(test.TestCase):
|
|||||||
|
|
||||||
fake_timer = FakeTime()
|
fake_timer = FakeTime()
|
||||||
|
|
||||||
self.create_fake_libvirt_mock(nwfilterLookupByName=fake_raise)
|
self.create_fake_libvirt_mock()
|
||||||
instance_ref = db.instance_create(self.context, self.test_instance)
|
instance_ref = db.instance_create(self.context, self.test_instance)
|
||||||
|
|
||||||
# Start test
|
# Start test
|
||||||
@@ -488,6 +488,7 @@ class LibvirtConnTestCase(test.TestCase):
|
|||||||
conn = libvirt_conn.LibvirtConnection(False)
|
conn = libvirt_conn.LibvirtConnection(False)
|
||||||
conn.firewall_driver.setattr('setup_basic_filtering', fake_none)
|
conn.firewall_driver.setattr('setup_basic_filtering', fake_none)
|
||||||
conn.firewall_driver.setattr('prepare_instance_filter', fake_none)
|
conn.firewall_driver.setattr('prepare_instance_filter', fake_none)
|
||||||
|
conn.firewall_driver.setattr('instance_filter_exists', fake_none)
|
||||||
conn.ensure_filtering_rules_for_instance(instance_ref,
|
conn.ensure_filtering_rules_for_instance(instance_ref,
|
||||||
time=fake_timer)
|
time=fake_timer)
|
||||||
except exception.Error, e:
|
except exception.Error, e:
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ class VolumeTestCase(test.TestCase):
|
|||||||
inst['launch_time'] = '10'
|
inst['launch_time'] = '10'
|
||||||
inst['user_id'] = 'fake'
|
inst['user_id'] = 'fake'
|
||||||
inst['project_id'] = 'fake'
|
inst['project_id'] = 'fake'
|
||||||
inst['instance_type'] = 'm1.tiny'
|
inst['instance_type_id'] = '2' # m1.tiny
|
||||||
inst['mac_address'] = utils.generate_mac()
|
inst['mac_address'] = utils.generate_mac()
|
||||||
inst['ami_launch_index'] = 0
|
inst['ami_launch_index'] = 0
|
||||||
instance_id = db.instance_create(self.context, inst)['id']
|
instance_id = db.instance_create(self.context, inst)['id']
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ class XenAPIVolumeTestCase(test.TestCase):
|
|||||||
'image_id': 1,
|
'image_id': 1,
|
||||||
'kernel_id': 2,
|
'kernel_id': 2,
|
||||||
'ramdisk_id': 3,
|
'ramdisk_id': 3,
|
||||||
'instance_type': 'm1.large',
|
'instance_type_id': '3', # m1.large
|
||||||
'mac_address': 'aa:bb:cc:dd:ee:ff',
|
'mac_address': 'aa:bb:cc:dd:ee:ff',
|
||||||
'os_type': 'linux'}
|
'os_type': 'linux'}
|
||||||
|
|
||||||
@@ -289,11 +289,11 @@ class XenAPIVMTestCase(test.TestCase):
|
|||||||
'enabled':'1'}],
|
'enabled':'1'}],
|
||||||
'ip6s': [{'ip': 'fe80::a8bb:ccff:fedd:eeff',
|
'ip6s': [{'ip': 'fe80::a8bb:ccff:fedd:eeff',
|
||||||
'netmask': '120',
|
'netmask': '120',
|
||||||
'enabled': '1',
|
'enabled': '1'}],
|
||||||
'gateway': 'fe80::a00:1'}],
|
|
||||||
'mac': 'aa:bb:cc:dd:ee:ff',
|
'mac': 'aa:bb:cc:dd:ee:ff',
|
||||||
'dns': ['10.0.0.2'],
|
'dns': ['10.0.0.2'],
|
||||||
'gateway': '10.0.0.1'})
|
'gateway': '10.0.0.1',
|
||||||
|
'gateway6': 'fe80::a00:1'})
|
||||||
|
|
||||||
def check_vm_params_for_windows(self):
|
def check_vm_params_for_windows(self):
|
||||||
self.assertEquals(self.vm['platform']['nx'], 'true')
|
self.assertEquals(self.vm['platform']['nx'], 'true')
|
||||||
@@ -328,7 +328,7 @@ class XenAPIVMTestCase(test.TestCase):
|
|||||||
self.assertEquals(self.vm['HVM_boot_policy'], '')
|
self.assertEquals(self.vm['HVM_boot_policy'], '')
|
||||||
|
|
||||||
def _test_spawn(self, image_id, kernel_id, ramdisk_id,
|
def _test_spawn(self, image_id, kernel_id, ramdisk_id,
|
||||||
instance_type="m1.large", os_type="linux",
|
instance_type_id="3", os_type="linux",
|
||||||
instance_id=1, check_injection=False):
|
instance_id=1, check_injection=False):
|
||||||
stubs.stubout_loopingcall_start(self.stubs)
|
stubs.stubout_loopingcall_start(self.stubs)
|
||||||
values = {'id': instance_id,
|
values = {'id': instance_id,
|
||||||
@@ -337,7 +337,7 @@ class XenAPIVMTestCase(test.TestCase):
|
|||||||
'image_id': image_id,
|
'image_id': image_id,
|
||||||
'kernel_id': kernel_id,
|
'kernel_id': kernel_id,
|
||||||
'ramdisk_id': ramdisk_id,
|
'ramdisk_id': ramdisk_id,
|
||||||
'instance_type': instance_type,
|
'instance_type_id': instance_type_id,
|
||||||
'mac_address': 'aa:bb:cc:dd:ee:ff',
|
'mac_address': 'aa:bb:cc:dd:ee:ff',
|
||||||
'os_type': os_type}
|
'os_type': os_type}
|
||||||
instance = db.instance_create(self.context, values)
|
instance = db.instance_create(self.context, values)
|
||||||
@@ -349,7 +349,7 @@ class XenAPIVMTestCase(test.TestCase):
|
|||||||
FLAGS.xenapi_image_service = 'glance'
|
FLAGS.xenapi_image_service = 'glance'
|
||||||
self.assertRaises(Exception,
|
self.assertRaises(Exception,
|
||||||
self._test_spawn,
|
self._test_spawn,
|
||||||
1, 2, 3, "m1.xlarge")
|
1, 2, 3, "4") # m1.xlarge
|
||||||
|
|
||||||
def test_spawn_raw_objectstore(self):
|
def test_spawn_raw_objectstore(self):
|
||||||
FLAGS.xenapi_image_service = 'objectstore'
|
FLAGS.xenapi_image_service = 'objectstore'
|
||||||
@@ -523,7 +523,7 @@ class XenAPIVMTestCase(test.TestCase):
|
|||||||
'image_id': 1,
|
'image_id': 1,
|
||||||
'kernel_id': 2,
|
'kernel_id': 2,
|
||||||
'ramdisk_id': 3,
|
'ramdisk_id': 3,
|
||||||
'instance_type': 'm1.large',
|
'instance_type_id': '3', # m1.large
|
||||||
'mac_address': 'aa:bb:cc:dd:ee:ff',
|
'mac_address': 'aa:bb:cc:dd:ee:ff',
|
||||||
'os_type': 'linux'}
|
'os_type': 'linux'}
|
||||||
instance = db.instance_create(self.context, values)
|
instance = db.instance_create(self.context, values)
|
||||||
@@ -580,7 +580,7 @@ class XenAPIMigrateInstance(test.TestCase):
|
|||||||
'kernel_id': None,
|
'kernel_id': None,
|
||||||
'ramdisk_id': None,
|
'ramdisk_id': None,
|
||||||
'local_gb': 5,
|
'local_gb': 5,
|
||||||
'instance_type': 'm1.large',
|
'instance_type_id': '3', # m1.large
|
||||||
'mac_address': 'aa:bb:cc:dd:ee:ff',
|
'mac_address': 'aa:bb:cc:dd:ee:ff',
|
||||||
'os_type': 'linux'}
|
'os_type': 'linux'}
|
||||||
|
|
||||||
|
|||||||
4691
po/pt_BR.po
4691
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
4063
po/zh_CN.po
4063
po/zh_CN.po
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user