From 51d862a6db1bdb37150de7dbb09d4a784b9c08e2 Mon Sep 17 00:00:00 2001 From: John Tran Date: Wed, 6 Apr 2011 18:22:03 -0700 Subject: [PATCH 001/164] ec2 api run_instances checks for image status must be 'available'. Overhauled test_run_instances for working set of test assertions --- nova/tests/test_cloud.py | 62 +++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 5cb969979..85f3a8e87 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -36,12 +36,12 @@ from nova import rpc from nova import service from nova import test from nova import utils +from nova import exception from nova.auth import manager from nova.compute import power_state from nova.api.ec2 import cloud from nova.api.ec2 import ec2utils from nova.image import local -from nova.exception import NotFound FLAGS = flags.FLAGS @@ -226,7 +226,7 @@ class CloudTestCase(test.TestCase): 'type': 'machine'}}] def fake_show_none(meh, context, id): - raise NotFound + raise exception.NotFound self.stubs.Set(local.LocalImageService, 'detail', fake_detail) # list all @@ -244,7 +244,7 @@ class CloudTestCase(test.TestCase): self.stubs.UnsetAll() self.stubs.Set(local.LocalImageService, 'show', fake_show_none) self.stubs.Set(local.LocalImageService, 'show_by_name', fake_show_none) - self.assertRaises(NotFound, describe_images, + self.assertRaises(exception.NotFound, describe_images, self.context, ['ami-fake']) def test_console_output(self): @@ -307,39 +307,41 @@ class CloudTestCase(test.TestCase): self.cloud.delete_key_pair(self.context, 'test') def test_run_instances(self): - if FLAGS.connection_type == 'fake': - LOG.debug(_("Can't test instances without a real virtual env.")) - return + allinst = db.instance_get_all(context.get_admin_context()) + self.assertEqual(0, len(allinst)) + def fake_show_decrypt(meh, context, id): + return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, + 'type': 'machine', 'image_state': 'decrypting'}} + + def fake_show_avail(meh, context, id): + return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, + 'type': 'machine', 'image_state': 'available'}} + image_id = FLAGS.default_image instance_type = FLAGS.default_instance_type max_count = 1 kwargs = {'image_id': image_id, 'instance_type': instance_type, 'max_count': max_count} - rv = self.cloud.run_instances(self.context, **kwargs) - # TODO: check for proper response - instance_id = rv['reservationSet'][0].keys()[0] - instance = rv['reservationSet'][0][instance_id][0] - LOG.debug(_("Need to watch instance %s until it's running..."), - instance['instance_id']) - while True: - greenthread.sleep(1) - info = self.cloud._get_instance(instance['instance_id']) - LOG.debug(info['state']) - if info['state'] == power_state.RUNNING: - break - self.assert_(rv) - - if FLAGS.connection_type != 'fake': - time.sleep(45) # Should use boto for polling here - for reservations in rv['reservationSet']: - # for res_id in reservations.keys(): - # LOG.debug(reservations[res_id]) - # for instance in reservations[res_id]: - for instance in reservations[reservations.keys()[0]]: - instance_id = instance['instance_id'] - LOG.debug(_("Terminating instance %s"), instance_id) - rv = self.compute.terminate_instance(instance_id) + run_instances = self.cloud.run_instances + # when image doesn't have 'image_state' attr at all + self.assertRaises(exception.ApiError, run_instances, + self.context, **kwargs) + # when image has 'image_state' yet not 'available' + self.stubs.UnsetAll() + self.stubs.Set(local.LocalImageService, 'show', fake_show_decrypt) + self.assertRaises(exception.ApiError, run_instances, + self.context, **kwargs) + # when image has valid image_state + self.stubs.UnsetAll() + self.stubs.Set(local.LocalImageService, 'show', fake_show_avail) + result = run_instances(self.context, **kwargs) + instance = result['instancesSet'][0] + self.assertEqual(instance['imageId'], 'ami-00000001') + self.assertEqual(instance['displayName'], 'Server 1') + self.assertEqual(instance['instanceId'], 'i-00000001') + self.assertEqual(instance['instanceState']['name'], 'scheduling') + self.assertEqual(instance['instanceType'], 'm1.small') def test_update_of_instance_display_fields(self): inst = db.instance_create(self.context, {}) From b3d850e1ae7e237809127f7696060b9b0d17e407 Mon Sep 17 00:00:00 2001 From: John Tran Date: Mon, 2 May 2011 14:25:21 -0700 Subject: [PATCH 002/164] implemented review suggestion EAFP style, and fixed test stub fake_show needs to have image_state = available or other tests will fail --- nova/tests/test_cloud.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 85f3a8e87..da2fce06b 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -30,13 +30,13 @@ from eventlet import greenthread from nova import context from nova import crypto from nova import db +from nova import exception from nova import flags from nova import log as logging from nova import rpc from nova import service from nova import test from nova import utils -from nova import exception from nova.auth import manager from nova.compute import power_state from nova.api.ec2 import cloud @@ -73,7 +73,7 @@ class CloudTestCase(test.TestCase): def fake_show(meh, context, id): return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, - 'type': 'machine'}} + 'type': 'machine', 'image_state': 'available'}} self.stubs.Set(local.LocalImageService, 'show', fake_show) self.stubs.Set(local.LocalImageService, 'show_by_name', fake_show) @@ -307,15 +307,16 @@ class CloudTestCase(test.TestCase): self.cloud.delete_key_pair(self.context, 'test') def test_run_instances(self): - allinst = db.instance_get_all(context.get_admin_context()) - self.assertEqual(0, len(allinst)) - def fake_show_decrypt(meh, context, id): + all_instances = db.instance_get_all(context.get_admin_context()) + self.assertEqual(0, len(all_instances)) + + def fake_show_decrypt(self, context, id): return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, 'type': 'machine', 'image_state': 'decrypting'}} - def fake_show_avail(meh, context, id): + def fake_show_no_state(self, context, id): return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, - 'type': 'machine', 'image_state': 'available'}} + 'type': 'machine'}} image_id = FLAGS.default_image instance_type = FLAGS.default_instance_type @@ -324,17 +325,7 @@ class CloudTestCase(test.TestCase): 'instance_type': instance_type, 'max_count': max_count} run_instances = self.cloud.run_instances - # when image doesn't have 'image_state' attr at all - self.assertRaises(exception.ApiError, run_instances, - self.context, **kwargs) - # when image has 'image_state' yet not 'available' - self.stubs.UnsetAll() - self.stubs.Set(local.LocalImageService, 'show', fake_show_decrypt) - self.assertRaises(exception.ApiError, run_instances, - self.context, **kwargs) # when image has valid image_state - self.stubs.UnsetAll() - self.stubs.Set(local.LocalImageService, 'show', fake_show_avail) result = run_instances(self.context, **kwargs) instance = result['instancesSet'][0] self.assertEqual(instance['imageId'], 'ami-00000001') @@ -342,6 +333,16 @@ class CloudTestCase(test.TestCase): self.assertEqual(instance['instanceId'], 'i-00000001') self.assertEqual(instance['instanceState']['name'], 'scheduling') self.assertEqual(instance['instanceType'], 'm1.small') + # when image doesn't have 'image_state' attr at all + self.stubs.UnsetAll() + self.stubs.Set(local.LocalImageService, 'show', fake_show_no_state) + self.assertRaises(exception.ApiError, run_instances, + self.context, **kwargs) + # when image has 'image_state' yet not 'available' + self.stubs.UnsetAll() + self.stubs.Set(local.LocalImageService, 'show', fake_show_decrypt) + self.assertRaises(exception.ApiError, run_instances, + self.context, **kwargs) def test_update_of_instance_display_fields(self): inst = db.instance_create(self.context, {}) From f653453d0be5db50ff003cb13ba3c0a2b6c8c1a1 Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Thu, 5 May 2011 23:14:46 -0400 Subject: [PATCH 003/164] Publish errors via nova.notifier --- nova/log.py | 9 +++++++++ nova/tests/test_notifier.py | 21 +++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/nova/log.py b/nova/log.py index 096279f7c..3e587891a 100644 --- a/nova/log.py +++ b/nova/log.py @@ -35,6 +35,7 @@ import os import sys import traceback +import nova from nova import flags from nova import version @@ -63,6 +64,7 @@ flags.DEFINE_list('default_log_levels', 'eventlet.wsgi.server=WARN'], 'list of logger=LEVEL pairs') flags.DEFINE_bool('use_syslog', False, 'output to syslog') +flags.DEFINE_bool('publish_errors', True, 'publish error events') flags.DEFINE_string('logfile', None, 'output to named file') @@ -258,12 +260,19 @@ class NovaRootLogger(NovaLogger): else: self.removeHandler(self.filelog) self.addHandler(self.streamlog) + if FLAGS.publish_errors: + self.addHandler(PublishErrorsHandler(ERROR)) if FLAGS.verbose: self.setLevel(DEBUG) else: self.setLevel(INFO) +class PublishErrorsHandler(logging.Handler): + def emit(self, record): + nova.notifier.notify('error', record) + + def handle_exception(type, value, tb): extra = {} if FLAGS.verbose: diff --git a/nova/tests/test_notifier.py b/nova/tests/test_notifier.py index 4d6289e6a..d18d3bc05 100644 --- a/nova/tests/test_notifier.py +++ b/nova/tests/test_notifier.py @@ -13,14 +13,18 @@ # License for the specific language governing permissions and limitations # under the License. -import nova +import json +import stubout + +import nova +from nova import log as logging from nova import flags from nova import notifier from nova.notifier import no_op_notifier from nova import test -import stubout +LOG = logging.getLogger('nova.compute.api') class NotifierTestCase(test.TestCase): """Test case for notifications""" @@ -58,3 +62,16 @@ class NotifierTestCase(test.TestCase): notifier.notify('derp', Mock()) self.assertEqual(self.mock_cast, True) + + def test_error_notification(self): + self.stubs.Set(nova.flags.FLAGS, 'notification_driver', + 'nova.notifier.rabbit_notifier.RabbitNotifier') + msgs = [] + def mock_cast(context, topic, msg): + data = json.loads(msg) + msgs.append(data) + self.stubs.Set(nova.rpc, 'cast', mock_cast) + LOG.error('foo'); + msg = msgs[0] + self.assertEqual(msg['event_name'], 'error') + self.assertEqual(msg['model']['msg'], 'foo') From 92c638ecaa395c3b0ad137cc41aacde5f6789c02 Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Fri, 6 May 2011 20:15:06 -0400 Subject: [PATCH 004/164] Set publish_errors default to False. --- nova/log.py | 2 +- nova/tests/test_notifier.py | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nova/log.py b/nova/log.py index 3e587891a..d2ed82c6c 100644 --- a/nova/log.py +++ b/nova/log.py @@ -64,7 +64,7 @@ flags.DEFINE_list('default_log_levels', 'eventlet.wsgi.server=WARN'], 'list of logger=LEVEL pairs') flags.DEFINE_bool('use_syslog', False, 'output to syslog') -flags.DEFINE_bool('publish_errors', True, 'publish error events') +flags.DEFINE_bool('publish_errors', False, 'publish error events') flags.DEFINE_string('logfile', None, 'output to named file') diff --git a/nova/tests/test_notifier.py b/nova/tests/test_notifier.py index d18d3bc05..c9c4ddde8 100644 --- a/nova/tests/test_notifier.py +++ b/nova/tests/test_notifier.py @@ -18,14 +18,12 @@ import json import stubout import nova -from nova import log as logging +from nova import log from nova import flags from nova import notifier from nova.notifier import no_op_notifier from nova import test -LOG = logging.getLogger('nova.compute.api') - class NotifierTestCase(test.TestCase): """Test case for notifications""" def setUp(self): @@ -66,12 +64,17 @@ class NotifierTestCase(test.TestCase): def test_error_notification(self): self.stubs.Set(nova.flags.FLAGS, 'notification_driver', 'nova.notifier.rabbit_notifier.RabbitNotifier') + self.stubs.Set(nova.flags.FLAGS, 'publish_errors', True) + LOG = log.getLogger('nova') + LOG.setup_from_flags() + msgs = [] def mock_cast(context, topic, msg): data = json.loads(msg) msgs.append(data) self.stubs.Set(nova.rpc, 'cast', mock_cast) LOG.error('foo'); + self.assertEqual(1, len(msgs)) msg = msgs[0] self.assertEqual(msg['event_name'], 'error') self.assertEqual(msg['model']['msg'], 'foo') From 468d8c13e51060b04f9486208bb0f150db1b44d9 Mon Sep 17 00:00:00 2001 From: Mike Scherbakov Date: Wed, 11 May 2011 03:24:02 +0400 Subject: [PATCH 005/164] Bugfix #780784. KeyError when creating custom image. --- Authors | 1 + 1 file changed, 1 insertion(+) diff --git a/Authors b/Authors index 60e1d2dad..72eb0b6ae 100644 --- a/Authors +++ b/Authors @@ -54,6 +54,7 @@ Mark Washenberger Masanori Itoh Matt Dietz Michael Gundlach +Mike Scherbakov Monsyne Dragon Monty Taylor MORITA Kazutaka From 2a18d69c107d215c970fccf33fb116ff36877fca Mon Sep 17 00:00:00 2001 From: John Tran Date: Thu, 12 May 2011 12:04:39 -0700 Subject: [PATCH 006/164] changed NotFound exception to ImageNotFound --- nova/tests/test_cloud.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 202dc36bc..ebfb5ee44 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -227,7 +227,7 @@ class CloudTestCase(test.TestCase): 'type': 'machine'}}] def fake_show_none(meh, context, id): - raise exception.NotFound + raise exception.ImageNotFound self.stubs.Set(local.LocalImageService, 'detail', fake_detail) # list all @@ -245,7 +245,7 @@ class CloudTestCase(test.TestCase): self.stubs.UnsetAll() self.stubs.Set(local.LocalImageService, 'show', fake_show_none) self.stubs.Set(local.LocalImageService, 'show_by_name', fake_show_none) - self.assertRaises(exception.NotFound, describe_images, + self.assertRaises(exception.ImageNotFound, describe_images, self.context, ['ami-fake']) def test_describe_image_attribute(self): From e53bb42265614e34acaa74e7850f1a7a464dea63 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Fri, 13 May 2011 10:43:43 -0700 Subject: [PATCH 007/164] started on integrating HostFilter --- nova/scheduler/host_filter.py | 18 ++++++++++++++++++ nova/scheduler/zone_aware_scheduler.py | 16 ++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 483f3225c..17f63d4a0 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -286,3 +286,21 @@ def choose_driver(driver_name=None): if "%s.%s" % (driver.__module__, driver.__name__) == driver_name: return driver() raise exception.SchedulerHostFilterDriverNotFound(driver_name=driver_name) + + +class HostFilterScheduler(ZoneAwareScheduler): + """The HostFilterScheduler uses the HostFilter drivers to filter + hosts for weighing. The particular driver used may be passed in + as an argument or the default will be used.""" + + def filter_hosts(self, num, specs): + """Filter the full host list (from the ZoneManager)""" + driver_name = specs.get("filter_driver", None) + driver = host_filter.choose_driver(driver_name) + + # TODO(sandy): We're only using InstanceType-based specs + # currently. Later we'll need to snoop for more detailed + # host filter requests. + instance_type = specs['instance_type'] + query = driver.instance_type_to_filter(query) + return driver.filter_hosts(self.zone_manager, query) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index b3d230bd2..fde8b6792 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -25,6 +25,7 @@ import operator from nova import log as logging from nova.scheduler import api from nova.scheduler import driver +from nova.scheduler import host_filter LOG = logging.getLogger('nova.scheduler.zone_aware_scheduler') @@ -36,7 +37,7 @@ class ZoneAwareScheduler(driver.Scheduler): """Call novaclient zone method. Broken out for testing.""" return api.call_zone_method(context, method, specs=specs) - def schedule_run_instance(self, context, topic='compute', specs={}, + def schedule_run_instance(self, context, instance_id, instance_type, *args, **kwargs): """This method is called from nova.compute.api to provision an instance. However we need to look at the parameters being @@ -46,6 +47,9 @@ class ZoneAwareScheduler(driver.Scheduler): to simply create the instance (either in this zone or a child zone).""" + # TODO(sandy): We'll have to look for richer specs at some point. + specs = instance_type + if 'blob' in specs: return self.provision_instance(context, topic, specs) @@ -58,7 +62,7 @@ class ZoneAwareScheduler(driver.Scheduler): """Create the requested instance in this Zone or a child zone.""" pass - def select(self, context, *args, **kwargs): + def select(self, context, specs, *args, **kwargs): """Select returns a list of weights and zone/host information corresponding to the best hosts to service the request. Any child zone information has been encrypted so as not to reveal @@ -80,9 +84,13 @@ class ZoneAwareScheduler(driver.Scheduler): ordered by their fitness. """ - #TODO(sandy): extract these from args. + if topic != "compute": + raise NotImplemented(_("Zone Aware Scheduler only understands " + "Compute nodes (for now)")) + + specs = args['instance_type'] + #TODO(sandy): how to infer this from OS API params? num_instances = 1 - specs = {} # Filter local hosts based on requirements ... host_list = self.filter_hosts(num_instances, specs) From d157e6d027d2c30e56869812d8a8427680f2e506 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Fri, 13 May 2011 15:36:42 -0500 Subject: [PATCH 008/164] first cut at weighted-sum tests --- nova/scheduler/zone_aware_scheduler.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index b3d230bd2..38b395d52 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -89,6 +89,8 @@ class ZoneAwareScheduler(driver.Scheduler): # then weigh the selected hosts. # weighted = [{weight=weight, name=hostname}, ...] + # TODO(sirp): weigh_hosts should also be a function of 'topic' or + # resources, so that we can apply different objective functions to it weighted = self.weigh_hosts(num_instances, specs, host_list) # Next, tack on the best weights from the child zones ... From 8a461727597ad4e9235dba9e7dd7de42ef84f36f Mon Sep 17 00:00:00 2001 From: Mike Scherbakov Date: Sun, 15 May 2011 14:15:37 +0400 Subject: [PATCH 009/164] Unit test for snapshotting (creating custom image). --- nova/tests/test_virt.py | 57 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index 1311ba361..eb238e871 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -159,6 +159,7 @@ class LibvirtConnTestCase(test.TestCase): 'vcpus': 2, 'project_id': 'fake', 'bridge': 'br101', + 'image_id': '123456', 'instance_type_id': '5'} # m1.small def lazy_load_library_exists(self): @@ -279,6 +280,62 @@ class LibvirtConnTestCase(test.TestCase): instance_data = dict(self.test_instance) self._check_xml_and_container(instance_data) + def test_snapshot(self): + FLAGS.image_service = 'nova.image.fake.FakeImageService' + + # Only file-based instance storages are supported at the moment + test_xml = """ + + + + + + + + """ + + class FakeVirtDomain(object): + + def __init__(self): + pass + + def snapshotCreateXML(self, *args): + return None + + def XMLDesc(self, *args): + return test_xml + + def fake_lookup(instance_name): + if instance_name == instance_ref.name: + return FakeVirtDomain() + + def fake_execute(*args): + # Touch filename to pass 'with open(out_path)' + open(args[-1], "a").close() + + # 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)} + sent_meta = {'name': 'test-snap', 'is_public': False, + '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(libvirt_conn.LibvirtConnection, '_conn') + libvirt_conn.LibvirtConnection._conn.lookupByName = fake_lookup + self.mox.StubOutWithMock(libvirt_conn.utils, 'execute') + libvirt_conn.utils.execute = fake_execute + + self.mox.ReplayAll() + + conn = libvirt_conn.LibvirtConnection(False) + conn.snapshot(instance_ref, recv_meta['id']) + def test_multi_nic(self): instance_data = dict(self.test_instance) network_info = _create_network_info(2) From 4c39d5144c022f0e05ebb1eaf146198a6b131a9e Mon Sep 17 00:00:00 2001 From: Mike Scherbakov Date: Sun, 15 May 2011 15:11:54 +0400 Subject: [PATCH 010/164] Define image state during snapshotting. Name snapshot to the name provided, not generate. --- nova/tests/test_virt.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index eb238e871..c4fcc21cc 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -320,8 +320,9 @@ class LibvirtConnTestCase(test.TestCase): instance_ref = db.instance_create(self.context, self.test_instance) properties = {'instance_id': instance_ref['id'], 'user_id': str(self.context.user_id)} - sent_meta = {'name': 'test-snap', 'is_public': False, - 'properties': properties} + 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) @@ -336,6 +337,11 @@ class LibvirtConnTestCase(test.TestCase): conn = libvirt_conn.LibvirtConnection(False) conn.snapshot(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['name'], snapshot_name) + def test_multi_nic(self): instance_data = dict(self.test_instance) network_info = _create_network_info(2) From 97fe3dd56f917e8736c65e4d199676f3ed34b497 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 16 May 2011 15:37:25 -0700 Subject: [PATCH 011/164] basic call going through --- nova/scheduler/host_filter.py | 19 +++++++-------- nova/scheduler/zone_aware_scheduler.py | 32 ++++++++++++-------------- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 17f63d4a0..a47e41da4 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -42,6 +42,7 @@ from nova import exception from nova import flags from nova import log as logging from nova import utils +from nova.scheduler import zone_aware_scheduler LOG = logging.getLogger('nova.scheduler.host_filter') @@ -83,8 +84,8 @@ class AllHostsFilter(HostFilter): for host, services in zone_manager.service_states.iteritems()] -class FlavorFilter(HostFilter): - """HostFilter driver hard-coded to work with flavors.""" +class InstanceTypeFilter(HostFilter): + """HostFilter driver hard-coded to work with InstanceType records.""" def instance_type_to_filter(self, instance_type): """Use instance_type to filter hosts.""" @@ -271,7 +272,7 @@ class JsonFilter(HostFilter): return hosts -DRIVERS = [AllHostsFilter, FlavorFilter, JsonFilter] +DRIVERS = [AllHostsFilter, InstanceTypeFilter, JsonFilter] def choose_driver(driver_name=None): @@ -288,19 +289,19 @@ def choose_driver(driver_name=None): raise exception.SchedulerHostFilterDriverNotFound(driver_name=driver_name) -class HostFilterScheduler(ZoneAwareScheduler): +class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): """The HostFilterScheduler uses the HostFilter drivers to filter hosts for weighing. The particular driver used may be passed in as an argument or the default will be used.""" - def filter_hosts(self, num, specs): + def filter_hosts(self, num, request_spec): """Filter the full host list (from the ZoneManager)""" - driver_name = specs.get("filter_driver", None) - driver = host_filter.choose_driver(driver_name) + driver_name = request_spec.get("filter_driver", None) + driver = choose_driver(driver_name) # TODO(sandy): We're only using InstanceType-based specs # currently. Later we'll need to snoop for more detailed # host filter requests. - instance_type = specs['instance_type'] - query = driver.instance_type_to_filter(query) + instance_type = request_spec['instance_type'] + query = driver.instance_type_to_filter(instance_type) return driver.filter_hosts(self.zone_manager, query) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index fde8b6792..f9c5f65f3 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -25,7 +25,6 @@ import operator from nova import log as logging from nova.scheduler import api from nova.scheduler import driver -from nova.scheduler import host_filter LOG = logging.getLogger('nova.scheduler.zone_aware_scheduler') @@ -37,7 +36,7 @@ class ZoneAwareScheduler(driver.Scheduler): """Call novaclient zone method. Broken out for testing.""" return api.call_zone_method(context, method, specs=specs) - def schedule_run_instance(self, context, instance_id, instance_type, + def schedule_run_instance(self, context, instance_id, request_spec, *args, **kwargs): """This method is called from nova.compute.api to provision an instance. However we need to look at the parameters being @@ -48,13 +47,12 @@ class ZoneAwareScheduler(driver.Scheduler): a child zone).""" # TODO(sandy): We'll have to look for richer specs at some point. - specs = instance_type - if 'blob' in specs: - return self.provision_instance(context, topic, specs) + if 'blob' in request_spec: + return self.provision_instance(context, topic, request_spec) # Create build plan and provision ... - build_plan = self.select(context, specs) + build_plan = self.select(context, request_spec) for item in build_plan: self.provision_instance(context, topic, item) @@ -62,24 +60,24 @@ class ZoneAwareScheduler(driver.Scheduler): """Create the requested instance in this Zone or a child zone.""" pass - def select(self, context, specs, *args, **kwargs): + def select(self, context, request_spec, *args, **kwargs): """Select returns a list of weights and zone/host information corresponding to the best hosts to service the request. Any child zone information has been encrypted so as not to reveal anything about the children.""" - return self._schedule(context, "compute", *args, **kwargs) + return self._schedule(context, "compute", request_spec, *args, **kwargs) - def schedule(self, context, topic, *args, **kwargs): + def schedule(self, context, topic, request_spec, *args, **kwargs): """The schedule() contract requires we return the one best-suited host for this request. """ - res = self._schedule(context, topic, *args, **kwargs) + res = self._schedule(context, topic, request_spec, *args, **kwargs) # TODO(sirp): should this be a host object rather than a weight-dict? if not res: raise driver.NoValidHost(_('No hosts were available')) return res[0] - def _schedule(self, context, topic, *args, **kwargs): + def _schedule(self, context, topic, request_spec, *args, **kwargs): """Returns a list of hosts that meet the required specs, ordered by their fitness. """ @@ -88,20 +86,20 @@ class ZoneAwareScheduler(driver.Scheduler): raise NotImplemented(_("Zone Aware Scheduler only understands " "Compute nodes (for now)")) - specs = args['instance_type'] + LOG.debug("specs = %s, ARGS = %s" % (request_spec, args, )) #TODO(sandy): how to infer this from OS API params? num_instances = 1 # Filter local hosts based on requirements ... - host_list = self.filter_hosts(num_instances, specs) + host_list = self.filter_hosts(num_instances, request_spec) # then weigh the selected hosts. # weighted = [{weight=weight, name=hostname}, ...] - weighted = self.weigh_hosts(num_instances, specs, host_list) + weighted = self.weigh_hosts(num_instances, request_spec, host_list) # Next, tack on the best weights from the child zones ... child_results = self._call_zone_method(context, "select", - specs=specs) + specs=request_spec) for child_zone, result in child_results: for weighting in result: # Remember the child_zone so we can get back to @@ -116,12 +114,12 @@ class ZoneAwareScheduler(driver.Scheduler): weighted.sort(key=operator.itemgetter('weight')) return weighted - def filter_hosts(self, num, specs): + def filter_hosts(self, num, request_spec): """Derived classes must override this method and return a list of hosts in [(hostname, capability_dict)] format.""" raise NotImplemented() - def weigh_hosts(self, num, specs, hosts): + def weigh_hosts(self, num, request_spec, hosts): """Derived classes must override this method and return a lists of hosts in [{weight, hostname}] format.""" raise NotImplemented() From 937cad1844b9706165a23a6533eb830225674ba8 Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Mon, 16 May 2011 15:59:01 -0700 Subject: [PATCH 012/164] fix for lp783705 - remove nwfilters when instance is terminated --- nova/tests/test_virt.py | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index 1311ba361..babb5de9b 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -1045,3 +1045,45 @@ class NWFilterTestCase(test.TestCase): network_info, "fake") self.assertEquals(len(result), 3) + + def test_unfilter_instance_undefines_nwfilters(self): + class FakeNWFilter: + def __init__(self): + self.undefine_call_count = 0 + + def undefine(self): + self.undefine_call_count += 1 + pass + + fakefilter = FakeNWFilter() + + def _nwfilterLookupByName(ignore): + return fakefilter + + def _filterDefineXMLMock(xml): + return True + + admin_ctxt = context.get_admin_context() + + self.fw._conn.nwfilterDefineXML = _filterDefineXMLMock + self.fw._conn.nwfilterLookupByName = _nwfilterLookupByName + + instance_ref = self._create_instance() + inst_id = instance_ref['id'] + instance = db.instance_get(self.context, inst_id) + + ip = '10.11.12.13' + network_ref = db.project_get_network(self.context, 'fake') + fixed_ip = {'address': ip, 'network_id': network_ref['id']} + db.fixed_ip_create(admin_ctxt, fixed_ip) + db.fixed_ip_update(admin_ctxt, ip, {'allocated': True, + 'instance_id': inst_id}) + self.fw.setup_basic_filtering(instance) + self.fw.prepare_instance_filter(instance) + self.fw.apply_instance_filter(instance) + self.fw.unfilter_instance(instance) + + # should attempt to undefine 2 filters: instance and instance-secgroup + self.assertEquals(fakefilter.undefine_call_count, 2) + + db.instance_destroy(admin_ctxt, instance_ref['id']) From 86f30f1320ccb83a041d46a63265adf0b9cef857 Mon Sep 17 00:00:00 2001 From: Jason Cannavale Date: Mon, 16 May 2011 18:09:26 -0500 Subject: [PATCH 013/164] MySQL database tables are using the MyISAM engine. Created migration script to change all current tables to InnoDB. --- Authors | 1 + 1 file changed, 1 insertion(+) diff --git a/Authors b/Authors index 546c9091f..b17c4f63e 100644 --- a/Authors +++ b/Authors @@ -28,6 +28,7 @@ Gabe Westmaas Hisaharu Ishii Hisaki Ohara Ilya Alekseyev +Jason Cannavale Jason Koelker Jay Pipes Jesse Andrews From 796ba59573e24273e351686a30cf306b1ddb06fd Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 17 May 2011 05:27:50 -0700 Subject: [PATCH 014/164] tests fixed and pep8'ed --- nova/scheduler/host_filter.py | 10 +++++++--- nova/scheduler/manager.py | 3 ++- nova/scheduler/zone_aware_scheduler.py | 11 ++++++++--- nova/tests/test_host_filter.py | 11 ++++++----- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 8519b8b51..2b0d9af77 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -292,11 +292,15 @@ def choose_driver(driver_name=None): class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): """The HostFilterScheduler uses the HostFilter drivers to filter hosts for weighing. The particular driver used may be passed in - as an argument or the default will be used.""" + as an argument or the default will be used. + + request_spec = {'filter_driver': , + 'instance_type': } + """ def filter_hosts(self, num, request_spec): """Filter the full host list (from the ZoneManager)""" - driver_name = request_spec.get("filter_driver", None) + driver_name = request_spec.get('filter_driver', None) driver = choose_driver(driver_name) # TODO(sandy): We're only using InstanceType-based specs @@ -309,4 +313,4 @@ class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): def weigh_hosts(self, num, request_spec, hosts): """Derived classes must override this method and return a lists of hosts in [{weight, hostname}] format.""" - return [] + return [dict(weight=1, hostname=hostname) for host, caps in hosts] diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py index 60f98b082..bd40e73c0 100644 --- a/nova/scheduler/manager.py +++ b/nova/scheduler/manager.py @@ -84,7 +84,8 @@ class SchedulerManager(manager.Manager): host = self.driver.schedule(elevated, topic, *args, **kwargs) if not host: - LOG.debug(_("%(topic)s %(method)s handled in Scheduler") % locals()) + LOG.debug(_("%(topic)s %(method)s handled in Scheduler") + % locals()) return rpc.cast(context, diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 2fc5f1f87..614b1bb89 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -59,20 +59,25 @@ class ZoneAwareScheduler(driver.Scheduler): for item in build_plan: self.provision_instance(context, topic, item) + # Returning None short-circuits the routing to Compute (since + # we've already done it here) + return None + def provision_instance(context, topic, item): """Create the requested instance in this Zone or a child zone.""" - pass + return None def select(self, context, request_spec, *args, **kwargs): """Select returns a list of weights and zone/host information corresponding to the best hosts to service the request. Any child zone information has been encrypted so as not to reveal anything about the children.""" - return self._schedule(context, "compute", request_spec, *args, **kwargs) + return self._schedule(context, "compute", request_spec, + *args, **kwargs) # TODO(sandy): We're only focused on compute instances right now, # so we don't implement the default "schedule()" method required - # of Schedulers. + # of Schedulers. def schedule(self, context, topic, request_spec, *args, **kwargs): """The schedule() contract requires we return the one best-suited host for this request. diff --git a/nova/tests/test_host_filter.py b/nova/tests/test_host_filter.py index c029d41e6..dd2325cc6 100644 --- a/nova/tests/test_host_filter.py +++ b/nova/tests/test_host_filter.py @@ -85,9 +85,9 @@ class HostFilterTestCase(test.TestCase): 'nova.scheduler.host_filter.AllHostsFilter') # Test valid driver ... driver = host_filter.choose_driver( - 'nova.scheduler.host_filter.FlavorFilter') + 'nova.scheduler.host_filter.InstanceTypeFilter') self.assertEquals(driver._full_name(), - 'nova.scheduler.host_filter.FlavorFilter') + 'nova.scheduler.host_filter.InstanceTypeFilter') # Test invalid driver ... try: host_filter.choose_driver('does not exist') @@ -103,11 +103,12 @@ class HostFilterTestCase(test.TestCase): for host, capabilities in hosts: self.assertTrue(host.startswith('host')) - def test_flavor_driver(self): - driver = host_filter.FlavorFilter() + def test_instance_type_driver(self): + driver = host_filter.InstanceTypeFilter() # filter all hosts that can support 50 ram and 500 disk name, cooked = driver.instance_type_to_filter(self.instance_type) - self.assertEquals('nova.scheduler.host_filter.FlavorFilter', name) + self.assertEquals('nova.scheduler.host_filter.InstanceTypeFilter', + name) hosts = driver.filter_hosts(self.zone_manager, cooked) self.assertEquals(6, len(hosts)) just_hosts = [host for host, caps in hosts] From 7f6f1be021c28a6f73b8231c64e8e443d0820d3a Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 17 May 2011 05:43:06 -0700 Subject: [PATCH 015/164] ugh, fixed again --- nova/tests/test_zone_aware_scheduler.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nova/tests/test_zone_aware_scheduler.py b/nova/tests/test_zone_aware_scheduler.py index fdcde34c9..37169fb97 100644 --- a/nova/tests/test_zone_aware_scheduler.py +++ b/nova/tests/test_zone_aware_scheduler.py @@ -116,4 +116,6 @@ class ZoneAwareSchedulerTestCase(test.TestCase): sched.set_zone_manager(zm) fake_context = {} - self.assertRaises(driver.NoValidHost, sched.schedule, fake_context, {}) + self.assertRaises(driver.NoValidHost, sched.schedule_run_instance, + fake_context, 1, + dict(host_filter=None, instance_type={})) From fcc096ac5593f428a9da6bfa0de7fb3e11ec4afb Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Tue, 17 May 2011 17:38:44 +0400 Subject: [PATCH 016/164] Moved memcached connection in AuthManager to thread-local storage. Added caching of LDAP connection in thread-local storage. Optimized LDAP queries, added similar memcached support to LDAPDriver. Add "per-driver-request" caching of LDAP results. (should be per-api-request) --- nova/auth/ldapdriver.py | 93 +++++++++++++++++++++++++++++++++++++---- nova/auth/manager.py | 20 ++++++--- 2 files changed, 98 insertions(+), 15 deletions(-) diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index 3f8432851..7849d941e 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -24,7 +24,9 @@ other backends by creating another class that exposes the same public methods. """ +import functools import sys +import threading from nova import exception from nova import flags @@ -85,6 +87,7 @@ def _clean(attr): def sanitize(fn): """Decorator to sanitize all args""" + @functools.wraps(fn) def _wrapped(self, *args, **kwargs): args = [_clean(x) for x in args] kwargs = dict((k, _clean(v)) for (k, v) in kwargs) @@ -103,29 +106,74 @@ class LdapDriver(object): isadmin_attribute = 'isNovaAdmin' project_attribute = 'owner' project_objectclass = 'groupOfNames' + __local = threading.local() def __init__(self): """Imports the LDAP module""" self.ldap = __import__('ldap') - self.conn = None if FLAGS.ldap_schema_version == 1: LdapDriver.project_pattern = '(objectclass=novaProject)' LdapDriver.isadmin_attribute = 'isAdmin' LdapDriver.project_attribute = 'projectManager' LdapDriver.project_objectclass = 'novaProject' + self.__cache = None def __enter__(self): """Creates the connection to LDAP""" - self.conn = self.ldap.initialize(FLAGS.ldap_url) - self.conn.simple_bind_s(FLAGS.ldap_user_dn, FLAGS.ldap_password) + # TODO(yorik-sar): Should be per-request cache, not per-driver-request + self.__cache = {} return self def __exit__(self, exc_type, exc_value, traceback): """Destroys the connection to LDAP""" - self.conn.unbind_s() + self.__cache = None return False + def __local_cache(key_fmt): + """Wrap function to cache it's result in self.__cache. + Works only with functions with one fixed argument. + """ + def do_wrap(fn): + @functools.wraps(fn) + def inner(self, arg, **kwargs): + cache_key = key_fmt % (arg,) + try: + res = self.__cache[cache_key] + LOG.debug('Local cache hit for %s by key %s' % + (fn.__name__, cache_key)) + return res + except KeyError: + res = fn(self, arg, **kwargs) + self.__cache[cache_key] = res + return res + return inner + return do_wrap + + @property + def conn(self): + try: + return self.__local.conn + except AttributeError: + conn = self.ldap.initialize(FLAGS.ldap_url) + conn.simple_bind_s(FLAGS.ldap_user_dn, FLAGS.ldap_password) + self.__local.conn = conn + return conn + + @property + def mc(self): + try: + return self.__local.mc + except AttributeError: + if FLAGS.memcached_servers: + import memcache + else: + from nova import fakememcache as memcache + mc = memcache.Client(FLAGS.memcached_servers, debug=0) + self.__local.mc = mc + return mc + @sanitize + @__local_cache('uid_user-%s') def get_user(self, uid): """Retrieve user by id""" attr = self.__get_ldap_user(uid) @@ -134,15 +182,30 @@ class LdapDriver(object): @sanitize def get_user_from_access_key(self, access): """Retrieve user by access key""" + cache_key = 'uak_dn_%s'%(access,) + user_dn = self.mc.get(cache_key) + if user_dn: + user = self.__to_user( + self.__find_object(user_dn, scope=self.ldap.SCOPE_BASE)) + if user: + if user['access'] == access: + return user + else: + self.mc.set(cache_key, None) query = '(accessKey=%s)' % access dn = FLAGS.ldap_user_subtree - return self.__to_user(self.__find_object(dn, query)) + user_obj = self.__find_object(dn, query) + user = self.__to_user(user_obj) + if user: + self.mc.set(cache_key, user_obj['dn'][0]) + return user @sanitize + @__local_cache('pid_project-%s') def get_project(self, pid): """Retrieve project by id""" - dn = self.__project_to_dn(pid) - attr = self.__find_object(dn, LdapDriver.project_pattern) + dn = self.__project_to_dn(pid, search=False) + attr = self.__find_object(dn, LdapDriver.project_pattern, scope=self.ldap.SCOPE_BASE) return self.__to_project(attr) @sanitize @@ -395,6 +458,7 @@ class LdapDriver(object): """Check if project exists""" return self.get_project(project_id) is not None + @__local_cache('uid_attrs-%s') def __get_ldap_user(self, uid): """Retrieve LDAP user entry by id""" dn = FLAGS.ldap_user_subtree @@ -426,12 +490,20 @@ class LdapDriver(object): if scope is None: # One of the flags is 0! scope = self.ldap.SCOPE_SUBTREE + if query is None: + query = "(objectClass=*)" try: res = self.conn.search_s(dn, scope, query) except self.ldap.NO_SUCH_OBJECT: return [] # Just return the attributes - return [attributes for dn, attributes in res] + # FIXME(yorik-sar): Whole driver should be refactored to + # prevent this hack + res1 = [] + for dn, attrs in res: + attrs['dn'] = [dn] + res1.append(attrs) + return res1 def __find_role_dns(self, tree): """Find dns of role objects in given tree""" @@ -564,6 +636,7 @@ class LdapDriver(object): 'description': attr.get('description', [None])[0], 'member_ids': [self.__dn_to_uid(x) for x in member_dns]} + @__local_cache('uid_dn-%s') def __uid_to_dn(self, uid, search=True): """Convert uid to dn""" # By default return a generated DN @@ -576,6 +649,7 @@ class LdapDriver(object): userdn = user[0] return userdn + @__local_cache('pid_dn-%s') def __project_to_dn(self, pid, search=True): """Convert pid to dn""" # By default return a generated DN @@ -603,10 +677,11 @@ class LdapDriver(object): else: return None + @__local_cache('dn_uid-%s') def __dn_to_uid(self, dn): """Convert user dn to uid""" query = '(objectclass=novaUser)' - user = self.__find_object(dn, query) + user = self.__find_object(dn, query, scope=self.ldap.SCOPE_BASE) return user[FLAGS.ldap_user_id_attribute][0] diff --git a/nova/auth/manager.py b/nova/auth/manager.py index 07235a2a7..c71f0f161 100644 --- a/nova/auth/manager.py +++ b/nova/auth/manager.py @@ -23,6 +23,7 @@ Nova authentication management import os import shutil import string # pylint: disable=W0402 +import threading import tempfile import uuid import zipfile @@ -206,6 +207,7 @@ class AuthManager(object): """ _instance = None + __local = threading.local() def __new__(cls, *args, **kwargs): """Returns the AuthManager singleton""" @@ -223,12 +225,18 @@ class AuthManager(object): if driver or not getattr(self, 'driver', None): self.driver = utils.import_class(driver or FLAGS.auth_driver) - if FLAGS.memcached_servers: - import memcache - else: - from nova import fakememcache as memcache - self.mc = memcache.Client(FLAGS.memcached_servers, - debug=0) + @property + def mc(self): + try: + return self.__local.mc + except AttributeError: + if FLAGS.memcached_servers: + import memcache + else: + from nova import fakememcache as memcache + mc = memcache.Client(FLAGS.memcached_servers, debug=0) + self.__local.mc = mc + return mc def authenticate(self, access, signature, params, verb='GET', server_string='127.0.0.1:8773', path='/', From 06c7fa1746578b258970684a6dd988521da3445a Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Tue, 17 May 2011 17:39:19 +0400 Subject: [PATCH 017/164] Fixed mistyped key, caused huge performance leak. --- nova/flags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/flags.py b/nova/flags.py index 519793643..5c536f6d8 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -110,7 +110,7 @@ class FlagValues(gflags.FlagValues): return name in self.__dict__['__dirty'] def ClearDirty(self): - self.__dict__['__is_dirty'] = [] + self.__dict__['__dirty'] = [] def WasAlreadyParsed(self): return self.__dict__['__was_already_parsed'] From c3c1e48683acad51bbe4093904e4cb9f243fd6c5 Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Tue, 17 May 2011 17:45:48 +0400 Subject: [PATCH 018/164] PEP8 fixes. --- nova/auth/ldapdriver.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index 7849d941e..9fe0165a1 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -182,7 +182,7 @@ class LdapDriver(object): @sanitize def get_user_from_access_key(self, access): """Retrieve user by access key""" - cache_key = 'uak_dn_%s'%(access,) + cache_key = 'uak_dn_%s' % (access,) user_dn = self.mc.get(cache_key) if user_dn: user = self.__to_user( @@ -205,7 +205,8 @@ class LdapDriver(object): def get_project(self, pid): """Retrieve project by id""" dn = self.__project_to_dn(pid, search=False) - attr = self.__find_object(dn, LdapDriver.project_pattern, scope=self.ldap.SCOPE_BASE) + attr = self.__find_object(dn, LdapDriver.project_pattern, + scope=self.ldap.SCOPE_BASE) return self.__to_project(attr) @sanitize From 64b94e0efb0893c771f2219e564f2eee86672915 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 17 May 2011 07:49:12 -0700 Subject: [PATCH 019/164] provision working correctly now --- nova/scheduler/host_filter.py | 19 ++++++++++--------- nova/scheduler/zone_aware_scheduler.py | 26 +++++++++++++++++++++----- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 2b0d9af77..92ec827d3 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -99,9 +99,10 @@ class InstanceTypeFilter(HostFilter): capabilities = services.get('compute', {}) host_ram_mb = capabilities['host_memory_free'] disk_bytes = capabilities['disk_available'] - if host_ram_mb >= instance_type['memory_mb'] and \ - disk_bytes >= instance_type['local_gb']: - selected_hosts.append((host, capabilities)) + spec_ram = instance_type['memory_mb'] + spec_disk = instance_type['local_gb'] + if host_ram_mb >= spec_ram and disk_bytes >= spec_disk: + selected_hosts.append((host, capabilities)) return selected_hosts #host entries (currently) are like: @@ -110,15 +111,15 @@ class InstanceTypeFilter(HostFilter): # 'host_memory_total': 8244539392, # 'host_memory_overhead': 184225792, # 'host_memory_free': 3868327936, -# 'host_memory_free_computed': 3840843776}, -# 'host_other-config': {}, +# 'host_memory_free_computed': 3840843776, +# 'host_other_config': {}, # 'host_ip_address': '192.168.1.109', # 'host_cpu_info': {}, # 'disk_available': 32954957824, # 'disk_total': 50394562560, -# 'disk_used': 17439604736}, +# 'disk_used': 17439604736, # 'host_uuid': 'cedb9b39-9388-41df-8891-c5c9a0c0fe5f', -# 'host_name-label': 'xs-mini'} +# 'host_name_label': 'xs-mini'} # instance_type table has: #name = Column(String(255), unique=True) @@ -307,10 +308,10 @@ class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): # currently. Later we'll need to snoop for more detailed # host filter requests. instance_type = request_spec['instance_type'] - query = driver.instance_type_to_filter(instance_type) + name, query = driver.instance_type_to_filter(instance_type) return driver.filter_hosts(self.zone_manager, query) def weigh_hosts(self, num, request_spec, hosts): """Derived classes must override this method and return a lists of hosts in [{weight, hostname}] format.""" - return [dict(weight=1, hostname=hostname) for host, caps in hosts] + return [dict(weight=1, hostname=host) for host, caps in hosts] diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 614b1bb89..3ebb4caef 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -22,6 +22,8 @@ across zones. There are two expansion points to this class for: import operator +from nova import db +from nova import rpc from nova import log as logging from nova.scheduler import api from nova.scheduler import driver @@ -49,7 +51,8 @@ class ZoneAwareScheduler(driver.Scheduler): # TODO(sandy): We'll have to look for richer specs at some point. if 'blob' in request_spec: - return self.provision_instance(context, topic, request_spec) + return self.provision_resource(context, request_spec, + instance_id, kwargs) # Create build plan and provision ... build_plan = self.select(context, request_spec) @@ -57,14 +60,28 @@ class ZoneAwareScheduler(driver.Scheduler): raise driver.NoValidHost(_('No hosts were available')) for item in build_plan: - self.provision_instance(context, topic, item) + self.provision_resource(context, item, instance_id, kwargs) # Returning None short-circuits the routing to Compute (since # we've already done it here) return None - def provision_instance(context, topic, item): - """Create the requested instance in this Zone or a child zone.""" + def provision_resource(self, context, item, instance_id, kwargs): + """Create the requested resource in this Zone or a child zone.""" + if "hostname" in item: + host = item['hostname'] + kwargs['instance_id'] = instance_id + rpc.cast(context, + db.queue_get_for(context, "compute", host), + {"method": "run_instance", + "args": kwargs}) + LOG.debug(_("Casted to compute %(host)s for run_instance") + % locals()) + else: + # TODO(sandy) Provision in child zone ... + LOG.warning(_("Provision to Child Zone not supported (yet)") + % locals()) + pass return None def select(self, context, request_spec, *args, **kwargs): @@ -93,7 +110,6 @@ class ZoneAwareScheduler(driver.Scheduler): raise NotImplemented(_("Zone Aware Scheduler only understands " "Compute nodes (for now)")) - LOG.debug("specs = %s, ARGS = %s" % (request_spec, args, )) #TODO(sandy): how to infer this from OS API params? num_instances = 1 From 4967cec296ac04eaebe3cc7c623bc7e8e85780d0 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 17 May 2011 07:52:02 -0700 Subject: [PATCH 020/164] provision_resource no longer returns value --- nova/scheduler/zone_aware_scheduler.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 3ebb4caef..2050c8918 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -51,8 +51,8 @@ class ZoneAwareScheduler(driver.Scheduler): # TODO(sandy): We'll have to look for richer specs at some point. if 'blob' in request_spec: - return self.provision_resource(context, request_spec, - instance_id, kwargs) + self.provision_resource(context, request_spec, instance_id, kwargs) + return None # Create build plan and provision ... build_plan = self.select(context, request_spec) @@ -82,7 +82,6 @@ class ZoneAwareScheduler(driver.Scheduler): LOG.warning(_("Provision to Child Zone not supported (yet)") % locals()) pass - return None def select(self, context, request_spec, *args, **kwargs): """Select returns a list of weights and zone/host information From e9a29f5440a7c43b7dbb9cc447d047b51f53e9ac Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 17 May 2011 10:45:19 -0500 Subject: [PATCH 021/164] First cut at least cost scheduler --- nova/scheduler/least_cost.py | 79 +++++++++++++++++++++++++ nova/tests/test_least_cost_scheduler.py | 39 ++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 nova/scheduler/least_cost.py create mode 100644 nova/tests/test_least_cost_scheduler.py diff --git a/nova/scheduler/least_cost.py b/nova/scheduler/least_cost.py new file mode 100644 index 000000000..75dde81ca --- /dev/null +++ b/nova/scheduler/least_cost.py @@ -0,0 +1,79 @@ +import collections + +# TODO(sirp): this should be just `zone_aware` to match naming scheme +# TODO(sirp): perhaps all zone-aware stuff should go under a `zone_aware` +# module +from nova.scheduler import zone_aware_scheduler + +class LeastCostScheduler(zone_aware_scheduler.ZoneAwareScheduler): + def get_cost_fns(self): + """Returns a list of tuples containing weights and cost functions to + use for weighing hosts + """ + cost_fns = [] + + return cost_fns + + def weigh_hosts(self, num, specs, hosts): + """ + Returns a list of dictionaries of form: + [ {weight: weight, hostname: hostname} ] + """ + # FIXME(sirp): weigh_hosts should handle more than just instances + cost_fns = [] + hosts = [] + cost_hosts = weighted_sum(domain=hosts, weighted_fns=self.get_cost_fns()) + + # TODO convert hosts back to hostnames + weight_hostnames = [] + return weight_hostnames + +def normalize_list(L): + """Normalize an array of numbers such that each element satisfies: + 0 <= e <= 1 + """ + if not L: + return L + max_ = max(L) + if max_ > 0: + return [(float(e) / max_) for e in L] + return L + +def weighted_sum(domain, weighted_fns, normalize=True): + """ + Use the weighted-sum method to compute a score for an array of objects. + Normalize the results of the objective-functions so that the weights are + meaningful regardless of objective-function's range. + + domain - input to be scored + weighted_fns - list of weights and functions like: + [(weight, objective-functions)] + + Returns an unsorted list like: [(score, elem)] + """ + # Table of form: + # { domain1: [score1, score2, ..., scoreM] + # ... + # domainN: [score1, score2, ..., scoreM] } + score_table = collections.defaultdict(list) + + for weight, fn in weighted_fns: + scores = [fn(elem) for elem in domain] + + if normalize: + norm_scores = normalize_list(scores) + else: + norm_scores = scores + + for idx, score in enumerate(norm_scores): + weighted_score = score * weight + score_table[idx].append(weighted_score) + + # Sum rows in table to compute score for each element in domain + domain_scores = [] + for idx in sorted(score_table): + elem_score = sum(score_table[idx]) + elem = domain[idx] + domain_scores.append(elem_score) + + return domain_scores diff --git a/nova/tests/test_least_cost_scheduler.py b/nova/tests/test_least_cost_scheduler.py new file mode 100644 index 000000000..a3a18a09f --- /dev/null +++ b/nova/tests/test_least_cost_scheduler.py @@ -0,0 +1,39 @@ +from nova import test +from nova.scheduler import least_cost + +MB = 1024 * 1024 + +class FakeHost(object): + def __init__(self, host_id, free_ram, io): + self.id = host_id + self.free_ram = free_ram + self.io = io + +class WeightedSumTest(test.TestCase): + def test_empty_domain(self): + domain = [] + weighted_fns = [] + result = least_cost.weighted_sum(domain, weighted_fns) + expected = [] + self.assertEqual(expected, result) + + def test_basic_costing(self): + hosts = [ + FakeHost(1, 512 * MB, 100), + FakeHost(2, 256 * MB, 400), + FakeHost(3, 512 * MB, 100) + ] + + weighted_fns = [ + (1, lambda h: h.free_ram), # Fill-first, free_ram is a *cost* + (2, lambda h: h.io), # Avoid high I/O + ] + + costs = least_cost.weighted_sum(domain=hosts, weighted_fns=weighted_fns) + + # Each 256 MB unit of free-ram contributes 0.5 points by way of: + # cost = weight * (score/max_score) = 1 * (256/512) = 0.5 + # Each 100 iops of IO adds 0.5 points by way of: + # cost = 2 * (100/400) = 2 * 0.25 = 0.5 + expected = [1.5, 2.5, 1.5] + self.assertEqual(expected, costs) From e1d7a4870b6a23f53693900c61ce3851b6beaf28 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 17 May 2011 13:01:28 -0700 Subject: [PATCH 022/164] pep8 --- nova/scheduler/zone_aware_scheduler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 2050c8918..dc18fc427 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -78,7 +78,7 @@ class ZoneAwareScheduler(driver.Scheduler): LOG.debug(_("Casted to compute %(host)s for run_instance") % locals()) else: - # TODO(sandy) Provision in child zone ... + # TODO(sandy) Provision in child zone ... LOG.warning(_("Provision to Child Zone not supported (yet)") % locals()) pass From a74cfa7ef240205fa4ec4e9b5080d51263a7b207 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 17 May 2011 17:27:04 -0500 Subject: [PATCH 023/164] Adding fill first cost function --- nova/scheduler/least_cost.py | 12 +++++++++ nova/test.py | 16 +++++++++--- nova/tests/test_least_cost_scheduler.py | 33 +++++++++++++++++++++++-- 3 files changed, 56 insertions(+), 5 deletions(-) diff --git a/nova/scheduler/least_cost.py b/nova/scheduler/least_cost.py index e47951f17..79376c358 100644 --- a/nova/scheduler/least_cost.py +++ b/nova/scheduler/least_cost.py @@ -34,6 +34,8 @@ flags.DEFINE_list('least_cost_scheduler_cost_functions', 'Which cost functions the LeastCostScheduler should use.') +# TODO(sirp): Once we have enough of these rules, we can break them out into a +# cost_functions.py file (perhaps in a least_cost_scheduler directory) flags.DEFINE_integer('noop_cost_fn_weight', 1, 'How much weight to give the noop cost function') def noop_cost_fn(host): @@ -41,6 +43,16 @@ def noop_cost_fn(host): return 1 +flags.DEFINE_integer('fill_first_cost_fn_weight', 1, + 'How much weight to give the fill-first cost function') +def fill_first_cost_fn(host): + """Prefer hosts that have less ram available, filter_hosts will exclude + hosts that don't have enough ram""" + hostname, caps = host + free_mem = caps['compute']['host_memory_free'] + return free_mem + + class LeastCostScheduler(zone_aware_scheduler.ZoneAwareScheduler): def get_cost_fns(self): """Returns a list of tuples containing weights and cost functions to diff --git a/nova/test.py b/nova/test.py index 4deb2a175..401f82d38 100644 --- a/nova/test.py +++ b/nova/test.py @@ -181,7 +181,7 @@ class TestCase(unittest.TestCase): wsgi.Server.start = _wrapped_start # Useful assertions - def assertDictMatch(self, d1, d2): + def assertDictMatch(self, d1, d2, approx_equal=False, tolerance=0.001): """Assert two dicts are equivalent. This is a 'deep' match in the sense that it handles nested @@ -212,15 +212,24 @@ class TestCase(unittest.TestCase): for key in d1keys: d1value = d1[key] d2value = d2[key] + + try: + within_tolerance = abs(float(d1value) - float(d2value)) < tolerance + except ValueError: + # If both values aren't convertable to float, just ignore + within_tolerance = False + if hasattr(d1value, 'keys') and hasattr(d2value, 'keys'): self.assertDictMatch(d1value, d2value) elif 'DONTCARE' in (d1value, d2value): continue + elif approx_equal and within_tolerance: + continue elif d1value != d2value: raise_assertion("d1['%(key)s']=%(d1value)s != " "d2['%(key)s']=%(d2value)s" % locals()) - def assertDictListMatch(self, L1, L2): + def assertDictListMatch(self, L1, L2, approx_equal=False, tolerance=0.001): """Assert a list of dicts are equivalent.""" def raise_assertion(msg): L1str = str(L1) @@ -236,4 +245,5 @@ class TestCase(unittest.TestCase): 'len(L2)=%(L2count)d' % locals()) for d1, d2 in zip(L1, L2): - self.assertDictMatch(d1, d2) + self.assertDictMatch(d1, d2, approx_equal=approx_equal, + tolerance=tolerance) diff --git a/nova/tests/test_least_cost_scheduler.py b/nova/tests/test_least_cost_scheduler.py index b2318a3bf..b7bcd2f02 100644 --- a/nova/tests/test_least_cost_scheduler.py +++ b/nova/tests/test_least_cost_scheduler.py @@ -119,7 +119,7 @@ class LeastCostSchedulerTestCase(test.TestCase): def assertWeights(self, expected, num, request_spec, hosts): weighted = self.sched.weigh_hosts(num, request_spec, hosts) - self.assertDictListMatch(weighted, expected) + self.assertDictListMatch(weighted, expected, approx_equal=True) def test_no_hosts(self): num = 1 @@ -137,12 +137,41 @@ class LeastCostSchedulerTestCase(test.TestCase): num = 1 request_spec = {} - hosts = self.sched.filter_hosts(num, request_spec) expected = [ dict(weight=1, hostname=hostname) for hostname, caps in hosts] self.assertWeights(expected, num, request_spec, hosts) + def test_cost_fn_weights(self): + FLAGS.least_cost_scheduler_cost_functions = [ + 'nova.scheduler.least_cost.noop_cost_fn' + ] FLAGS.noop_cost_fn_weight = 2 + + num = 1 + request_spec = {} + hosts = self.sched.filter_hosts(num, request_spec) + expected = [ dict(weight=2, hostname=hostname) for hostname, caps in hosts] self.assertWeights(expected, num, request_spec, hosts) + + def test_fill_first_cost_fn(self): + FLAGS.least_cost_scheduler_cost_functions = [ + 'nova.scheduler.least_cost.fill_first_cost_fn' + ] + FLAGS.fill_first_cost_fn_weight = 1 + + num = 1 + request_spec = {} + hosts = self.sched.filter_hosts(num, request_spec) + + expected = [] + for idx, (hostname, caps) in enumerate(hosts): + # Costs are normalized so over 10 hosts, each host with increasing + # free ram will cost 1/N more. Since the lowest cost host has some + # free ram, we add in the 1/N for the base_cost + weight = 0.1 + (0.1 * idx) + weight_dict = dict(weight=weight, hostname=hostname) + expected.append(weight_dict) + + self.assertWeights(expected, num, request_spec, hosts) From f86a7214b40db311b778c31ef205986e27a46148 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 17 May 2011 17:44:08 -0500 Subject: [PATCH 024/164] Using import_class to import filter_host driver --- nova/scheduler/host_filter.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 7cb41a433..117f08242 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -42,6 +42,7 @@ from nova import exception from nova import flags from nova import log as logging from nova.scheduler import zone_aware_scheduler +from nova import utils LOG = logging.getLogger('nova.scheduler.host_filter') @@ -283,11 +284,13 @@ def choose_driver(driver_name=None): if not driver_name: driver_name = FLAGS.default_host_filter_driver - # FIXME(sirp): use utils.import_class here - for driver in DRIVERS: - if "%s.%s" % (driver.__module__, driver.__name__) == driver_name: - return driver() - raise exception.SchedulerHostFilterDriverNotFound(driver_name=driver_name) + + try: + driver = utils.import_object(driver_name) + return driver + except exception.ClassNotFound: + raise exception.SchedulerHostFilterDriverNotFound( + driver_name=driver_name) class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): From cdc67e0f11ba40d0794e8a5c715768cd15289899 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Tue, 17 May 2011 18:57:00 -0400 Subject: [PATCH 025/164] added util functions to get image service --- nova/utils.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/nova/utils.py b/nova/utils.py index 361fc9873..e7ce0a79b 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -724,3 +724,51 @@ def parse_server_string(server_str): except: LOG.debug(_('Invalid server_string: %s' % server_str)) return ('', '') + + +def parse_image_ref(image_ref): + """ + Parse an imageRef and return (id, host, port) + + If the image_ref passed in is an integer, it will + return (image_ref, None, None), otherwise it will + return (id, host, port) + + image_ref - imageRef for an image + + """ + + if is_int(image_ref): + return (image_ref, None, None) + + o = urlparse(image_ref) + # Default to port 80 if not passed, should this be 9292? + port = o.port or 80 + host = o.netloc.split(':', 1)[0] + id = o.path.split('/')[-1] + + return (id, host, port) + + +def get_image_service(image_ref): + """ + Get the proper image_service for an image_id + + image_ref - image ref/id for an image + """ + + (image_id, host, port) = parse_image_ref(image_ref) + + image_service = None + + if host: + GlanceImageService = utils.import_class(FLAGS.glance_image_service) + GlanceClient = utils.import_class('glance.client.Client') + + glance_client = GlanceClient(host, port) + image_service = GlanceImageService(glance_client) + else: + ImageService = utils.import_class(FLAGS.image_service) + image_service = ImageService() + + return (image_id, image_service) From 6f344e87d7fc3a5250f30715032fa419742fec53 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Tue, 17 May 2011 19:07:44 -0400 Subject: [PATCH 026/164] updates to utils methods, initial usage in images.py --- nova/utils.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nova/utils.py b/nova/utils.py index e7ce0a79b..c7da95a97 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -750,12 +750,17 @@ def parse_image_ref(image_ref): return (id, host, port) -def get_image_service(image_ref): +def get_image_service(image_ref=None): """ Get the proper image_service for an image_id + Returns (image_service, image_id) image_ref - image ref/id for an image """ + ImageService = utils.import_class(FLAGS.image_service) + + if not image_ref: + return (ImageService(), -1) (image_id, host, port) = parse_image_ref(image_ref) @@ -768,7 +773,6 @@ def get_image_service(image_ref): glance_client = GlanceClient(host, port) image_service = GlanceImageService(glance_client) else: - ImageService = utils.import_class(FLAGS.image_service) image_service = ImageService() - return (image_id, image_service) + return (image_service, id) From e87595db1aac816c0a0ed2cccb4f3d7b6a95298b Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 17 May 2011 18:15:31 -0500 Subject: [PATCH 027/164] Pep8 fixes --- nova/exception.py | 3 +++ nova/scheduler/least_cost.py | 30 +++++++++++++++++-------- nova/scheduler/zone_aware_scheduler.py | 11 ++++----- nova/test.py | 5 +++-- nova/tests/test_least_cost_scheduler.py | 18 +++++++++------ 5 files changed, 44 insertions(+), 23 deletions(-) diff --git a/nova/exception.py b/nova/exception.py index 63ed6dd5e..16c443c61 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -460,15 +460,18 @@ class FlavorNotFound(NotFound): class ZoneNotFound(NotFound): message = _("Zone %(zone_id)s could not be found.") + # TODO(sirp): move these into the schedule classes since they are internal? class SchedulerHostFilterDriverNotFound(NotFound): message = _("Scheduler Host Filter Driver %(driver_name)s could" " not be found.") + class SchedulerCostFunctionNotFound(NotFound): message = _("Scheduler cost function %(cost_fn_str)s could" " not be found.") + class SchedulerWeightFlagNotFound(NotFound): message = _("Scheduler weight flag not found: %(flag_name)s") diff --git a/nova/scheduler/least_cost.py b/nova/scheduler/least_cost.py index 79376c358..629fe2e42 100644 --- a/nova/scheduler/least_cost.py +++ b/nova/scheduler/least_cost.py @@ -13,16 +13,19 @@ # License for the specific language governing permissions and limitations # under the License. """ -Helpful docstring here +Least Cost Scheduler is a mechanism for choosing which host machines to +provision a set of resources to. The input of the least-cost-scheduler is a +set of objective-functions, called the 'cost-functions', a weight for each +cost-function, and a list of candidate hosts (gathered via FilterHosts). + +The cost-function and weights are tabulated, and the host with the least cost +is then selected for provisioning. """ import collections from nova import flags from nova import log as logging -# TODO(sirp): this should be just `zone_aware` to match naming scheme -# TODO(sirp): perhaps all zone-aware stuff should go under a `zone_aware` -# module from nova.scheduler import zone_aware_scheduler from nova import utils @@ -38,6 +41,8 @@ flags.DEFINE_list('least_cost_scheduler_cost_functions', # cost_functions.py file (perhaps in a least_cost_scheduler directory) flags.DEFINE_integer('noop_cost_fn_weight', 1, 'How much weight to give the noop cost function') + + def noop_cost_fn(host): """Return a pre-weight cost of 1 for each host""" return 1 @@ -45,6 +50,8 @@ def noop_cost_fn(host): flags.DEFINE_integer('fill_first_cost_fn_weight', 1, 'How much weight to give the fill-first cost function') + + def fill_first_cost_fn(host): """Prefer hosts that have less ram available, filter_hosts will exclude hosts that don't have enough ram""" @@ -68,7 +75,7 @@ class LeastCostScheduler(zone_aware_scheduler.ZoneAwareScheduler): except exception.ClassNotFound: raise exception.SchedulerCostFunctionNotFound( cost_fn_str=cost_fn_str) - + try: weight = getattr(FLAGS, "%s_weight" % cost_fn.__name__) except AttributeError: @@ -82,17 +89,22 @@ class LeastCostScheduler(zone_aware_scheduler.ZoneAwareScheduler): def weigh_hosts(self, num, request_spec, hosts): """Returns a list of dictionaries of form: [ {weight: weight, hostname: hostname} ]""" + # FIXME(sirp): weigh_hosts should handle more than just instances - hostnames = [hostname for hostname, _ in hosts] + hostnames = [hostname for hostname, caps in hosts] cost_fns = self.get_cost_fns() costs = weighted_sum(domain=hosts, weighted_fns=cost_fns) - + weighted = [] + weight_log = [] for cost, hostname in zip(costs, hostnames): + weight_log.append("%s: %s" % (hostname, "%.2f" % cost)) weight_dict = dict(weight=cost, hostname=hostname) weighted.append(weight_dict) - return weighted + + LOG.debug(_("Weighted Costs => %s") % weight_log) + return weighted def normalize_list(L): @@ -110,7 +122,7 @@ def weighted_sum(domain, weighted_fns, normalize=True): """Use the weighted-sum method to compute a score for an array of objects. Normalize the results of the objective-functions so that the weights are meaningful regardless of objective-function's range. - + domain - input to be scored weighted_fns - list of weights and functions like: [(weight, objective-functions)] diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index fa5b3b1b6..a1a68ce5e 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -80,7 +80,7 @@ class ZoneAwareScheduler(driver.Scheduler): LOG.debug(_("Casted to compute %(host)s for run_instance") % locals()) else: - # TODO(sandy) Provision in child zone ... + # TODO(sandy) Provision in child zone ... LOG.warning(_("Provision to Child Zone not supported (yet)") % locals()) pass @@ -117,11 +117,11 @@ class ZoneAwareScheduler(driver.Scheduler): # Filter local hosts based on requirements ... host_list = self.filter_hosts(num_instances, request_spec) - # then weigh the selected hosts. - # weighted = [{weight=weight, name=hostname}, ...] - # TODO(sirp): weigh_hosts should also be a function of 'topic' or # resources, so that we can apply different objective functions to it + + # then weigh the selected hosts. + # weighted = [{weight=weight, name=hostname}, ...] weighted = self.weigh_hosts(num_instances, request_spec, host_list) # Next, tack on the best weights from the child zones ... @@ -145,8 +145,9 @@ class ZoneAwareScheduler(driver.Scheduler): """Derived classes must override this method and return a list of hosts in [(hostname, capability_dict)] format.""" # NOTE(sirp): The default logic is the equivalent to AllHostsFilter + service_states = self.zone_manager.service_states return [(host, services) - for host, services in self.zone_manager.service_states.iteritems()] + for host, services in service_states.iteritems()] def weigh_hosts(self, num, request_spec, hosts): """Derived classes may override this to provide more sophisticated diff --git a/nova/test.py b/nova/test.py index 401f82d38..00a16dd68 100644 --- a/nova/test.py +++ b/nova/test.py @@ -212,9 +212,10 @@ class TestCase(unittest.TestCase): for key in d1keys: d1value = d1[key] d2value = d2[key] - + try: - within_tolerance = abs(float(d1value) - float(d2value)) < tolerance + error = abs(float(d1value) - float(d2value)) + within_tolerance = error <= tolerance except ValueError: # If both values aren't convertable to float, just ignore within_tolerance = False diff --git a/nova/tests/test_least_cost_scheduler.py b/nova/tests/test_least_cost_scheduler.py index b7bcd2f02..c8ce7892f 100644 --- a/nova/tests/test_least_cost_scheduler.py +++ b/nova/tests/test_least_cost_scheduler.py @@ -30,6 +30,7 @@ class FakeHost(object): self.free_ram = free_ram self.io = io + class WeightedSumTestCase(test.TestCase): def test_empty_domain(self): domain = [] @@ -50,14 +51,15 @@ class WeightedSumTestCase(test.TestCase): (2, lambda h: h.io), # Avoid high I/O ] - costs = least_cost.weighted_sum(domain=hosts, weighted_fns=weighted_fns) + costs = least_cost.weighted_sum( + domain=hosts, weighted_fns=weighted_fns) # Each 256 MB unit of free-ram contributes 0.5 points by way of: # cost = weight * (score/max_score) = 1 * (256/512) = 0.5 # Each 100 iops of IO adds 0.5 points by way of: # cost = 2 * (100/400) = 2 * 0.25 = 0.5 expected = [1.5, 2.5, 1.5] - self.assertEqual(expected, costs) + self.assertEqual(expected, costs) # TODO(sirp): unify this with test_host_filter tests? possibility of sharing @@ -65,6 +67,7 @@ class WeightedSumTestCase(test.TestCase): class FakeZoneManager: pass + class LeastCostSchedulerTestCase(test.TestCase): def _host_caps(self, multiplier): # Returns host capabilities in the following way: @@ -116,7 +119,6 @@ class LeastCostSchedulerTestCase(test.TestCase): #FLAGS.default_host_filter_driver = self.old_flag super(LeastCostSchedulerTestCase, self).tearDown() - def assertWeights(self, expected, num, request_spec, hosts): weighted = self.sched.weigh_hosts(num, request_spec, hosts) self.assertDictListMatch(weighted, expected, approx_equal=True) @@ -138,8 +140,9 @@ class LeastCostSchedulerTestCase(test.TestCase): num = 1 request_spec = {} hosts = self.sched.filter_hosts(num, request_spec) - - expected = [ dict(weight=1, hostname=hostname) for hostname, caps in hosts] + + expected = [dict(weight=1, hostname=hostname) + for hostname, caps in hosts] self.assertWeights(expected, num, request_spec, hosts) def test_cost_fn_weights(self): @@ -152,7 +155,8 @@ class LeastCostSchedulerTestCase(test.TestCase): request_spec = {} hosts = self.sched.filter_hosts(num, request_spec) - expected = [ dict(weight=2, hostname=hostname) for hostname, caps in hosts] + expected = [dict(weight=2, hostname=hostname) + for hostname, caps in hosts] self.assertWeights(expected, num, request_spec, hosts) def test_fill_first_cost_fn(self): @@ -164,7 +168,7 @@ class LeastCostSchedulerTestCase(test.TestCase): num = 1 request_spec = {} hosts = self.sched.filter_hosts(num, request_spec) - + expected = [] for idx, (hostname, caps) in enumerate(hosts): # Costs are normalized so over 10 hosts, each host with increasing From 4dc30f8b4c639a35e857a0f6e9587924329ba10b Mon Sep 17 00:00:00 2001 From: William Wolf Date: Tue, 17 May 2011 19:30:29 -0400 Subject: [PATCH 028/164] added is_int function to utils --- nova/utils.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/nova/utils.py b/nova/utils.py index c7da95a97..fff916527 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -726,6 +726,11 @@ def parse_server_string(server_str): return ('', '') +def is_int(x): + """ Return if passed in variable is integer or not """ + return re.match(r'\d+$', str(x)) + + def parse_image_ref(image_ref): """ Parse an imageRef and return (id, host, port) @@ -757,18 +762,18 @@ def get_image_service(image_ref=None): image_ref - image ref/id for an image """ - ImageService = utils.import_class(FLAGS.image_service) + ImageService = import_class(FLAGS.image_service) if not image_ref: - return (ImageService(), -1) + return (ImageService(), None) (image_id, host, port) = parse_image_ref(image_ref) image_service = None if host: - GlanceImageService = utils.import_class(FLAGS.glance_image_service) - GlanceClient = utils.import_class('glance.client.Client') + GlanceImageService = import_class(FLAGS.glance_image_service) + GlanceClient = import_class('glance.client.Client') glance_client = GlanceClient(host, port) image_service = GlanceImageService(glance_client) From 7554cd2b7b01bf9dffc81a4fa7a8aa992de7a654 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 17 May 2011 18:32:56 -0500 Subject: [PATCH 029/164] Moving tests into scheduler subdirectory --- nova/scheduler/host_filter.py | 5 - nova/tests/{ => scheduler}/test_scheduler.py | 0 .../test_zone_aware_scheduler.py | 0 nova/tests/test_host_filter.py | 211 ------------------ nova/tests/test_least_cost_scheduler.py | 181 --------------- 5 files changed, 397 deletions(-) rename nova/tests/{ => scheduler}/test_scheduler.py (100%) rename nova/tests/{ => scheduler}/test_zone_aware_scheduler.py (100%) delete mode 100644 nova/tests/test_host_filter.py delete mode 100644 nova/tests/test_least_cost_scheduler.py diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 117f08242..79e9f3159 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -313,8 +313,3 @@ class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): instance_type = request_spec['instance_type'] name, query = driver.instance_type_to_filter(instance_type) return driver.filter_hosts(self.zone_manager, query) - - def weigh_hosts(self, num, request_spec, hosts): - """Derived classes must override this method and return - a lists of hosts in [{weight, hostname}] format.""" - return [dict(weight=1, hostname=host) for host, caps in hosts] diff --git a/nova/tests/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py similarity index 100% rename from nova/tests/test_scheduler.py rename to nova/tests/scheduler/test_scheduler.py diff --git a/nova/tests/test_zone_aware_scheduler.py b/nova/tests/scheduler/test_zone_aware_scheduler.py similarity index 100% rename from nova/tests/test_zone_aware_scheduler.py rename to nova/tests/scheduler/test_zone_aware_scheduler.py diff --git a/nova/tests/test_host_filter.py b/nova/tests/test_host_filter.py deleted file mode 100644 index 1a2a86a79..000000000 --- a/nova/tests/test_host_filter.py +++ /dev/null @@ -1,211 +0,0 @@ -# Copyright 2011 OpenStack LLC. -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -""" -Tests For Scheduler Host Filter Drivers. -""" - -import json - -from nova import exception -from nova import flags -from nova import test -from nova.scheduler import host_filter - -FLAGS = flags.FLAGS - - -class FakeZoneManager: - pass - - -class HostFilterTestCase(test.TestCase): - """Test case for host filter drivers.""" - - def _host_caps(self, multiplier): - # Returns host capabilities in the following way: - # host1 = memory:free 10 (100max) - # disk:available 100 (1000max) - # hostN = memory:free 10 + 10N - # disk:available 100 + 100N - # in other words: hostN has more resources than host0 - # which means ... don't go above 10 hosts. - return {'host_name-description': 'XenServer %s' % multiplier, - 'host_hostname': 'xs-%s' % multiplier, - 'host_memory_total': 100, - 'host_memory_overhead': 10, - 'host_memory_free': 10 + multiplier * 10, - 'host_memory_free-computed': 10 + multiplier * 10, - 'host_other-config': {}, - 'host_ip_address': '192.168.1.%d' % (100 + multiplier), - 'host_cpu_info': {}, - 'disk_available': 100 + multiplier * 100, - 'disk_total': 1000, - 'disk_used': 0, - 'host_uuid': 'xxx-%d' % multiplier, - 'host_name-label': 'xs-%s' % multiplier} - - def setUp(self): - super(HostFilterTestCase, self).setUp() - self.old_flag = FLAGS.default_host_filter_driver - FLAGS.default_host_filter_driver = \ - 'nova.scheduler.host_filter.AllHostsFilter' - self.instance_type = dict(name='tiny', - memory_mb=50, - vcpus=10, - local_gb=500, - flavorid=1, - swap=500, - rxtx_quota=30000, - rxtx_cap=200) - - self.zone_manager = FakeZoneManager() - states = {} - for x in xrange(10): - states['host%02d' % (x + 1)] = {'compute': self._host_caps(x)} - self.zone_manager.service_states = states - - def tearDown(self): - FLAGS.default_host_filter_driver = self.old_flag - super(HostFilterTestCase, self).tearDown() - - def test_choose_driver(self): - # Test default driver ... - driver = host_filter.choose_driver() - self.assertEquals(driver._full_name(), - 'nova.scheduler.host_filter.AllHostsFilter') - # Test valid driver ... - driver = host_filter.choose_driver( - 'nova.scheduler.host_filter.InstanceTypeFilter') - self.assertEquals(driver._full_name(), - 'nova.scheduler.host_filter.InstanceTypeFilter') - # Test invalid driver ... - try: - host_filter.choose_driver('does not exist') - self.fail("Should not find driver") - except exception.SchedulerHostFilterDriverNotFound: - pass - - def test_all_host_driver(self): - driver = host_filter.AllHostsFilter() - cooked = driver.instance_type_to_filter(self.instance_type) - hosts = driver.filter_hosts(self.zone_manager, cooked) - self.assertEquals(10, len(hosts)) - for host, capabilities in hosts: - self.assertTrue(host.startswith('host')) - - def test_instance_type_driver(self): - driver = host_filter.InstanceTypeFilter() - # filter all hosts that can support 50 ram and 500 disk - name, cooked = driver.instance_type_to_filter(self.instance_type) - self.assertEquals('nova.scheduler.host_filter.InstanceTypeFilter', - name) - hosts = driver.filter_hosts(self.zone_manager, cooked) - self.assertEquals(6, len(hosts)) - just_hosts = [host for host, caps in hosts] - just_hosts.sort() - self.assertEquals('host05', just_hosts[0]) - self.assertEquals('host10', just_hosts[5]) - - def test_json_driver(self): - driver = host_filter.JsonFilter() - # filter all hosts that can support 50 ram and 500 disk - name, cooked = driver.instance_type_to_filter(self.instance_type) - self.assertEquals('nova.scheduler.host_filter.JsonFilter', name) - hosts = driver.filter_hosts(self.zone_manager, cooked) - self.assertEquals(6, len(hosts)) - just_hosts = [host for host, caps in hosts] - just_hosts.sort() - self.assertEquals('host05', just_hosts[0]) - self.assertEquals('host10', just_hosts[5]) - - # Try some custom queries - - raw = ['or', - ['and', - ['<', '$compute.host_memory_free', 30], - ['<', '$compute.disk_available', 300] - ], - ['and', - ['>', '$compute.host_memory_free', 70], - ['>', '$compute.disk_available', 700] - ] - ] - cooked = json.dumps(raw) - hosts = driver.filter_hosts(self.zone_manager, cooked) - - self.assertEquals(5, len(hosts)) - just_hosts = [host for host, caps in hosts] - just_hosts.sort() - for index, host in zip([1, 2, 8, 9, 10], just_hosts): - self.assertEquals('host%02d' % index, host) - - raw = ['not', - ['=', '$compute.host_memory_free', 30], - ] - cooked = json.dumps(raw) - hosts = driver.filter_hosts(self.zone_manager, cooked) - - self.assertEquals(9, len(hosts)) - just_hosts = [host for host, caps in hosts] - just_hosts.sort() - for index, host in zip([1, 2, 4, 5, 6, 7, 8, 9, 10], just_hosts): - self.assertEquals('host%02d' % index, host) - - raw = ['in', '$compute.host_memory_free', 20, 40, 60, 80, 100] - cooked = json.dumps(raw) - hosts = driver.filter_hosts(self.zone_manager, cooked) - - self.assertEquals(5, len(hosts)) - just_hosts = [host for host, caps in hosts] - just_hosts.sort() - for index, host in zip([2, 4, 6, 8, 10], just_hosts): - self.assertEquals('host%02d' % index, host) - - # Try some bogus input ... - raw = ['unknown command', ] - cooked = json.dumps(raw) - try: - driver.filter_hosts(self.zone_manager, cooked) - self.fail("Should give KeyError") - except KeyError, e: - pass - - self.assertTrue(driver.filter_hosts(self.zone_manager, json.dumps([]))) - self.assertTrue(driver.filter_hosts(self.zone_manager, json.dumps({}))) - self.assertTrue(driver.filter_hosts(self.zone_manager, json.dumps( - ['not', True, False, True, False] - ))) - - try: - driver.filter_hosts(self.zone_manager, json.dumps( - 'not', True, False, True, False - )) - self.fail("Should give KeyError") - except KeyError, e: - pass - - self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( - ['=', '$foo', 100] - ))) - self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( - ['=', '$.....', 100] - ))) - self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( - ['>', ['and', ['or', ['not', ['<', ['>=', ['<=', ['in', ]]]]]]]] - ))) - - self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( - ['=', {}, ['>', '$missing....foo']] - ))) diff --git a/nova/tests/test_least_cost_scheduler.py b/nova/tests/test_least_cost_scheduler.py deleted file mode 100644 index c8ce7892f..000000000 --- a/nova/tests/test_least_cost_scheduler.py +++ /dev/null @@ -1,181 +0,0 @@ -# Copyright 2011 OpenStack LLC. -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -""" -Tests For Least Cost Scheduler -""" - -from nova import flags -from nova import test -from nova.scheduler import least_cost - -MB = 1024 * 1024 -FLAGS = flags.FLAGS - - -class FakeHost(object): - def __init__(self, host_id, free_ram, io): - self.id = host_id - self.free_ram = free_ram - self.io = io - - -class WeightedSumTestCase(test.TestCase): - def test_empty_domain(self): - domain = [] - weighted_fns = [] - result = least_cost.weighted_sum(domain, weighted_fns) - expected = [] - self.assertEqual(expected, result) - - def test_basic_costing(self): - hosts = [ - FakeHost(1, 512 * MB, 100), - FakeHost(2, 256 * MB, 400), - FakeHost(3, 512 * MB, 100) - ] - - weighted_fns = [ - (1, lambda h: h.free_ram), # Fill-first, free_ram is a *cost* - (2, lambda h: h.io), # Avoid high I/O - ] - - costs = least_cost.weighted_sum( - domain=hosts, weighted_fns=weighted_fns) - - # Each 256 MB unit of free-ram contributes 0.5 points by way of: - # cost = weight * (score/max_score) = 1 * (256/512) = 0.5 - # Each 100 iops of IO adds 0.5 points by way of: - # cost = 2 * (100/400) = 2 * 0.25 = 0.5 - expected = [1.5, 2.5, 1.5] - self.assertEqual(expected, costs) - - -# TODO(sirp): unify this with test_host_filter tests? possibility of sharing -# test setup code -class FakeZoneManager: - pass - - -class LeastCostSchedulerTestCase(test.TestCase): - def _host_caps(self, multiplier): - # Returns host capabilities in the following way: - # host1 = memory:free 10 (100max) - # disk:available 100 (1000max) - # hostN = memory:free 10 + 10N - # disk:available 100 + 100N - # in other words: hostN has more resources than host0 - # which means ... don't go above 10 hosts. - return {'host_name-description': 'XenServer %s' % multiplier, - 'host_hostname': 'xs-%s' % multiplier, - 'host_memory_total': 100, - 'host_memory_overhead': 10, - 'host_memory_free': 10 + multiplier * 10, - 'host_memory_free-computed': 10 + multiplier * 10, - 'host_other-config': {}, - 'host_ip_address': '192.168.1.%d' % (100 + multiplier), - 'host_cpu_info': {}, - 'disk_available': 100 + multiplier * 100, - 'disk_total': 1000, - 'disk_used': 0, - 'host_uuid': 'xxx-%d' % multiplier, - 'host_name-label': 'xs-%s' % multiplier} - - def setUp(self): - super(LeastCostSchedulerTestCase, self).setUp() - #self.old_flag = FLAGS.default_host_filter_driver - #FLAGS.default_host_filter_driver = \ - # 'nova.scheduler.host_filter.AllHostsFilter' - self.instance_type = dict(name='tiny', - memory_mb=50, - vcpus=10, - local_gb=500, - flavorid=1, - swap=500, - rxtx_quota=30000, - rxtx_cap=200) - - zone_manager = FakeZoneManager() - states = {} - for x in xrange(10): - states['host%02d' % (x + 1)] = {'compute': self._host_caps(x)} - zone_manager.service_states = states - - self.sched = least_cost.LeastCostScheduler() - self.sched.zone_manager = zone_manager - - def tearDown(self): - #FLAGS.default_host_filter_driver = self.old_flag - super(LeastCostSchedulerTestCase, self).tearDown() - - def assertWeights(self, expected, num, request_spec, hosts): - weighted = self.sched.weigh_hosts(num, request_spec, hosts) - self.assertDictListMatch(weighted, expected, approx_equal=True) - - def test_no_hosts(self): - num = 1 - request_spec = {} - hosts = [] - - expected = [] - self.assertWeights(expected, num, request_spec, hosts) - - def test_noop_cost_fn(self): - FLAGS.least_cost_scheduler_cost_functions = [ - 'nova.scheduler.least_cost.noop_cost_fn' - ] - FLAGS.noop_cost_fn_weight = 1 - - num = 1 - request_spec = {} - hosts = self.sched.filter_hosts(num, request_spec) - - expected = [dict(weight=1, hostname=hostname) - for hostname, caps in hosts] - self.assertWeights(expected, num, request_spec, hosts) - - def test_cost_fn_weights(self): - FLAGS.least_cost_scheduler_cost_functions = [ - 'nova.scheduler.least_cost.noop_cost_fn' - ] - FLAGS.noop_cost_fn_weight = 2 - - num = 1 - request_spec = {} - hosts = self.sched.filter_hosts(num, request_spec) - - expected = [dict(weight=2, hostname=hostname) - for hostname, caps in hosts] - self.assertWeights(expected, num, request_spec, hosts) - - def test_fill_first_cost_fn(self): - FLAGS.least_cost_scheduler_cost_functions = [ - 'nova.scheduler.least_cost.fill_first_cost_fn' - ] - FLAGS.fill_first_cost_fn_weight = 1 - - num = 1 - request_spec = {} - hosts = self.sched.filter_hosts(num, request_spec) - - expected = [] - for idx, (hostname, caps) in enumerate(hosts): - # Costs are normalized so over 10 hosts, each host with increasing - # free ram will cost 1/N more. Since the lowest cost host has some - # free ram, we add in the 1/N for the base_cost - weight = 0.1 + (0.1 * idx) - weight_dict = dict(weight=weight, hostname=hostname) - expected.append(weight_dict) - - self.assertWeights(expected, num, request_spec, hosts) From 75595990048d22feb35f4215f550e0aceeb244d4 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 17 May 2011 18:49:21 -0500 Subject: [PATCH 030/164] Moving into scheduler subdir and refactoring out common code --- nova/tests/scheduler/__init__.py | 0 nova/tests/scheduler/test_host_filter.py | 189 ++++++++++++++++++ .../scheduler/test_least_cost_scheduler.py | 146 ++++++++++++++ .../scheduler/test_zone_aware_scheduler.py | 31 +++ 4 files changed, 366 insertions(+) create mode 100644 nova/tests/scheduler/__init__.py create mode 100644 nova/tests/scheduler/test_host_filter.py create mode 100644 nova/tests/scheduler/test_least_cost_scheduler.py diff --git a/nova/tests/scheduler/__init__.py b/nova/tests/scheduler/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/nova/tests/scheduler/test_host_filter.py b/nova/tests/scheduler/test_host_filter.py new file mode 100644 index 000000000..c3af50a6e --- /dev/null +++ b/nova/tests/scheduler/test_host_filter.py @@ -0,0 +1,189 @@ +# Copyright 2011 OpenStack LLC. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +""" +Tests For Scheduler Host Filter Drivers. +""" + +import json + +from nova import exception +from nova import flags +from nova import test +from nova.scheduler import host_filter +from nova.tests.scheduler import test_zone_aware_scheduler + +FLAGS = flags.FLAGS + + +class FakeZoneManager: + pass + + +class HostFilterTestCase(test.TestCase): + """Test case for host filter drivers.""" + + def setUp(self): + super(HostFilterTestCase, self).setUp() + self.old_flag = FLAGS.default_host_filter_driver + FLAGS.default_host_filter_driver = \ + 'nova.scheduler.host_filter.AllHostsFilter' + self.instance_type = dict(name='tiny', + memory_mb=50, + vcpus=10, + local_gb=500, + flavorid=1, + swap=500, + rxtx_quota=30000, + rxtx_cap=200) + + self.zone_manager = FakeZoneManager() + + states = test_zone_aware_scheduler.fake_zone_manager_service_states( + num_hosts=10) + self.zone_manager.service_states = states + + def tearDown(self): + FLAGS.default_host_filter_driver = self.old_flag + super(HostFilterTestCase, self).tearDown() + + def test_choose_driver(self): + # Test default driver ... + driver = host_filter.choose_driver() + self.assertEquals(driver._full_name(), + 'nova.scheduler.host_filter.AllHostsFilter') + # Test valid driver ... + driver = host_filter.choose_driver( + 'nova.scheduler.host_filter.InstanceTypeFilter') + self.assertEquals(driver._full_name(), + 'nova.scheduler.host_filter.InstanceTypeFilter') + # Test invalid driver ... + try: + host_filter.choose_driver('does not exist') + self.fail("Should not find driver") + except exception.SchedulerHostFilterDriverNotFound: + pass + + def test_all_host_driver(self): + driver = host_filter.AllHostsFilter() + cooked = driver.instance_type_to_filter(self.instance_type) + hosts = driver.filter_hosts(self.zone_manager, cooked) + self.assertEquals(10, len(hosts)) + for host, capabilities in hosts: + self.assertTrue(host.startswith('host')) + + def test_instance_type_driver(self): + driver = host_filter.InstanceTypeFilter() + # filter all hosts that can support 50 ram and 500 disk + name, cooked = driver.instance_type_to_filter(self.instance_type) + self.assertEquals('nova.scheduler.host_filter.InstanceTypeFilter', + name) + hosts = driver.filter_hosts(self.zone_manager, cooked) + self.assertEquals(6, len(hosts)) + just_hosts = [host for host, caps in hosts] + just_hosts.sort() + self.assertEquals('host05', just_hosts[0]) + self.assertEquals('host10', just_hosts[5]) + + def test_json_driver(self): + driver = host_filter.JsonFilter() + # filter all hosts that can support 50 ram and 500 disk + name, cooked = driver.instance_type_to_filter(self.instance_type) + self.assertEquals('nova.scheduler.host_filter.JsonFilter', name) + hosts = driver.filter_hosts(self.zone_manager, cooked) + self.assertEquals(6, len(hosts)) + just_hosts = [host for host, caps in hosts] + just_hosts.sort() + self.assertEquals('host05', just_hosts[0]) + self.assertEquals('host10', just_hosts[5]) + + # Try some custom queries + + raw = ['or', + ['and', + ['<', '$compute.host_memory_free', 30], + ['<', '$compute.disk_available', 300] + ], + ['and', + ['>', '$compute.host_memory_free', 70], + ['>', '$compute.disk_available', 700] + ] + ] + cooked = json.dumps(raw) + hosts = driver.filter_hosts(self.zone_manager, cooked) + + self.assertEquals(5, len(hosts)) + just_hosts = [host for host, caps in hosts] + just_hosts.sort() + for index, host in zip([1, 2, 8, 9, 10], just_hosts): + self.assertEquals('host%02d' % index, host) + + raw = ['not', + ['=', '$compute.host_memory_free', 30], + ] + cooked = json.dumps(raw) + hosts = driver.filter_hosts(self.zone_manager, cooked) + + self.assertEquals(9, len(hosts)) + just_hosts = [host for host, caps in hosts] + just_hosts.sort() + for index, host in zip([1, 2, 4, 5, 6, 7, 8, 9, 10], just_hosts): + self.assertEquals('host%02d' % index, host) + + raw = ['in', '$compute.host_memory_free', 20, 40, 60, 80, 100] + cooked = json.dumps(raw) + hosts = driver.filter_hosts(self.zone_manager, cooked) + + self.assertEquals(5, len(hosts)) + just_hosts = [host for host, caps in hosts] + just_hosts.sort() + for index, host in zip([2, 4, 6, 8, 10], just_hosts): + self.assertEquals('host%02d' % index, host) + + # Try some bogus input ... + raw = ['unknown command', ] + cooked = json.dumps(raw) + try: + driver.filter_hosts(self.zone_manager, cooked) + self.fail("Should give KeyError") + except KeyError, e: + pass + + self.assertTrue(driver.filter_hosts(self.zone_manager, json.dumps([]))) + self.assertTrue(driver.filter_hosts(self.zone_manager, json.dumps({}))) + self.assertTrue(driver.filter_hosts(self.zone_manager, json.dumps( + ['not', True, False, True, False] + ))) + + try: + driver.filter_hosts(self.zone_manager, json.dumps( + 'not', True, False, True, False + )) + self.fail("Should give KeyError") + except KeyError, e: + pass + + self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( + ['=', '$foo', 100] + ))) + self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( + ['=', '$.....', 100] + ))) + self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( + ['>', ['and', ['or', ['not', ['<', ['>=', ['<=', ['in', ]]]]]]]] + ))) + + self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( + ['=', {}, ['>', '$missing....foo']] + ))) diff --git a/nova/tests/scheduler/test_least_cost_scheduler.py b/nova/tests/scheduler/test_least_cost_scheduler.py new file mode 100644 index 000000000..e0ed61417 --- /dev/null +++ b/nova/tests/scheduler/test_least_cost_scheduler.py @@ -0,0 +1,146 @@ +# Copyright 2011 OpenStack LLC. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +""" +Tests For Least Cost Scheduler +""" + +from nova import flags +from nova import test +from nova.scheduler import least_cost +from nova.tests.scheduler import test_zone_aware_scheduler + +MB = 1024 * 1024 +FLAGS = flags.FLAGS + + +class FakeHost(object): + def __init__(self, host_id, free_ram, io): + self.id = host_id + self.free_ram = free_ram + self.io = io + + +class WeightedSumTestCase(test.TestCase): + def test_empty_domain(self): + domain = [] + weighted_fns = [] + result = least_cost.weighted_sum(domain, weighted_fns) + expected = [] + self.assertEqual(expected, result) + + def test_basic_costing(self): + hosts = [ + FakeHost(1, 512 * MB, 100), + FakeHost(2, 256 * MB, 400), + FakeHost(3, 512 * MB, 100) + ] + + weighted_fns = [ + (1, lambda h: h.free_ram), # Fill-first, free_ram is a *cost* + (2, lambda h: h.io), # Avoid high I/O + ] + + costs = least_cost.weighted_sum( + domain=hosts, weighted_fns=weighted_fns) + + # Each 256 MB unit of free-ram contributes 0.5 points by way of: + # cost = weight * (score/max_score) = 1 * (256/512) = 0.5 + # Each 100 iops of IO adds 0.5 points by way of: + # cost = 2 * (100/400) = 2 * 0.25 = 0.5 + expected = [1.5, 2.5, 1.5] + self.assertEqual(expected, costs) + + +# TODO(sirp): unify this with test_host_filter tests? possibility of sharing +# test setup code +class FakeZoneManager: + pass + + +class LeastCostSchedulerTestCase(test.TestCase): + def setUp(self): + super(LeastCostSchedulerTestCase, self).setUp() + zone_manager = FakeZoneManager() + + states = test_zone_aware_scheduler.fake_zone_manager_service_states( + num_hosts=10) + zone_manager.service_states = states + + self.sched = least_cost.LeastCostScheduler() + self.sched.zone_manager = zone_manager + + def tearDown(self): + super(LeastCostSchedulerTestCase, self).tearDown() + + def assertWeights(self, expected, num, request_spec, hosts): + weighted = self.sched.weigh_hosts(num, request_spec, hosts) + self.assertDictListMatch(weighted, expected, approx_equal=True) + + def test_no_hosts(self): + num = 1 + request_spec = {} + hosts = [] + + expected = [] + self.assertWeights(expected, num, request_spec, hosts) + + def test_noop_cost_fn(self): + FLAGS.least_cost_scheduler_cost_functions = [ + 'nova.scheduler.least_cost.noop_cost_fn' + ] + FLAGS.noop_cost_fn_weight = 1 + + num = 1 + request_spec = {} + hosts = self.sched.filter_hosts(num, request_spec) + + expected = [dict(weight=1, hostname=hostname) + for hostname, caps in hosts] + self.assertWeights(expected, num, request_spec, hosts) + + def test_cost_fn_weights(self): + FLAGS.least_cost_scheduler_cost_functions = [ + 'nova.scheduler.least_cost.noop_cost_fn' + ] + FLAGS.noop_cost_fn_weight = 2 + + num = 1 + request_spec = {} + hosts = self.sched.filter_hosts(num, request_spec) + + expected = [dict(weight=2, hostname=hostname) + for hostname, caps in hosts] + self.assertWeights(expected, num, request_spec, hosts) + + def test_fill_first_cost_fn(self): + FLAGS.least_cost_scheduler_cost_functions = [ + 'nova.scheduler.least_cost.fill_first_cost_fn' + ] + FLAGS.fill_first_cost_fn_weight = 1 + + num = 1 + request_spec = {} + hosts = self.sched.filter_hosts(num, request_spec) + + expected = [] + for idx, (hostname, caps) in enumerate(hosts): + # Costs are normalized so over 10 hosts, each host with increasing + # free ram will cost 1/N more. Since the lowest cost host has some + # free ram, we add in the 1/N for the base_cost + weight = 0.1 + (0.1 * idx) + weight_dict = dict(weight=weight, hostname=hostname) + expected.append(weight_dict) + + self.assertWeights(expected, num, request_spec, hosts) diff --git a/nova/tests/scheduler/test_zone_aware_scheduler.py b/nova/tests/scheduler/test_zone_aware_scheduler.py index 37169fb97..b2cc4fe23 100644 --- a/nova/tests/scheduler/test_zone_aware_scheduler.py +++ b/nova/tests/scheduler/test_zone_aware_scheduler.py @@ -22,6 +22,37 @@ from nova.scheduler import zone_aware_scheduler from nova.scheduler import zone_manager +def _host_caps(multiplier): + # Returns host capabilities in the following way: + # host1 = memory:free 10 (100max) + # disk:available 100 (1000max) + # hostN = memory:free 10 + 10N + # disk:available 100 + 100N + # in other words: hostN has more resources than host0 + # which means ... don't go above 10 hosts. + return {'host_name-description': 'XenServer %s' % multiplier, + 'host_hostname': 'xs-%s' % multiplier, + 'host_memory_total': 100, + 'host_memory_overhead': 10, + 'host_memory_free': 10 + multiplier * 10, + 'host_memory_free-computed': 10 + multiplier * 10, + 'host_other-config': {}, + 'host_ip_address': '192.168.1.%d' % (100 + multiplier), + 'host_cpu_info': {}, + 'disk_available': 100 + multiplier * 100, + 'disk_total': 1000, + 'disk_used': 0, + 'host_uuid': 'xxx-%d' % multiplier, + 'host_name-label': 'xs-%s' % multiplier} + + +def fake_zone_manager_service_states(num_hosts): + states = {} + for x in xrange(num_hosts): + states['host%02d' % (x + 1)] = {'compute': _host_caps(x)} + return states + + class FakeZoneAwareScheduler(zone_aware_scheduler.ZoneAwareScheduler): def filter_hosts(self, num, specs): # NOTE(sirp): this is returning [(hostname, services)] From 0a049e566e8fa26a24d125322ae0748342ddafc2 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 17 May 2011 18:53:00 -0500 Subject: [PATCH 031/164] Small cleanups --- nova/tests/scheduler/test_host_filter.py | 7 +++---- nova/tests/scheduler/test_least_cost_scheduler.py | 10 ++++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/nova/tests/scheduler/test_host_filter.py b/nova/tests/scheduler/test_host_filter.py index c3af50a6e..edbab7ab4 100644 --- a/nova/tests/scheduler/test_host_filter.py +++ b/nova/tests/scheduler/test_host_filter.py @@ -27,10 +27,6 @@ from nova.tests.scheduler import test_zone_aware_scheduler FLAGS = flags.FLAGS -class FakeZoneManager: - pass - - class HostFilterTestCase(test.TestCase): """Test case for host filter drivers.""" @@ -48,6 +44,9 @@ class HostFilterTestCase(test.TestCase): rxtx_quota=30000, rxtx_cap=200) + class FakeZoneManager: + pass + self.zone_manager = FakeZoneManager() states = test_zone_aware_scheduler.fake_zone_manager_service_states( diff --git a/nova/tests/scheduler/test_least_cost_scheduler.py b/nova/tests/scheduler/test_least_cost_scheduler.py index e0ed61417..506fa62fb 100644 --- a/nova/tests/scheduler/test_least_cost_scheduler.py +++ b/nova/tests/scheduler/test_least_cost_scheduler.py @@ -63,15 +63,13 @@ class WeightedSumTestCase(test.TestCase): self.assertEqual(expected, costs) -# TODO(sirp): unify this with test_host_filter tests? possibility of sharing -# test setup code -class FakeZoneManager: - pass - - class LeastCostSchedulerTestCase(test.TestCase): def setUp(self): super(LeastCostSchedulerTestCase, self).setUp() + + class FakeZoneManager: + pass + zone_manager = FakeZoneManager() states = test_zone_aware_scheduler.fake_zone_manager_service_states( From d9df21fe354cc9cb3d0bd19abfb907bbd40761ef Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Wed, 18 May 2011 03:51:25 -0400 Subject: [PATCH 032/164] Removed all utils.import_object(FLAGS.image_service) and replaced with utils.get_default_image_service(). --- bin/nova-manage | 2 +- nova/utils.py | 74 ++++++++++++++++++++++++------------------------- 2 files changed, 37 insertions(+), 39 deletions(-) diff --git a/bin/nova-manage b/bin/nova-manage index db964064d..3f3fd72a6 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -905,7 +905,7 @@ class ImageCommands(object): """Methods for dealing with a cloud in an odd state""" def __init__(self, *args, **kwargs): - self.image_service = utils.import_object(FLAGS.image_service) + self.image_service = utils.get_default_image_service() def _register(self, container_format, disk_format, path, owner, name=None, is_public='T', diff --git a/nova/utils.py b/nova/utils.py index fff916527..3c8c82281 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -35,6 +35,7 @@ import struct import sys import time import types +from urlparse import urlparse from xml.sax import saxutils from eventlet import event @@ -42,6 +43,7 @@ from eventlet import greenthread from eventlet import semaphore from eventlet.green import subprocess +import nova from nova import exception from nova import flags from nova import log as logging @@ -727,57 +729,53 @@ def parse_server_string(server_str): def is_int(x): - """ Return if passed in variable is integer or not """ return re.match(r'\d+$', str(x)) def parse_image_ref(image_ref): - """ - Parse an imageRef and return (id, host, port) + """Parse an image href into composite parts. If the image_ref passed in is an integer, it will return (image_ref, None, None), otherwise it will - return (id, host, port) + return (image_id, host, port) - image_ref - imageRef for an image + :param image_ref: href or id of an image """ - if is_int(image_ref): - return (image_ref, None, None) + return (int(image_ref), None, None) o = urlparse(image_ref) - # Default to port 80 if not passed, should this be 9292? - port = o.port or 80 + port = o.port host = o.netloc.split(':', 1)[0] - id = o.path.split('/')[-1] - - return (id, host, port) - - -def get_image_service(image_ref=None): - """ - Get the proper image_service for an image_id - Returns (image_service, image_id) - - image_ref - image ref/id for an image - """ - ImageService = import_class(FLAGS.image_service) - - if not image_ref: - return (ImageService(), None) - - (image_id, host, port) = parse_image_ref(image_ref) - - image_service = None - - if host: - GlanceImageService = import_class(FLAGS.glance_image_service) - GlanceClient = import_class('glance.client.Client') - - glance_client = GlanceClient(host, port) - image_service = GlanceImageService(glance_client) + image_id = o.path.split('/')[-1] + if is_int(image_id): + image_id = int(image_id) else: - image_service = ImageService() + raise Exception(_('image_ref [%s] is missing a proper id') % image_ref) - return (image_service, id) + return (image_id, host, port) + + +def get_default_image_service(): + ImageService = import_class(FLAGS.image_service) + return ImageService() + +def get_image_service(image_ref): + """Get the proper image_service and id for the given image_ref. + + The image_ref param can be an href of the form + http://myglanceserver:9292/images/42, or just an int such as 42. If the + image_ref is an int, then the default image service is returned. + + :param image_ref: image ref/id for an image + :returns: a tuple of the form (image_service, image_id) + + """ + if is_int(image_ref): + return (get_default_image_service(), int(image_ref)) + + (image_id, host, port) = parse_image_ref(image_ref) + glance_client = nova.image.glance.GlanceClient(host, port) + image_service = nova.image.glance.GlanceImageService(glance_client) + return (image_service, image_id) From 9bf4e16a7877f4fe51f43fd0532842eebdf02160 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Wed, 18 May 2011 09:50:18 -0400 Subject: [PATCH 033/164] get integrated server_tests passing --- nova/flags.py | 3 +++ nova/utils.py | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/nova/flags.py b/nova/flags.py index 519793643..2481a10af 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -362,6 +362,9 @@ DEFINE_string('scheduler_manager', 'nova.scheduler.manager.SchedulerManager', # The service to use for image search and retrieval DEFINE_string('image_service', 'nova.image.local.LocalImageService', 'The service to use for retrieving and searching for images.') +DEFINE_string('glance_image_service', 'nova.image.local.LocalImageService', + 'The service to use for retrieving and searching for ' + + 'glance images.') DEFINE_string('host', socket.gethostname(), 'name of this node') diff --git a/nova/utils.py b/nova/utils.py index 3c8c82281..46dfc82e9 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -776,6 +776,7 @@ def get_image_service(image_ref): return (get_default_image_service(), int(image_ref)) (image_id, host, port) = parse_image_ref(image_ref) - glance_client = nova.image.glance.GlanceClient(host, port) - image_service = nova.image.glance.GlanceImageService(glance_client) + glance_client = import_class('nova.image.glance.GlanceClient')(host, + port) + image_service = import_class(FLAGS.glance_image_service)(glance_client) return (image_service, image_id) From 982bb57c975a07300897142e359282344c3b7d1c Mon Sep 17 00:00:00 2001 From: William Wolf Date: Wed, 18 May 2011 10:10:10 -0400 Subject: [PATCH 034/164] made ImageControllerWithGlanceServiceTests pass --- nova/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/utils.py b/nova/utils.py index 46dfc82e9..04acfc417 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -752,7 +752,8 @@ def parse_image_ref(image_ref): if is_int(image_id): image_id = int(image_id) else: - raise Exception(_('image_ref [%s] is missing a proper id') % image_ref) + raise exception.ImageNotFound( + _('image_ref [%s] is missing a proper id') % image_ref) return (image_id, host, port) From 494186f945324fce1ca1254631c1338f97e11a60 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Wed, 18 May 2011 10:16:51 -0400 Subject: [PATCH 035/164] fixed ComputeTestCase tests --- nova/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/nova/utils.py b/nova/utils.py index 04acfc417..dcaaab602 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -773,6 +773,7 @@ def get_image_service(image_ref): :returns: a tuple of the form (image_service, image_id) """ + image_ref = image_ref or 0 if is_int(image_ref): return (get_default_image_service(), int(image_ref)) From 3615648543e262e603309e3bb5856cb049000bdd Mon Sep 17 00:00:00 2001 From: William Wolf Date: Wed, 18 May 2011 10:41:33 -0400 Subject: [PATCH 036/164] fixed QuotaTestCases --- nova/flags.py | 2 +- nova/utils.py | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/nova/flags.py b/nova/flags.py index 2481a10af..d3f72d412 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -362,7 +362,7 @@ DEFINE_string('scheduler_manager', 'nova.scheduler.manager.SchedulerManager', # The service to use for image search and retrieval DEFINE_string('image_service', 'nova.image.local.LocalImageService', 'The service to use for retrieving and searching for images.') -DEFINE_string('glance_image_service', 'nova.image.local.LocalImageService', +DEFINE_string('glance_image_service', 'nova.image.glance.GlanceImageService', 'The service to use for retrieving and searching for ' + 'glance images.') diff --git a/nova/utils.py b/nova/utils.py index dcaaab602..252f5e9a6 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -749,11 +749,9 @@ def parse_image_ref(image_ref): port = o.port host = o.netloc.split(':', 1)[0] image_id = o.path.split('/')[-1] + if is_int(image_id): image_id = int(image_id) - else: - raise exception.ImageNotFound( - _('image_ref [%s] is missing a proper id') % image_ref) return (image_id, host, port) From 0b723579b49b19a9423c16509479ba2057f7cd16 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Wed, 18 May 2011 11:13:22 -0400 Subject: [PATCH 037/164] fix pep8 issues --- nova/flags.py | 2 +- nova/utils.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/flags.py b/nova/flags.py index d3f72d412..b45d252c7 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -363,7 +363,7 @@ DEFINE_string('scheduler_manager', 'nova.scheduler.manager.SchedulerManager', DEFINE_string('image_service', 'nova.image.local.LocalImageService', 'The service to use for retrieving and searching for images.') DEFINE_string('glance_image_service', 'nova.image.glance.GlanceImageService', - 'The service to use for retrieving and searching for ' + + 'The service to use for retrieving and searching for ' + 'glance images.') DEFINE_string('host', socket.gethostname(), diff --git a/nova/utils.py b/nova/utils.py index 252f5e9a6..82d0dd7a4 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -760,6 +760,7 @@ def get_default_image_service(): ImageService = import_class(FLAGS.image_service) return ImageService() + def get_image_service(image_ref): """Get the proper image_service and id for the given image_ref. @@ -776,7 +777,7 @@ def get_image_service(image_ref): return (get_default_image_service(), int(image_ref)) (image_id, host, port) = parse_image_ref(image_ref) - glance_client = import_class('nova.image.glance.GlanceClient')(host, + glance_client = import_class('nova.image.glance.GlanceClient')(host, port) image_service = import_class(FLAGS.glance_image_service)(glance_client) return (image_service, image_id) From 4a797fedd650c1b3efee86c8dc71f5cfd6832ec5 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Wed, 18 May 2011 18:09:37 -0400 Subject: [PATCH 038/164] default to port 80 if it isnt in the href/uri --- nova/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/utils.py b/nova/utils.py index 82d0dd7a4..85934813e 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -746,7 +746,7 @@ def parse_image_ref(image_ref): return (int(image_ref), None, None) o = urlparse(image_ref) - port = o.port + port = o.port or 80 host = o.netloc.split(':', 1)[0] image_id = o.path.split('/')[-1] From 5ce221c29fda68c7db16aa4a68711d25d02d08ca Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Wed, 18 May 2011 20:33:25 -0400 Subject: [PATCH 039/164] removing controller/serializer code from wsgi.py; updating other code to use new modules --- nova/wsgi.py | 250 +-------------------------------------------------- 1 file changed, 2 insertions(+), 248 deletions(-) diff --git a/nova/wsgi.py b/nova/wsgi.py index e60a8820d..3a292073b 100644 --- a/nova/wsgi.py +++ b/nova/wsgi.py @@ -82,36 +82,7 @@ class Server(object): class Request(webob.Request): - - def best_match_content_type(self): - """Determine the most acceptable content-type. - - Based on the query extension then the Accept header. - - """ - parts = self.path.rsplit('.', 1) - - if len(parts) > 1: - format = parts[1] - if format in ['json', 'xml']: - return 'application/{0}'.format(parts[1]) - - ctypes = ['application/json', 'application/xml'] - bm = self.accept.best_match(ctypes) - - return bm or 'application/json' - - def get_content_type(self): - allowed_types = ("application/xml", "application/json") - if not "Content-Type" in self.headers: - msg = _("Missing Content-Type") - LOG.debug(msg) - raise webob.exc.HTTPBadRequest(msg) - type = self.content_type - if type in allowed_types: - return type - LOG.debug(_("Wrong Content-Type: %s") % type) - raise webob.exc.HTTPBadRequest("Invalid content type") + pass class Application(object): @@ -286,7 +257,7 @@ class Router(object): Each route in `mapper` must specify a 'controller', which is a WSGI app to call. You'll probably want to specify an 'action' as - well and have your controller be a wsgi.Controller, who will route + well and have your controller be a controller, who will route the request to the action method. Examples: @@ -335,223 +306,6 @@ class Router(object): return app -class Controller(object): - """WSGI app that dispatched to methods. - - WSGI app that reads routing information supplied by RoutesMiddleware - and calls the requested action method upon itself. All action methods - must, in addition to their normal parameters, accept a 'req' argument - which is the incoming wsgi.Request. They raise a webob.exc exception, - or return a dict which will be serialized by requested content type. - - """ - - @webob.dec.wsgify(RequestClass=Request) - def __call__(self, req): - """Call the method specified in req.environ by RoutesMiddleware.""" - arg_dict = req.environ['wsgiorg.routing_args'][1] - action = arg_dict['action'] - method = getattr(self, action) - LOG.debug("%s %s" % (req.method, req.url)) - del arg_dict['controller'] - del arg_dict['action'] - if 'format' in arg_dict: - del arg_dict['format'] - arg_dict['req'] = req - result = method(**arg_dict) - - if type(result) is dict: - content_type = req.best_match_content_type() - default_xmlns = self.get_default_xmlns(req) - body = self._serialize(result, content_type, default_xmlns) - - response = webob.Response() - response.headers['Content-Type'] = content_type - response.body = body - msg_dict = dict(url=req.url, status=response.status_int) - msg = _("%(url)s returned with HTTP %(status)d") % msg_dict - LOG.debug(msg) - return response - else: - return result - - def _serialize(self, data, content_type, default_xmlns): - """Serialize the given dict to the provided content_type. - - Uses self._serialization_metadata if it exists, which is a dict mapping - MIME types to information needed to serialize to that type. - - """ - _metadata = getattr(type(self), '_serialization_metadata', {}) - - serializer = Serializer(_metadata, default_xmlns) - try: - return serializer.serialize(data, content_type) - except exception.InvalidContentType: - raise webob.exc.HTTPNotAcceptable() - - def _deserialize(self, data, content_type): - """Deserialize the request body to the specefied content type. - - Uses self._serialization_metadata if it exists, which is a dict mapping - MIME types to information needed to serialize to that type. - - """ - _metadata = getattr(type(self), '_serialization_metadata', {}) - serializer = Serializer(_metadata) - return serializer.deserialize(data, content_type) - - def get_default_xmlns(self, req): - """Provide the XML namespace to use if none is otherwise specified.""" - return None - - -class Serializer(object): - """Serializes and deserializes dictionaries to certain MIME types.""" - - def __init__(self, metadata=None, default_xmlns=None): - """Create a serializer based on the given WSGI environment. - - 'metadata' is an optional dict mapping MIME types to information - needed to serialize a dictionary to that type. - - """ - self.metadata = metadata or {} - self.default_xmlns = default_xmlns - - def _get_serialize_handler(self, content_type): - handlers = { - 'application/json': self._to_json, - 'application/xml': self._to_xml, - } - - try: - return handlers[content_type] - except Exception: - raise exception.InvalidContentType(content_type=content_type) - - def serialize(self, data, content_type): - """Serialize a dictionary into the specified content type.""" - return self._get_serialize_handler(content_type)(data) - - def deserialize(self, datastring, content_type): - """Deserialize a string to a dictionary. - - The string must be in the format of a supported MIME type. - - """ - return self.get_deserialize_handler(content_type)(datastring) - - def get_deserialize_handler(self, content_type): - handlers = { - 'application/json': self._from_json, - 'application/xml': self._from_xml, - } - - try: - return handlers[content_type] - except Exception: - raise exception.InvalidContentType(content_type=content_type) - - def _from_json(self, datastring): - return utils.loads(datastring) - - def _from_xml(self, datastring): - xmldata = self.metadata.get('application/xml', {}) - plurals = set(xmldata.get('plurals', {})) - node = minidom.parseString(datastring).childNodes[0] - return {node.nodeName: self._from_xml_node(node, plurals)} - - def _from_xml_node(self, node, listnames): - """Convert a minidom node to a simple Python type. - - listnames is a collection of names of XML nodes whose subnodes should - be considered list items. - - """ - if len(node.childNodes) == 1 and node.childNodes[0].nodeType == 3: - return node.childNodes[0].nodeValue - elif node.nodeName in listnames: - return [self._from_xml_node(n, listnames) for n in node.childNodes] - else: - result = dict() - for attr in node.attributes.keys(): - result[attr] = node.attributes[attr].nodeValue - for child in node.childNodes: - if child.nodeType != node.TEXT_NODE: - result[child.nodeName] = self._from_xml_node(child, - listnames) - return result - - def _to_json(self, data): - return utils.dumps(data) - - def _to_xml(self, data): - metadata = self.metadata.get('application/xml', {}) - # We expect data to contain a single key which is the XML root. - root_key = data.keys()[0] - doc = minidom.Document() - node = self._to_xml_node(doc, metadata, root_key, data[root_key]) - - xmlns = node.getAttribute('xmlns') - if not xmlns and self.default_xmlns: - node.setAttribute('xmlns', self.default_xmlns) - - return node.toprettyxml(indent=' ') - - def _to_xml_node(self, doc, metadata, nodename, data): - """Recursive method to convert data members to XML nodes.""" - result = doc.createElement(nodename) - - # Set the xml namespace if one is specified - # TODO(justinsb): We could also use prefixes on the keys - xmlns = metadata.get('xmlns', None) - if xmlns: - result.setAttribute('xmlns', xmlns) - - if type(data) is list: - collections = metadata.get('list_collections', {}) - if nodename in collections: - metadata = collections[nodename] - for item in data: - node = doc.createElement(metadata['item_name']) - node.setAttribute(metadata['item_key'], str(item)) - result.appendChild(node) - return result - singular = metadata.get('plurals', {}).get(nodename, None) - if singular is None: - if nodename.endswith('s'): - singular = nodename[:-1] - else: - singular = 'item' - for item in data: - node = self._to_xml_node(doc, metadata, singular, item) - result.appendChild(node) - elif type(data) is dict: - collections = metadata.get('dict_collections', {}) - if nodename in collections: - metadata = collections[nodename] - for k, v in data.items(): - node = doc.createElement(metadata['item_name']) - node.setAttribute(metadata['item_key'], str(k)) - text = doc.createTextNode(str(v)) - node.appendChild(text) - result.appendChild(node) - return result - attrs = metadata.get('attributes', {}).get(nodename, {}) - for k, v in data.items(): - if k in attrs: - result.setAttribute(k, str(v)) - else: - node = self._to_xml_node(doc, metadata, k, v) - result.appendChild(node) - else: - # Type is atom - node = doc.createTextNode(str(data)) - result.appendChild(node) - return result - - def paste_config_file(basename): """Find the best location in the system for a paste config file. From 90e7bda54e21aed6cd386f63467291fae3aab41d Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Thu, 19 May 2011 11:17:20 -0700 Subject: [PATCH 040/164] temp --- nova/scheduler/zone_aware_scheduler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 6600951fb..9572d1c9f 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -150,7 +150,8 @@ class ZoneAwareScheduler(driver.Scheduler): raise exception.NotAuthorized(_("Bad credentials attempting " "to talk to zone at %(url)s.") % locals()) - nova.servers.create(name, image, flavor, ipgroup, meta, files) + nova.servers.create(name, image, flavor, ipgroup, meta, files, + child_blob) def select(self, context, request_spec, *args, **kwargs): """Select returns a list of weights and zone/host information From 0bf1f7b40af7bb2d6923ba16bae21ffc48efca17 Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Thu, 19 May 2011 13:50:11 -0700 Subject: [PATCH 041/164] Separate out tests for when unfilter is called from iptables vs. nwfilter driver. Re: lp783705 --- nova/tests/test_virt.py | 65 +++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 18 deletions(-) diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index babb5de9b..3b5a3867d 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -657,6 +657,21 @@ class LibvirtConnTestCase(test.TestCase): super(LibvirtConnTestCase, self).tearDown() +class FakeNWFilter: + def __init__(self): + self.undefine_call_count = 0 + + def undefine(self): + self.undefine_call_count += 1 + pass + + def _nwfilterLookupByName(self, ignore): + return self + + def _filterDefineXMLMock(self, xml): + return True + + class IptablesFirewallTestCase(test.TestCase): def setUp(self): super(IptablesFirewallTestCase, self).setUp() @@ -869,6 +884,35 @@ class IptablesFirewallTestCase(test.TestCase): self.assertEquals(ipv6_network_rules, ipv6_rules_per_network * networks_count) + def test_unfilter_instance_undefines_nwfilters(self): + admin_ctxt = context.get_admin_context() + + fakefilter = FakeNWFilter() + self.fw.nwfilter._conn.nwfilterDefineXML =\ + fakefilter._filterDefineXMLMock + self.fw.nwfilter._conn.nwfilterLookupByName =\ + fakefilter._nwfilterLookupByName + + instance_ref = self._create_instance_ref() + inst_id = instance_ref['id'] + instance = db.instance_get(self.context, inst_id) + + ip = '10.11.12.13' + network_ref = db.project_get_network(self.context, 'fake') + fixed_ip = {'address': ip, 'network_id': network_ref['id']} + db.fixed_ip_create(admin_ctxt, fixed_ip) + db.fixed_ip_update(admin_ctxt, ip, {'allocated': True, + 'instance_id': inst_id}) + self.fw.setup_basic_filtering(instance) + self.fw.prepare_instance_filter(instance) + self.fw.apply_instance_filter(instance) + self.fw.unfilter_instance(instance) + + # should attempt to undefine just the instance filter + self.assertEquals(fakefilter.undefine_call_count, 1) + + db.instance_destroy(admin_ctxt, instance_ref['id']) + class NWFilterTestCase(test.TestCase): def setUp(self): @@ -1047,26 +1091,11 @@ class NWFilterTestCase(test.TestCase): self.assertEquals(len(result), 3) def test_unfilter_instance_undefines_nwfilters(self): - class FakeNWFilter: - def __init__(self): - self.undefine_call_count = 0 - - def undefine(self): - self.undefine_call_count += 1 - pass - - fakefilter = FakeNWFilter() - - def _nwfilterLookupByName(ignore): - return fakefilter - - def _filterDefineXMLMock(xml): - return True - admin_ctxt = context.get_admin_context() - self.fw._conn.nwfilterDefineXML = _filterDefineXMLMock - self.fw._conn.nwfilterLookupByName = _nwfilterLookupByName + fakefilter = FakeNWFilter() + self.fw._conn.nwfilterDefineXML = fakefilter._filterDefineXMLMock + self.fw._conn.nwfilterLookupByName = fakefilter._nwfilterLookupByName instance_ref = self._create_instance() inst_id = instance_ref['id'] From 332147e58553d0d1486f20b829e56fa2ec46325f Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Fri, 20 May 2011 04:14:02 -0400 Subject: [PATCH 042/164] Fixed some tests. --- nova/exception.py | 4 ++++ nova/flags.py | 3 --- nova/utils.py | 16 +++++++--------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/nova/exception.py b/nova/exception.py index cf6069454..4c977aca0 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -279,6 +279,10 @@ class DiskNotFound(NotFound): message = _("No disk at %(location)s") +class InvalidImageRef(Invalid): + message = _("Invalid image ref %(image_ref)s.") + + class ImageNotFound(NotFound): message = _("Image %(image_id)s could not be found.") diff --git a/nova/flags.py b/nova/flags.py index ee5adae32..32cb6efa8 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -362,9 +362,6 @@ DEFINE_string('scheduler_manager', 'nova.scheduler.manager.SchedulerManager', # The service to use for image search and retrieval DEFINE_string('image_service', 'nova.image.local.LocalImageService', 'The service to use for retrieving and searching for images.') -DEFINE_string('glance_image_service', 'nova.image.glance.GlanceImageService', - 'The service to use for retrieving and searching for ' + - 'glance images.') DEFINE_string('host', socket.gethostname(), 'name of this node') diff --git a/nova/utils.py b/nova/utils.py index 85934813e..3802f50c4 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -748,11 +748,7 @@ def parse_image_ref(image_ref): o = urlparse(image_ref) port = o.port or 80 host = o.netloc.split(':', 1)[0] - image_id = o.path.split('/')[-1] - - if is_int(image_id): - image_id = int(image_id) - + image_id = int(o.path.split('/')[-1]) return (image_id, host, port) @@ -776,8 +772,10 @@ def get_image_service(image_ref): if is_int(image_ref): return (get_default_image_service(), int(image_ref)) - (image_id, host, port) = parse_image_ref(image_ref) - glance_client = import_class('nova.image.glance.GlanceClient')(host, - port) - image_service = import_class(FLAGS.glance_image_service)(glance_client) + try: + (image_id, host, port) = parse_image_ref(image_ref) + except: + raise exception.InvalidImageRef(image_ref=image_ref) + glance_client = nova.image.glance.GlanceClient(host, port) + image_service = nova.image.glance.GlanceImageService(glance_client) return (image_service, image_id) From 0bc9dca696781101d5cbb8802cd9ccd9f2e34b05 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Fri, 20 May 2011 05:02:34 -0700 Subject: [PATCH 043/164] temp fixes --- nova/scheduler/zone_aware_scheduler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 6600951fb..9572d1c9f 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -150,7 +150,8 @@ class ZoneAwareScheduler(driver.Scheduler): raise exception.NotAuthorized(_("Bad credentials attempting " "to talk to zone at %(url)s.") % locals()) - nova.servers.create(name, image, flavor, ipgroup, meta, files) + nova.servers.create(name, image, flavor, ipgroup, meta, files, + child_blob) def select(self, context, request_spec, *args, **kwargs): """Select returns a list of weights and zone/host information From 7ad103e1059f840ac9be3fd36dfbd61d5e0fcd88 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Fri, 20 May 2011 06:03:43 -0700 Subject: [PATCH 044/164] syntax errors --- nova/scheduler/zone_aware_scheduler.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 9572d1c9f..20f7694a1 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -75,7 +75,7 @@ class ZoneAwareScheduler(driver.Scheduler): if "hostname" in item: self._provision_resource_locally(context, item, instance_id, kwargs) - return + return self._provision_resource_in_child_zone(context, item, instance_id, request_spec, kwargs) @@ -131,7 +131,7 @@ class ZoneAwareScheduler(driver.Scheduler): instance_properties = request_spec['instance_properties'] name = instance_properties['display_name'] - image_id = instance_properties['image_id']) + image_id = instance_properties['image_id'] flavor_id = instance_type['flavor_id'] meta = instance_type['metadata'] From b98cc0d57289a378bf25238217a2cabd6495a8c9 Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Fri, 20 May 2011 08:59:07 -0700 Subject: [PATCH 045/164] make nwfilter mock more 'realistic' by having it remember which filters have been defined --- nova/tests/test_virt.py | 56 ++++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index 4bc5fed16..5e85e3a2f 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -659,16 +659,26 @@ class LibvirtConnTestCase(test.TestCase): class FakeNWFilter: def __init__(self): - self.undefine_call_count = 0 + self.filters = {} - def undefine(self): - self.undefine_call_count += 1 - pass - - def _nwfilterLookupByName(self, ignore): - return self + def _nwfilterLookupByName(self, name): + if name in self.filters: + return self.filters[name] + raise libvirt.libvirtError('Filter Not Found') def _filterDefineXMLMock(self, xml): + class FakeNWFilterInternal: + def __init__(self, parent, name): + self.name = name + self.parent = parent + + def undefine(self): + del self.parent.filters[self.name] + pass + tree = xml_to_tree(xml) + name = tree.get('name') + if name not in self.filters: + self.filters[name] = FakeNWFilterInternal(self, name) return True @@ -689,6 +699,20 @@ class IptablesFirewallTestCase(test.TestCase): self.fw = libvirt_conn.IptablesFirewallDriver( get_connection=lambda: self.fake_libvirt_connection) + def lazy_load_library_exists(self): + """check if libvirt is available.""" + # try to connect libvirt. if fail, skip test. + try: + import libvirt + import libxml2 + except ImportError: + return False + global libvirt + libvirt = __import__('libvirt') + libvirt_conn.libvirt = __import__('libvirt') + libvirt_conn.libxml2 = __import__('libxml2') + return True + def tearDown(self): self.manager.delete_project(self.project) self.manager.delete_user(self.user) @@ -895,6 +919,10 @@ class IptablesFirewallTestCase(test.TestCase): self.fw.do_refresh_security_group_rules("fake") def test_unfilter_instance_undefines_nwfilter(self): + # Skip if non-libvirt environment + if not self.lazy_load_library_exists(): + return + admin_ctxt = context.get_admin_context() fakefilter = FakeNWFilter() @@ -916,10 +944,11 @@ class IptablesFirewallTestCase(test.TestCase): self.fw.setup_basic_filtering(instance) self.fw.prepare_instance_filter(instance) self.fw.apply_instance_filter(instance) + original_filter_count = len(fakefilter.filters) self.fw.unfilter_instance(instance) # should attempt to undefine just the instance filter - self.assertEquals(fakefilter.undefine_call_count, 1) + self.assertEqual(original_filter_count - len(fakefilter.filters), 1) db.instance_destroy(admin_ctxt, instance_ref['id']) @@ -1109,6 +1138,12 @@ class NWFilterTestCase(test.TestCase): instance_ref = self._create_instance() inst_id = instance_ref['id'] + + self.security_group = self.setup_and_return_security_group() + + db.instance_add_security_group(self.context, inst_id, + self.security_group.id) + instance = db.instance_get(self.context, inst_id) ip = '10.11.12.13' @@ -1120,9 +1155,12 @@ class NWFilterTestCase(test.TestCase): self.fw.setup_basic_filtering(instance) self.fw.prepare_instance_filter(instance) self.fw.apply_instance_filter(instance) + original_filter_count = len(fakefilter.filters) + print fakefilter.filters.keys() self.fw.unfilter_instance(instance) + print fakefilter.filters.keys() # should attempt to undefine 2 filters: instance and instance-secgroup - self.assertEquals(fakefilter.undefine_call_count, 2) + self.assertEqual(original_filter_count - len(fakefilter.filters), 2) db.instance_destroy(admin_ctxt, instance_ref['id']) From 1bc1dd631e22eebb1fc33bae1765acafc46f34eb Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Fri, 20 May 2011 09:09:03 -0700 Subject: [PATCH 046/164] fix comments --- nova/tests/test_virt.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index 5e85e3a2f..90c6de5a9 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -659,6 +659,7 @@ class LibvirtConnTestCase(test.TestCase): class FakeNWFilter: def __init__(self): + self.filters = {} def _nwfilterLookupByName(self, name): @@ -947,7 +948,7 @@ class IptablesFirewallTestCase(test.TestCase): original_filter_count = len(fakefilter.filters) self.fw.unfilter_instance(instance) - # should attempt to undefine just the instance filter + # should undefine just the instance filter self.assertEqual(original_filter_count - len(fakefilter.filters), 1) db.instance_destroy(admin_ctxt, instance_ref['id']) @@ -1160,7 +1161,7 @@ class NWFilterTestCase(test.TestCase): self.fw.unfilter_instance(instance) print fakefilter.filters.keys() - # should attempt to undefine 2 filters: instance and instance-secgroup + # should undefine 2 filters: instance and instance-secgroup self.assertEqual(original_filter_count - len(fakefilter.filters), 2) db.instance_destroy(admin_ctxt, instance_ref['id']) From c91d672b2e3e3d0ddd101d6a133c71cfd4500bb6 Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Sun, 22 May 2011 03:16:16 -0400 Subject: [PATCH 047/164] Removing utils.is_int() --- nova/utils.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/nova/utils.py b/nova/utils.py index 3802f50c4..ecca5303a 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -728,10 +728,6 @@ def parse_server_string(server_str): return ('', '') -def is_int(x): - return re.match(r'\d+$', str(x)) - - def parse_image_ref(image_ref): """Parse an image href into composite parts. @@ -742,7 +738,7 @@ def parse_image_ref(image_ref): :param image_ref: href or id of an image """ - if is_int(image_ref): + if str(image_ref).isdigit(): return (int(image_ref), None, None) o = urlparse(image_ref) @@ -769,7 +765,7 @@ def get_image_service(image_ref): """ image_ref = image_ref or 0 - if is_int(image_ref): + if str(image_ref).isdigit(): return (get_default_image_service(), int(image_ref)) try: From 5325f01c7eee86eb5515f5e0df8200b5bdb6280e Mon Sep 17 00:00:00 2001 From: William Wolf Date: Mon, 23 May 2011 10:28:04 -0400 Subject: [PATCH 048/164] moved utils functions into nova/image/ --- bin/nova-manage | 3 ++- nova/utils.py | 49 ------------------------------------------------- 2 files changed, 2 insertions(+), 50 deletions(-) diff --git a/bin/nova-manage b/bin/nova-manage index 3f3fd72a6..8a9be5d8f 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -78,6 +78,7 @@ from nova import crypto from nova import db from nova import exception from nova import flags +from nova import image from nova import log as logging from nova import quota from nova import rpc @@ -905,7 +906,7 @@ class ImageCommands(object): """Methods for dealing with a cloud in an odd state""" def __init__(self, *args, **kwargs): - self.image_service = utils.get_default_image_service() + self.image_service = image.get_default_image_service() def _register(self, container_format, disk_format, path, owner, name=None, is_public='T', diff --git a/nova/utils.py b/nova/utils.py index ecca5303a..954947589 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -726,52 +726,3 @@ def parse_server_string(server_str): except: LOG.debug(_('Invalid server_string: %s' % server_str)) return ('', '') - - -def parse_image_ref(image_ref): - """Parse an image href into composite parts. - - If the image_ref passed in is an integer, it will - return (image_ref, None, None), otherwise it will - return (image_id, host, port) - - :param image_ref: href or id of an image - - """ - if str(image_ref).isdigit(): - return (int(image_ref), None, None) - - o = urlparse(image_ref) - port = o.port or 80 - host = o.netloc.split(':', 1)[0] - image_id = int(o.path.split('/')[-1]) - return (image_id, host, port) - - -def get_default_image_service(): - ImageService = import_class(FLAGS.image_service) - return ImageService() - - -def get_image_service(image_ref): - """Get the proper image_service and id for the given image_ref. - - The image_ref param can be an href of the form - http://myglanceserver:9292/images/42, or just an int such as 42. If the - image_ref is an int, then the default image service is returned. - - :param image_ref: image ref/id for an image - :returns: a tuple of the form (image_service, image_id) - - """ - image_ref = image_ref or 0 - if str(image_ref).isdigit(): - return (get_default_image_service(), int(image_ref)) - - try: - (image_id, host, port) = parse_image_ref(image_ref) - except: - raise exception.InvalidImageRef(image_ref=image_ref) - glance_client = nova.image.glance.GlanceClient(host, port) - image_service = nova.image.glance.GlanceImageService(glance_client) - return (image_service, image_id) From dae711ffc7ccf4a30d835c70ba9008c450871dcf Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 23 May 2011 10:39:50 -0700 Subject: [PATCH 049/164] get rid of all mention of drivers ... it's filter only now --- nova/exception.py | 5 +- nova/scheduler/host_filter.py | 55 ++++++++++---------- nova/tests/test_host_filter.py | 93 ++++++++++++++++------------------ 3 files changed, 75 insertions(+), 78 deletions(-) diff --git a/nova/exception.py b/nova/exception.py index 56c20d111..dde39f29b 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -465,9 +465,8 @@ class ZoneNotFound(NotFound): message = _("Zone %(zone_id)s could not be found.") -class SchedulerHostFilterDriverNotFound(NotFound): - message = _("Scheduler Host Filter Driver %(driver_name)s could" - " not be found.") +class SchedulerHostFilterNotFound(NotFound): + message = _("Scheduler Host Filter %(filter_name)s could not be found.") class InstanceMetadataNotFound(NotFound): diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 92ec827d3..d9771754a 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -14,8 +14,8 @@ # under the License. """ -Host Filter is a driver mechanism for requesting instance resources. -Three drivers are included: AllHosts, Flavor & JSON. AllHosts just +Host Filter is a mechanism for requesting instance resources. +Three filters are included: AllHosts, Flavor & JSON. AllHosts just returns the full, unfiltered list of hosts. Flavor is a hard coded matching mechanism based on flavor criteria and JSON is an ad-hoc filter grammar. @@ -47,13 +47,13 @@ from nova.scheduler import zone_aware_scheduler LOG = logging.getLogger('nova.scheduler.host_filter') FLAGS = flags.FLAGS -flags.DEFINE_string('default_host_filter_driver', +flags.DEFINE_string('default_host_filter', 'nova.scheduler.host_filter.AllHostsFilter', - 'Which driver to use for filtering hosts.') + 'Which filter to use for filtering hosts.') class HostFilter(object): - """Base class for host filter drivers.""" + """Base class for host filters.""" def instance_type_to_filter(self, instance_type): """Convert instance_type into a filter for most common use-case.""" @@ -64,12 +64,12 @@ class HostFilter(object): raise NotImplementedError() def _full_name(self): - """module.classname of the filter driver""" + """module.classname of the filter.""" return "%s.%s" % (self.__module__, self.__class__.__name__) class AllHostsFilter(HostFilter): - """NOP host filter driver. Returns all hosts in ZoneManager. + """NOP host filter. Returns all hosts in ZoneManager. This essentially does what the old Scheduler+Chance used to give us.""" @@ -85,7 +85,7 @@ class AllHostsFilter(HostFilter): class InstanceTypeFilter(HostFilter): - """HostFilter driver hard-coded to work with InstanceType records.""" + """HostFilter hard-coded to work with InstanceType records.""" def instance_type_to_filter(self, instance_type): """Use instance_type to filter hosts.""" @@ -133,7 +133,7 @@ class InstanceTypeFilter(HostFilter): class JsonFilter(HostFilter): - """Host Filter driver to allow simple JSON-based grammar for + """Host Filter to allow simple JSON-based grammar for selecting hosts.""" def _equals(self, args): @@ -273,43 +273,44 @@ class JsonFilter(HostFilter): return hosts -DRIVERS = [AllHostsFilter, InstanceTypeFilter, JsonFilter] +FILTERS = [AllHostsFilter, InstanceTypeFilter, JsonFilter] -def choose_driver(driver_name=None): - """Since the caller may specify which driver to use we need +def choose_host_filter(filter_name=None): + """Since the caller may specify which filter to use we need to have an authoritative list of what is permissible. This - function checks the driver name against a predefined set - of acceptable drivers.""" + function checks the filter name against a predefined set + of acceptable filters.""" - if not driver_name: - driver_name = FLAGS.default_host_filter_driver - for driver in DRIVERS: - if "%s.%s" % (driver.__module__, driver.__name__) == driver_name: - return driver() - raise exception.SchedulerHostFilterDriverNotFound(driver_name=driver_name) + if not filter_name: + filter_name = FLAGS.default_host_filter + for filter_class in FILTERS: + if "%s.%s" % (filter_class.__module__, filter_class.__name__) == \ + filter_name: + return filter_class() + raise exception.SchedulerHostFilterNotFound(filter_name=filter_name) class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): - """The HostFilterScheduler uses the HostFilter drivers to filter - hosts for weighing. The particular driver used may be passed in + """The HostFilterScheduler uses the HostFilter to filter + hosts for weighing. The particular filter used may be passed in as an argument or the default will be used. - request_spec = {'filter_driver': , + request_spec = {'filter_name': , 'instance_type': } """ def filter_hosts(self, num, request_spec): """Filter the full host list (from the ZoneManager)""" - driver_name = request_spec.get('filter_driver', None) - driver = choose_driver(driver_name) + filter_name = request_spec.get('filter_name', None) + host_filter = choose_host_filter(filter_name) # TODO(sandy): We're only using InstanceType-based specs # currently. Later we'll need to snoop for more detailed # host filter requests. instance_type = request_spec['instance_type'] - name, query = driver.instance_type_to_filter(instance_type) - return driver.filter_hosts(self.zone_manager, query) + name, query = host_filter.instance_type_to_filter(instance_type) + return host_filter.filter_hosts(self.zone_manager, query) def weigh_hosts(self, num, request_spec, hosts): """Derived classes must override this method and return diff --git a/nova/tests/test_host_filter.py b/nova/tests/test_host_filter.py index dd2325cc6..07817cc5a 100644 --- a/nova/tests/test_host_filter.py +++ b/nova/tests/test_host_filter.py @@ -13,7 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. """ -Tests For Scheduler Host Filter Drivers. +Tests For Scheduler Host Filters. """ import json @@ -31,7 +31,7 @@ class FakeZoneManager: class HostFilterTestCase(test.TestCase): - """Test case for host filter drivers.""" + """Test case for host filters.""" def _host_caps(self, multiplier): # Returns host capabilities in the following way: @@ -57,8 +57,8 @@ class HostFilterTestCase(test.TestCase): 'host_name-label': 'xs-%s' % multiplier} def setUp(self): - self.old_flag = FLAGS.default_host_filter_driver - FLAGS.default_host_filter_driver = \ + self.old_flag = FLAGS.default_host_filter + FLAGS.default_host_filter = \ 'nova.scheduler.host_filter.AllHostsFilter' self.instance_type = dict(name='tiny', memory_mb=50, @@ -76,52 +76,52 @@ class HostFilterTestCase(test.TestCase): self.zone_manager.service_states = states def tearDown(self): - FLAGS.default_host_filter_driver = self.old_flag + FLAGS.default_host_filter = self.old_flag - def test_choose_driver(self): - # Test default driver ... - driver = host_filter.choose_driver() - self.assertEquals(driver._full_name(), + def test_choose_filter(self): + # Test default filter ... + hf = host_filter.choose_host_filter() + self.assertEquals(hf._full_name(), 'nova.scheduler.host_filter.AllHostsFilter') - # Test valid driver ... - driver = host_filter.choose_driver( + # Test valid filter ... + hf = host_filter.choose_host_filter( 'nova.scheduler.host_filter.InstanceTypeFilter') - self.assertEquals(driver._full_name(), + self.assertEquals(hf._full_name(), 'nova.scheduler.host_filter.InstanceTypeFilter') - # Test invalid driver ... + # Test invalid filter ... try: - host_filter.choose_driver('does not exist') - self.fail("Should not find driver") - except exception.SchedulerHostFilterDriverNotFound: + host_filter.choose_host_filter('does not exist') + self.fail("Should not find host filter.") + except exception.SchedulerHostFilterNotFound: pass - def test_all_host_driver(self): - driver = host_filter.AllHostsFilter() - cooked = driver.instance_type_to_filter(self.instance_type) - hosts = driver.filter_hosts(self.zone_manager, cooked) + def test_all_host_filter(self): + hf = host_filter.AllHostsFilter() + cooked = hf.instance_type_to_filter(self.instance_type) + hosts = hf.filter_hosts(self.zone_manager, cooked) self.assertEquals(10, len(hosts)) for host, capabilities in hosts: self.assertTrue(host.startswith('host')) - def test_instance_type_driver(self): - driver = host_filter.InstanceTypeFilter() + def test_instance_type_filter(self): + hf = host_filter.InstanceTypeFilter() # filter all hosts that can support 50 ram and 500 disk - name, cooked = driver.instance_type_to_filter(self.instance_type) + name, cooked = hf.instance_type_to_filter(self.instance_type) self.assertEquals('nova.scheduler.host_filter.InstanceTypeFilter', name) - hosts = driver.filter_hosts(self.zone_manager, cooked) + hosts = hf.filter_hosts(self.zone_manager, cooked) self.assertEquals(6, len(hosts)) just_hosts = [host for host, caps in hosts] just_hosts.sort() self.assertEquals('host05', just_hosts[0]) self.assertEquals('host10', just_hosts[5]) - def test_json_driver(self): - driver = host_filter.JsonFilter() + def test_json_filter(self): + hf = host_filter.JsonFilter() # filter all hosts that can support 50 ram and 500 disk - name, cooked = driver.instance_type_to_filter(self.instance_type) + name, cooked = hf.instance_type_to_filter(self.instance_type) self.assertEquals('nova.scheduler.host_filter.JsonFilter', name) - hosts = driver.filter_hosts(self.zone_manager, cooked) + hosts = hf.filter_hosts(self.zone_manager, cooked) self.assertEquals(6, len(hosts)) just_hosts = [host for host, caps in hosts] just_hosts.sort() @@ -141,7 +141,7 @@ class HostFilterTestCase(test.TestCase): ] ] cooked = json.dumps(raw) - hosts = driver.filter_hosts(self.zone_manager, cooked) + hosts = hf.filter_hosts(self.zone_manager, cooked) self.assertEquals(5, len(hosts)) just_hosts = [host for host, caps in hosts] @@ -153,7 +153,7 @@ class HostFilterTestCase(test.TestCase): ['=', '$compute.host_memory_free', 30], ] cooked = json.dumps(raw) - hosts = driver.filter_hosts(self.zone_manager, cooked) + hosts = hf.filter_hosts(self.zone_manager, cooked) self.assertEquals(9, len(hosts)) just_hosts = [host for host, caps in hosts] @@ -163,7 +163,7 @@ class HostFilterTestCase(test.TestCase): raw = ['in', '$compute.host_memory_free', 20, 40, 60, 80, 100] cooked = json.dumps(raw) - hosts = driver.filter_hosts(self.zone_manager, cooked) + hosts = hf.filter_hosts(self.zone_manager, cooked) self.assertEquals(5, len(hosts)) just_hosts = [host for host, caps in hosts] @@ -175,35 +175,32 @@ class HostFilterTestCase(test.TestCase): raw = ['unknown command', ] cooked = json.dumps(raw) try: - driver.filter_hosts(self.zone_manager, cooked) + hf.filter_hosts(self.zone_manager, cooked) self.fail("Should give KeyError") except KeyError, e: pass - self.assertTrue(driver.filter_hosts(self.zone_manager, json.dumps([]))) - self.assertTrue(driver.filter_hosts(self.zone_manager, json.dumps({}))) - self.assertTrue(driver.filter_hosts(self.zone_manager, json.dumps( + self.assertTrue(hf.filter_hosts(self.zone_manager, json.dumps([]))) + self.assertTrue(hf.filter_hosts(self.zone_manager, json.dumps({}))) + self.assertTrue(hf.filter_hosts(self.zone_manager, json.dumps( ['not', True, False, True, False] ))) try: - driver.filter_hosts(self.zone_manager, json.dumps( + hf.filter_hosts(self.zone_manager, json.dumps( 'not', True, False, True, False )) self.fail("Should give KeyError") except KeyError, e: pass - self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( - ['=', '$foo', 100] - ))) - self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( - ['=', '$.....', 100] - ))) - self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( - ['>', ['and', ['or', ['not', ['<', ['>=', ['<=', ['in', ]]]]]]]] - ))) + self.assertFalse(hf.filter_hosts(self.zone_manager, + json.dumps(['=', '$foo', 100]))) + self.assertFalse(hf.filter_hosts(self.zone_manager, + json.dumps(['=', '$.....', 100]))) + self.assertFalse(hf.filter_hosts(self.zone_manager, + json.dumps( + ['>', ['and', ['or', ['not', ['<', ['>=', ['<=', ['in', ]]]]]]]]))) - self.assertFalse(driver.filter_hosts(self.zone_manager, json.dumps( - ['=', {}, ['>', '$missing....foo']] - ))) + self.assertFalse(hf.filter_hosts(self.zone_manager, + json.dumps(['=', {}, ['>', '$missing....foo']]))) From cf12a16eeb1581afe62370af60e3ba9b192383b1 Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Mon, 23 May 2011 16:47:25 -0400 Subject: [PATCH 050/164] Renaming service_image_id vars to image_id to reduce confusion. Also some minor cleanup. --- nova/utils.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/nova/utils.py b/nova/utils.py index 954947589..361fc9873 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -35,7 +35,6 @@ import struct import sys import time import types -from urlparse import urlparse from xml.sax import saxutils from eventlet import event @@ -43,7 +42,6 @@ from eventlet import greenthread from eventlet import semaphore from eventlet.green import subprocess -import nova from nova import exception from nova import flags from nova import log as logging From dd674bdcc71910de186786ecaa43c2e8897db7f5 Mon Sep 17 00:00:00 2001 From: John Tran Date: Mon, 23 May 2011 14:54:11 -0700 Subject: [PATCH 051/164] merged from trunk --- nova/tests/test_cloud.py | 51 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index ebfb5ee44..f3887b07b 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -37,7 +37,6 @@ from nova import rpc from nova import service from nova import test from nova import utils -from nova import exception from nova.auth import manager from nova.compute import power_state from nova.api.ec2 import cloud @@ -279,6 +278,26 @@ class CloudTestCase(test.TestCase): user_group=['all']) self.assertEqual(True, result['is_public']) + def test_deregister_image(self): + deregister_image = self.cloud.deregister_image + + def fake_delete(self, context, id): + return None + + self.stubs.Set(local.LocalImageService, 'delete', fake_delete) + # valid image + result = deregister_image(self.context, 'ami-00000001') + self.assertEqual(result['imageId'], 'ami-00000001') + # invalid image + self.stubs.UnsetAll() + + def fake_detail_empty(self, context): + return [] + + self.stubs.Set(local.LocalImageService, 'detail', fake_detail_empty) + self.assertRaises(exception.ImageNotFound, deregister_image, + self.context, 'ami-bad001') + def test_console_output(self): instance_type = FLAGS.default_instance_type max_count = 1 @@ -334,6 +353,36 @@ class CloudTestCase(test.TestCase): self.assertTrue(filter(lambda k: k['keyName'] == 'test1', keys)) self.assertTrue(filter(lambda k: k['keyName'] == 'test2', keys)) + def test_import_public_key(self): + # test when user provides all values + result1 = self.cloud.import_public_key(self.context, + 'testimportkey1', + 'mytestpubkey', + 'mytestfprint') + self.assertTrue(result1) + keydata = db.key_pair_get(self.context, + self.context.user.id, + 'testimportkey1') + self.assertEqual('mytestpubkey', keydata['public_key']) + self.assertEqual('mytestfprint', keydata['fingerprint']) + # test when user omits fingerprint + pubkey_path = os.path.join(os.path.dirname(__file__), 'public_key') + f = open(pubkey_path + '/dummy.pub', 'r') + dummypub = f.readline().rstrip() + f.close + f = open(pubkey_path + '/dummy.fingerprint', 'r') + dummyfprint = f.readline().rstrip() + f.close + result2 = self.cloud.import_public_key(self.context, + 'testimportkey2', + dummypub) + self.assertTrue(result2) + keydata = db.key_pair_get(self.context, + self.context.user.id, + 'testimportkey2') + self.assertEqual(dummypub, keydata['public_key']) + self.assertEqual(dummyfprint, keydata['fingerprint']) + def test_delete_key_pair(self): self._create_key('test') self.cloud.delete_key_pair(self.context, 'test') From e5a7daf14d91cfb679e3bd8299072e7498658cce Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 23 May 2011 16:19:12 -0700 Subject: [PATCH 052/164] getting closer to working select call --- nova/flags.py | 2 ++ nova/scheduler/api.py | 5 +++++ nova/scheduler/manager.py | 4 +++- nova/scheduler/zone_aware_scheduler.py | 17 +++++++++++++++-- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/nova/flags.py b/nova/flags.py index 519793643..0b7cd478e 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -376,3 +376,5 @@ DEFINE_string('zone_name', 'nova', 'name of this zone') DEFINE_list('zone_capabilities', ['hypervisor=xenserver;kvm', 'os=linux;windows'], 'Key/Multi-value list representng capabilities of this zone') +DEFINE_string('build_plan_encryption_key', None, + '128bit (hex) encryption key for scheduler build plans.') diff --git a/nova/scheduler/api.py b/nova/scheduler/api.py index 55f8e0a6d..f9a4f238b 100644 --- a/nova/scheduler/api.py +++ b/nova/scheduler/api.py @@ -18,6 +18,7 @@ Handles all requests relating to schedulers. """ import novaclient +import traceback #nuke from nova import db from nova import exception @@ -124,6 +125,7 @@ def call_zone_method(context, method, errors_to_ignore=None, *args, **kwargs): nova = novaclient.OpenStack(zone.username, zone.password, zone.api_url) nova.authenticate() + LOG.warn(_("*** AUTHENTICATED") % locals())#asdads except novaclient.exceptions.BadRequest, e: url = zone.api_url LOG.warn(_("Failed request to zone; URL=%(url)s: %(e)s") @@ -135,10 +137,13 @@ def call_zone_method(context, method, errors_to_ignore=None, *args, **kwargs): def _error_trap(*args, **kwargs): try: + LOG.warn(_("*** CALLING ZONE") % locals())#asdads return zone_method(*args, **kwargs) except Exception as e: if type(e) in errors_to_ignore: return None + ex = traceback.format_exc(e) + LOG.warn(_("*** CAUGHT EXCEPTION %(ex)s") % locals())#asdads # TODO (dabo) - want to be able to re-raise here. # Returning a string now; raising was causing issues. # raise e diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py index bd40e73c0..96e69566d 100644 --- a/nova/scheduler/manager.py +++ b/nova/scheduler/manager.py @@ -80,7 +80,9 @@ class SchedulerManager(manager.Manager): try: host = getattr(self.driver, driver_method)(elevated, *args, **kwargs) - except AttributeError: + except AttributeError, e: + LOG.exception(_("Driver Method %(driver_method)s missing: %(e)s") + % locals()) host = self.driver.schedule(elevated, topic, *args, **kwargs) if not host: diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 20f7694a1..6c666d1a8 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -23,12 +23,16 @@ across zones. There are two expansion points to this class for: import operator import M2Crypto +from nova import crypto from nova import db -from nova import rpc +from nova import flags from nova import log as logging +from nova import rpc + from nova.scheduler import api from nova.scheduler import driver +FLAGS = flags.FLAGS LOG = logging.getLogger('nova.scheduler.zone_aware_scheduler') @@ -51,7 +55,8 @@ class ZoneAwareScheduler(driver.Scheduler): # TODO(sandy): We'll have to look for richer specs at some point. - if 'blob' in request_spec: + blob = request_spec['blob'] + if blob: self.provision_resource(context, request_spec, instance_id, request_spec, kwargs) return None @@ -99,6 +104,8 @@ class ZoneAwareScheduler(driver.Scheduler): # 1. valid, # 2. intended for this zone or a child zone. # if 2 ... forward call to child zone. + LOG.debug(_("****** PROVISION IN CHILD %(item)s") % locals()) + blob = item['blob'] decryptor = crypto.decryptor(FLAGS.build_plan_encryption_key) host_info = None @@ -182,16 +189,21 @@ class ZoneAwareScheduler(driver.Scheduler): #TODO(sandy): how to infer this from OS API params? num_instances = 1 + LOG.debug(_("XXXXXXX - 1 - _SCHEDULE")) + # Filter local hosts based on requirements ... host_list = self.filter_hosts(num_instances, request_spec) + LOG.debug(_("XXXXXXX - 2 - _SCHEDULE")) # then weigh the selected hosts. # weighted = [{weight=weight, name=hostname}, ...] weighted = self.weigh_hosts(num_instances, request_spec, host_list) + LOG.debug(_("XXXXXXX - 3 - _SCHEDULE")) # Next, tack on the best weights from the child zones ... child_results = self._call_zone_method(context, "select", specs=request_spec) + LOG.debug(_("XXXXXXX - 4 - _SCHEDULE - CHILD RESULTS %(child_results)s") % locals()) for child_zone, result in child_results: for weighting in result: # Remember the child_zone so we can get back to @@ -203,6 +215,7 @@ class ZoneAwareScheduler(driver.Scheduler): "child_blob": weighting["blob"]} weighted.append(host_dict) + LOG.debug(_("XXXXXXX - 4 - _SCHEDULE")) weighted.sort(key=operator.itemgetter('weight')) return weighted From 8e6145b1185f1dc9f90e86f4fbf365551f012113 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Mon, 23 May 2011 22:47:44 -0400 Subject: [PATCH 053/164] make image_ref and image_id usage more consistant, eliminate redundancy in compute_api.create() call --- nova/tests/test_cloud.py | 4 ++-- nova/tests/test_compute.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 54c0454de..3aaca6831 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -302,7 +302,7 @@ class CloudTestCase(test.TestCase): def test_console_output(self): instance_type = FLAGS.default_instance_type max_count = 1 - kwargs = {'image_id': 'ami-1', + kwargs = {'image_ref': 'ami-1', 'instance_type': instance_type, 'max_count': max_count} rv = self.cloud.run_instances(self.context, **kwargs) @@ -318,7 +318,7 @@ class CloudTestCase(test.TestCase): greenthread.sleep(0.3) def test_ajax_console(self): - kwargs = {'image_id': 'ami-1'} + kwargs = {'image_ref': 'ami-1'} rv = self.cloud.run_instances(self.context, **kwargs) instance_id = rv['instancesSet'][0]['instanceId'] greenthread.sleep(0.3) diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index 9170837b6..b02b99f66 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -150,7 +150,7 @@ class ComputeTestCase(test.TestCase): ref = self.compute_api.create( self.context, instance_type=instance_types.get_default_instance_type(), - image_id=None, + image_ref=None, security_group=['testgroup']) try: self.assertEqual(len(db.security_group_get_by_instance( @@ -168,7 +168,7 @@ class ComputeTestCase(test.TestCase): ref = self.compute_api.create( self.context, instance_type=instance_types.get_default_instance_type(), - image_id=None, + image_ref=None, security_group=['testgroup']) try: db.instance_destroy(self.context, ref[0]['id']) @@ -184,7 +184,7 @@ class ComputeTestCase(test.TestCase): ref = self.compute_api.create( self.context, instance_type=instance_types.get_default_instance_type(), - image_id=None, + image_ref=None, security_group=['testgroup']) try: From 4c2cb9eb94586f506d9cc920c4518f52a52b6aed Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 23 May 2011 22:30:01 -0700 Subject: [PATCH 054/164] select partially going through --- nova/scheduler/api.py | 4 ++-- nova/scheduler/manager.py | 4 ++++ nova/scheduler/zone_aware_scheduler.py | 6 ++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/nova/scheduler/api.py b/nova/scheduler/api.py index f9a4f238b..f5b570dbd 100644 --- a/nova/scheduler/api.py +++ b/nova/scheduler/api.py @@ -85,7 +85,7 @@ def get_zone_capabilities(context): def select(context, specs=None): """Returns a list of hosts.""" return _call_scheduler('select', context=context, - params={"specs": specs}) + params={"request_spec": specs}) def update_service_capabilities(context, service_name, host, capabilities): @@ -137,7 +137,7 @@ def call_zone_method(context, method, errors_to_ignore=None, *args, **kwargs): def _error_trap(*args, **kwargs): try: - LOG.warn(_("*** CALLING ZONE") % locals())#asdads + LOG.warn(_("*** CALLING ZONE %(args)s ^^ %(kwargs)s") % locals())#asdads return zone_method(*args, **kwargs) except Exception as e: if type(e) in errors_to_ignore: diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py index 96e69566d..db8c41e71 100644 --- a/nova/scheduler/manager.py +++ b/nova/scheduler/manager.py @@ -70,6 +70,10 @@ class SchedulerManager(manager.Manager): self.zone_manager.update_service_capabilities(service_name, host, capabilities) + def select(self, context=None, *args, **kwargs): + """Select a list of hosts best matching the provided specs.""" + return self.driver.select(context, *args, **kwargs) + def _schedule(self, method, context, topic, *args, **kwargs): """Tries to call schedule_* method on the driver to retrieve host. diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 6c666d1a8..c6f2935b7 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -21,6 +21,7 @@ across zones. There are two expansion points to this class for: """ import operator +import json import M2Crypto from nova import crypto @@ -199,10 +200,11 @@ class ZoneAwareScheduler(driver.Scheduler): # weighted = [{weight=weight, name=hostname}, ...] weighted = self.weigh_hosts(num_instances, request_spec, host_list) - LOG.debug(_("XXXXXXX - 3 - _SCHEDULE")) + LOG.debug(_("XXXXXXX - 3 - _SCHEDULE >> %s") % request_spec) # Next, tack on the best weights from the child zones ... + json_spec = json.dumps(request_spec) child_results = self._call_zone_method(context, "select", - specs=request_spec) + specs=json_spec) LOG.debug(_("XXXXXXX - 4 - _SCHEDULE - CHILD RESULTS %(child_results)s") % locals()) for child_zone, result in child_results: for weighting in result: From f875179d3885d25a0adcddf7cd53bc174d38b59b Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 24 May 2011 05:46:09 -0700 Subject: [PATCH 055/164] sending calls --- nova/scheduler/zone_aware_scheduler.py | 45 +++++++++++++++----------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index c6f2935b7..238a50d04 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -23,6 +23,7 @@ across zones. There are two expansion points to this class for: import operator import json import M2Crypto +import novaclient from nova import crypto from nova import db @@ -105,16 +106,24 @@ class ZoneAwareScheduler(driver.Scheduler): # 1. valid, # 2. intended for this zone or a child zone. # if 2 ... forward call to child zone. + # Note: If we have "blob" that means the request was passed + # into us. If we have "child_blob" that means we just asked + # the child zone for the weight info. LOG.debug(_("****** PROVISION IN CHILD %(item)s") % locals()) - blob = item['blob'] - decryptor = crypto.decryptor(FLAGS.build_plan_encryption_key) - host_info = None - try: - json_entry = decryptor(blob) - host_info = json.dumps(entry) - except M2Crypto.EVP.EVPError: - pass + if "blob" in item: + # Request was passed in from above. Is it for us? + blob = item['blob'] + decryptor = crypto.decryptor(FLAGS.build_plan_encryption_key) + host_info = None + try: + json_entry = decryptor(blob) + host_info = json.dumps(entry) + except M2Crypto.EVP.EVPError: + pass + elif "child_blob" in item: + # Our immediate child zone provided this info ... + host_info = item if not host_info: raise exception.Invalid(_("Ill-formed or incorrectly " @@ -129,26 +138,27 @@ class ZoneAwareScheduler(driver.Scheduler): self._provision_resource_locally(context, host_info, instance_id, kwargs) - def _ask_child_zone_to_create_instance(self, zone_info, request_spec, - kwargs): + def _ask_child_zone_to_create_instance(self, context, zone_info, + request_spec, kwargs): # Note: we have to reverse engineer from our args to get back the # image, flavor, ipgroup, etc. since the original call could have # come in from EC2 (which doesn't use these things). + LOG.debug(_("****** ASK CHILD %(zone_info)s ** %(request_spec)s") % locals()) instance_type = request_spec['instance_type'] instance_properties = request_spec['instance_properties'] name = instance_properties['display_name'] image_id = instance_properties['image_id'] - flavor_id = instance_type['flavor_id'] - meta = instance_type['metadata'] + meta = instance_properties['metadata'] + flavor_id = instance_type['flavorid'] files = kwargs['injected_files'] ipgroup = None # Not supported in OS API ... yet child_zone = zone_info['child_zone'] child_blob = zone_info['child_blob'] - zone = db.zone_get(child_zone) + zone = db.zone_get(context, child_zone) url = zone.api_url nova = None try: @@ -158,7 +168,7 @@ class ZoneAwareScheduler(driver.Scheduler): raise exception.NotAuthorized(_("Bad credentials attempting " "to talk to zone at %(url)s.") % locals()) - nova.servers.create(name, image, flavor, ipgroup, meta, files, + nova.servers.create(name, image_id, flavor_id, ipgroup, meta, files, child_blob) def select(self, context, request_spec, *args, **kwargs): @@ -211,10 +221,9 @@ class ZoneAwareScheduler(driver.Scheduler): # Remember the child_zone so we can get back to # it later if needed. This implicitly builds a zone # path structure. - host_dict = { - "weight": weighting["weight"], - "child_zone": child_zone, - "child_blob": weighting["blob"]} + host_dict = {"weight": weighting["weight"], + "child_zone": child_zone, + "child_blob": weighting["blob"]} weighted.append(host_dict) LOG.debug(_("XXXXXXX - 4 - _SCHEDULE")) From 60d0de3da67edf82b4e05f6659fcc41dcffb3fd2 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 24 May 2011 07:36:32 -0700 Subject: [PATCH 056/164] removed most of debugging code --- nova/rpc.py | 1 - nova/scheduler/manager.py | 3 +-- nova/scheduler/zone_aware_scheduler.py | 24 +++++++----------------- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/nova/rpc.py b/nova/rpc.py index af3625eee..2116f22c3 100644 --- a/nova/rpc.py +++ b/nova/rpc.py @@ -194,7 +194,6 @@ class AdapterConsumer(Consumer): node_func = getattr(self.proxy, str(method)) node_args = dict((str(k), v) for k, v in args.iteritems()) # NOTE(vish): magic is fun! - logging.exception('CALLING %s on SCHEDULER with %s' % (node_func, node_args)) try: rval = node_func(context=ctxt, **node_args) if msg_id: diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py index ba0d5b962..a6fc53be5 100644 --- a/nova/scheduler/manager.py +++ b/nova/scheduler/manager.py @@ -73,14 +73,13 @@ class SchedulerManager(manager.Manager): def select(self, context=None, *args, **kwargs): """Select a list of hosts best matching the provided specs.""" return self.driver.select(context, *args, **kwargs) - + def _schedule(self, method, context, topic, *args, **kwargs): """Tries to call schedule_* method on the driver to retrieve host. Falls back to schedule(context, topic) if method doesn't exist. """ driver_method = 'schedule_%s' % method - LOG.debug(_("CALLING %(driver_method)s handled in Scheduler") % locals()) # nuke elevated = context.elevated() try: host = getattr(self.driver, driver_method)(elevated, *args, diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index d387011eb..1a96c56c3 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -64,7 +64,6 @@ class ZoneAwareScheduler(driver.Scheduler): return None # Create build plan and provision ... - LOG.debug(_("****** SCHEDULE RUN INSTANCE") % locals()) build_plan = self.select(context, request_spec) if not build_plan: raise driver.NoValidHost(_('No hosts were available')) @@ -84,7 +83,7 @@ class ZoneAwareScheduler(driver.Scheduler): self._provision_resource_locally(context, item, instance_id, kwargs) return - + self._provision_resource_in_child_zone(context, item, instance_id, request_spec, kwargs) @@ -104,13 +103,12 @@ class ZoneAwareScheduler(driver.Scheduler): """Create the requested resource in a child zone.""" # Start by attempting to decrypt the blob to see if this # request is: - # 1. valid, + # 1. valid, # 2. intended for this zone or a child zone. # if 2 ... forward call to child zone. # Note: If we have "blob" that means the request was passed # into us. If we have "child_blob" that means we just asked # the child zone for the weight info. - LOG.debug(_("****** PROVISION IN CHILD %(item)s") % locals()) if "blob" in item: # Request was passed in from above. Is it for us? @@ -156,7 +154,7 @@ class ZoneAwareScheduler(driver.Scheduler): files = kwargs['injected_files'] ipgroup = None # Not supported in OS API ... yet - + child_zone = zone_info['child_zone'] child_blob = zone_info['child_blob'] zone = db.zone_get(context, child_zone) @@ -166,18 +164,17 @@ class ZoneAwareScheduler(driver.Scheduler): nova = novaclient.OpenStack(zone.username, zone.password, url) nova.authenticate() except novaclient.exceptions.BadRequest, e: - raise exception.NotAuthorized(_("Bad credentials attempting " + raise exception.NotAuthorized(_("Bad credentials attempting " "to talk to zone at %(url)s.") % locals()) - + nova.servers.create(name, image_id, flavor_id, ipgroup, meta, files, child_blob) - + def select(self, context, request_spec, *args, **kwargs): """Select returns a list of weights and zone/host information corresponding to the best hosts to service the request. Any child zone information has been encrypted so as not to reveal - anything about the children.""" - LOG.debug(_("XXXXXXX - SELECT %(request_spec)s") % locals()) # nuke this !!! + anything about the children.""" return self._schedule(context, "compute", request_spec, *args, **kwargs) @@ -188,7 +185,6 @@ class ZoneAwareScheduler(driver.Scheduler): """The schedule() contract requires we return the one best-suited host for this request. """ - LOG.debug(_("XXXXXXX - DEFAULT SCHEDULE %(request_spec)s") % locals()) # nuke this !!! raise driver.NoValidHost(_('No hosts were available')) def _schedule(self, context, topic, request_spec, *args, **kwargs): @@ -203,22 +199,17 @@ class ZoneAwareScheduler(driver.Scheduler): #TODO(sandy): how to infer this from OS API params? num_instances = 1 - LOG.debug(_("XXXXXXX - 1 - _SCHEDULE")) - # Filter local hosts based on requirements ... host_list = self.filter_hosts(num_instances, request_spec) - LOG.debug(_("XXXXXXX - 2 - _SCHEDULE")) # then weigh the selected hosts. # weighted = [{weight=weight, name=hostname}, ...] weighted = self.weigh_hosts(num_instances, request_spec, host_list) - LOG.debug(_("XXXXXXX - 3 - _SCHEDULE >> %s") % request_spec) # Next, tack on the best weights from the child zones ... json_spec = json.dumps(request_spec) child_results = self._call_zone_method(context, "select", specs=json_spec) - LOG.debug(_("XXXXXXX - 4 - _SCHEDULE - CHILD RESULTS %(child_results)s") % locals()) for child_zone, result in child_results: for weighting in result: # Remember the child_zone so we can get back to @@ -229,7 +220,6 @@ class ZoneAwareScheduler(driver.Scheduler): "child_blob": weighting["blob"]} weighted.append(host_dict) - LOG.debug(_("XXXXXXX - 4 - _SCHEDULE")) weighted.sort(key=operator.itemgetter('weight')) return weighted From 47106efaf22199fcd36a335aeef3c09354640650 Mon Sep 17 00:00:00 2001 From: John Tran Date: Tue, 24 May 2011 08:59:02 -0700 Subject: [PATCH 057/164] added imageid string to exception, per peer review --- nova/tests/test_cloud.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index f3887b07b..e37aca4d6 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -226,7 +226,7 @@ class CloudTestCase(test.TestCase): 'type': 'machine'}}] def fake_show_none(meh, context, id): - raise exception.ImageNotFound + raise exception.ImageNotFound('bad_image_id') self.stubs.Set(local.LocalImageService, 'detail', fake_detail) # list all From c66dc258372f99bf2e02c6581c27e15829ff4435 Mon Sep 17 00:00:00 2001 From: John Tran Date: Tue, 24 May 2011 09:43:52 -0700 Subject: [PATCH 058/164] specified image_id keyword in exception arg --- nova/tests/test_cloud.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index e37aca4d6..1e583377b 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -226,7 +226,7 @@ class CloudTestCase(test.TestCase): 'type': 'machine'}}] def fake_show_none(meh, context, id): - raise exception.ImageNotFound('bad_image_id') + raise exception.ImageNotFound(image_id='bad_image_id') self.stubs.Set(local.LocalImageService, 'detail', fake_detail) # list all From 0894806370a78c1cfc187d7075a70dde77e6232e Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 24 May 2011 12:05:46 -0700 Subject: [PATCH 059/164] more fix up --- nova/scheduler/api.py | 4 --- nova/scheduler/zone_aware_scheduler.py | 41 ++++++++++++++++---------- nova/service.py | 2 -- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/nova/scheduler/api.py b/nova/scheduler/api.py index f5b570dbd..24d7ed0d6 100644 --- a/nova/scheduler/api.py +++ b/nova/scheduler/api.py @@ -18,7 +18,6 @@ Handles all requests relating to schedulers. """ import novaclient -import traceback #nuke from nova import db from nova import exception @@ -125,7 +124,6 @@ def call_zone_method(context, method, errors_to_ignore=None, *args, **kwargs): nova = novaclient.OpenStack(zone.username, zone.password, zone.api_url) nova.authenticate() - LOG.warn(_("*** AUTHENTICATED") % locals())#asdads except novaclient.exceptions.BadRequest, e: url = zone.api_url LOG.warn(_("Failed request to zone; URL=%(url)s: %(e)s") @@ -137,13 +135,11 @@ def call_zone_method(context, method, errors_to_ignore=None, *args, **kwargs): def _error_trap(*args, **kwargs): try: - LOG.warn(_("*** CALLING ZONE %(args)s ^^ %(kwargs)s") % locals())#asdads return zone_method(*args, **kwargs) except Exception as e: if type(e) in errors_to_ignore: return None ex = traceback.format_exc(e) - LOG.warn(_("*** CAUGHT EXCEPTION %(ex)s") % locals())#asdads # TODO (dabo) - want to be able to re-raise here. # Returning a string now; raising was causing issues. # raise e diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 1a96c56c3..3dd43443a 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -84,7 +84,7 @@ class ZoneAwareScheduler(driver.Scheduler): kwargs) return - self._provision_resource_in_child_zone(context, item, instance_id, + self._provision_resource_from_blob(context, item, instance_id, request_spec, kwargs) def _provision_resource_locally(self, context, item, instance_id, kwargs): @@ -95,20 +95,24 @@ class ZoneAwareScheduler(driver.Scheduler): db.queue_get_for(context, "compute", host), {"method": "run_instance", "args": kwargs}) - LOG.debug(_("Casted to compute %(host)s for run_instance") + LOG.debug(_("Provisioning locally via compute node %(host)s") % locals()) - def _provision_resource_in_child_zone(self, context, item, instance_id, + def _provision_resource_from_blob(self, context, item, instance_id, request_spec, kwargs): - """Create the requested resource in a child zone.""" - # Start by attempting to decrypt the blob to see if this - # request is: - # 1. valid, - # 2. intended for this zone or a child zone. - # if 2 ... forward call to child zone. - # Note: If we have "blob" that means the request was passed - # into us. If we have "child_blob" that means we just asked - # the child zone for the weight info. + """Create the requested resource locally or in a child zone + based on what is stored in the zone blob info. + + Attempt to decrypt the blob to see if this request is: + 1. valid, and + 2. intended for this zone or a child zone. + + Note: If we have "blob" that means the request was passed + into us from a parent zone. If we have "child_blob" that + means we gathered the info from one of our children. + It's possible that, when we decrypt the 'blob' field, it + contains "child_blob" data. In which case we forward the + request.""" if "blob" in item: # Request was passed in from above. Is it for us? @@ -139,11 +143,14 @@ class ZoneAwareScheduler(driver.Scheduler): def _ask_child_zone_to_create_instance(self, context, zone_info, request_spec, kwargs): + """Once we have determined that the request should go to one + of our children, we need to fabricate a new POST /servers/ + call with the same parameters that were passed into us. + + Note that we have to reverse engineer from our args to get back the + image, flavor, ipgroup, etc. since the original call could have + come in from EC2 (which doesn't use these things).""" - # Note: we have to reverse engineer from our args to get back the - # image, flavor, ipgroup, etc. since the original call could have - # come in from EC2 (which doesn't use these things). - LOG.debug(_("****** ASK CHILD %(zone_info)s ** %(request_spec)s") % locals()) instance_type = request_spec['instance_type'] instance_properties = request_spec['instance_properties'] @@ -159,6 +166,8 @@ class ZoneAwareScheduler(driver.Scheduler): child_blob = zone_info['child_blob'] zone = db.zone_get(context, child_zone) url = zone.api_url + LOG.debug(_("Forwarding instance create call to child zone %(url)s") + % locals()) nova = None try: nova = novaclient.OpenStack(zone.username, zone.password, url) diff --git a/nova/service.py b/nova/service.py index 93020d94f..2532b9df2 100644 --- a/nova/service.py +++ b/nova/service.py @@ -132,9 +132,7 @@ class Service(object): self.service_id = service_ref['id'] def __getattr__(self, key): - logging.warn(_('SERVICE __GETATTR__ %s') % (key, )) manager = self.__dict__.get('manager', None) - logging.warn(_('SERVICE MANAGER %s') % (manager, )) return getattr(manager, key) @classmethod From 95bfbf8d276a7dd9dd9b7d44f0288f6f262cee12 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 24 May 2011 18:09:25 -0700 Subject: [PATCH 060/164] tests working again --- nova/scheduler/zone_aware_scheduler.py | 2 +- nova/tests/test_zone_aware_scheduler.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 3dd43443a..00f5660f3 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -57,7 +57,7 @@ class ZoneAwareScheduler(driver.Scheduler): # TODO(sandy): We'll have to look for richer specs at some point. - blob = request_spec['blob'] + blob = request_spec.get('blob') if blob: self.provision_resource(context, request_spec, instance_id, request_spec, kwargs) diff --git a/nova/tests/test_zone_aware_scheduler.py b/nova/tests/test_zone_aware_scheduler.py index 37169fb97..493eb294f 100644 --- a/nova/tests/test_zone_aware_scheduler.py +++ b/nova/tests/test_zone_aware_scheduler.py @@ -118,4 +118,5 @@ class ZoneAwareSchedulerTestCase(test.TestCase): fake_context = {} self.assertRaises(driver.NoValidHost, sched.schedule_run_instance, fake_context, 1, - dict(host_filter=None, instance_type={})) + dict(host_filter=None, + request_spec={'instance_type': {}})) From c20013295607ea5f418ab2a37df260256947c7a4 Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Wed, 25 May 2011 03:29:16 -0400 Subject: [PATCH 061/164] Don't need to import json. --- nova/tests/test_notifier.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/nova/tests/test_notifier.py b/nova/tests/test_notifier.py index 14bef79b8..523f38f24 100644 --- a/nova/tests/test_notifier.py +++ b/nova/tests/test_notifier.py @@ -13,8 +13,6 @@ # License for the specific language governing permissions and limitations # under the License. -import json - import stubout import nova From 655770a62e8adb686110fc9aa4833ac54be45d41 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Wed, 25 May 2011 08:17:50 -0700 Subject: [PATCH 062/164] New tests added --- nova/exception.py | 2 +- nova/scheduler/zone_aware_scheduler.py | 177 +++++++++++++----------- nova/tests/test_zone_aware_scheduler.py | 143 +++++++++++++++++++ 3 files changed, 237 insertions(+), 85 deletions(-) diff --git a/nova/exception.py b/nova/exception.py index cf6069454..0927a42f8 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -122,7 +122,7 @@ class NotAuthorized(NovaException): message = _("Not authorized.") def __init__(self, *args, **kwargs): - super(NotFound, self).__init__(**kwargs) + super(NotAuthorized, self).__init__(**kwargs) class AdminRequired(NotAuthorized): diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 00f5660f3..58a9eca55 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -27,6 +27,7 @@ import novaclient from nova import crypto from nova import db +from nova import exception from nova import flags from nova import log as logging from nova import rpc @@ -38,6 +39,11 @@ FLAGS = flags.FLAGS LOG = logging.getLogger('nova.scheduler.zone_aware_scheduler') +class InvalidBlob(exception.NovaException): + message = _("Ill-formed or incorrectly routed 'blob' data sent " + "to instance create request.") + + class ZoneAwareScheduler(driver.Scheduler): """Base class for creating Zone Aware Schedulers.""" @@ -45,48 +51,6 @@ class ZoneAwareScheduler(driver.Scheduler): """Call novaclient zone method. Broken out for testing.""" return api.call_zone_method(context, method, specs=specs) - def schedule_run_instance(self, context, instance_id, request_spec, - *args, **kwargs): - """This method is called from nova.compute.api to provision - an instance. However we need to look at the parameters being - passed in to see if this is a request to: - 1. Create a Build Plan and then provision, or - 2. Use the Build Plan information in the request parameters - to simply create the instance (either in this zone or - a child zone).""" - - # TODO(sandy): We'll have to look for richer specs at some point. - - blob = request_spec.get('blob') - if blob: - self.provision_resource(context, request_spec, instance_id, - request_spec, kwargs) - return None - - # Create build plan and provision ... - build_plan = self.select(context, request_spec) - if not build_plan: - raise driver.NoValidHost(_('No hosts were available')) - - for item in build_plan: - self.provision_resource(context, item, instance_id, request_spec, - kwargs) - - # Returning None short-circuits the routing to Compute (since - # we've already done it here) - return None - - def provision_resource(self, context, item, instance_id, request_spec, - kwargs): - """Create the requested resource in this Zone or a child zone.""" - if "hostname" in item: - self._provision_resource_locally(context, item, instance_id, - kwargs) - return - - self._provision_resource_from_blob(context, item, instance_id, - request_spec, kwargs) - def _provision_resource_locally(self, context, item, instance_id, kwargs): """Create the requested resource in this Zone.""" host = item['hostname'] @@ -98,48 +62,16 @@ class ZoneAwareScheduler(driver.Scheduler): LOG.debug(_("Provisioning locally via compute node %(host)s") % locals()) - def _provision_resource_from_blob(self, context, item, instance_id, - request_spec, kwargs): - """Create the requested resource locally or in a child zone - based on what is stored in the zone blob info. - - Attempt to decrypt the blob to see if this request is: - 1. valid, and - 2. intended for this zone or a child zone. - - Note: If we have "blob" that means the request was passed - into us from a parent zone. If we have "child_blob" that - means we gathered the info from one of our children. - It's possible that, when we decrypt the 'blob' field, it - contains "child_blob" data. In which case we forward the - request.""" - - if "blob" in item: - # Request was passed in from above. Is it for us? - blob = item['blob'] - decryptor = crypto.decryptor(FLAGS.build_plan_encryption_key) - host_info = None - try: - json_entry = decryptor(blob) - host_info = json.dumps(entry) - except M2Crypto.EVP.EVPError: - pass - elif "child_blob" in item: - # Our immediate child zone provided this info ... - host_info = item - - if not host_info: - raise exception.Invalid(_("Ill-formed or incorrectly " - "routed 'blob' data sent " - "to instance create request.") % locals()) - - # Valid data ... is it for us? - if 'child_zone' in host_info and 'child_blob' in host_info: - self._ask_child_zone_to_create_instance(context, host_info, - request_spec, kwargs) - else: - self._provision_resource_locally(context, host_info, - instance_id, kwargs) + def _decrypt_blob(self, blob): + """Returns the decrypted blob or None if invalid. Broken out + for testing.""" + decryptor = crypto.decryptor(FLAGS.build_plan_encryption_key) + try: + json_entry = decryptor(blob) + return json.dumps(entry) + except M2Crypto.EVP.EVPError: + pass + return None def _ask_child_zone_to_create_instance(self, context, zone_info, request_spec, kwargs): @@ -179,6 +111,83 @@ class ZoneAwareScheduler(driver.Scheduler): nova.servers.create(name, image_id, flavor_id, ipgroup, meta, files, child_blob) + def _provision_resource_from_blob(self, context, item, instance_id, + request_spec, kwargs): + """Create the requested resource locally or in a child zone + based on what is stored in the zone blob info. + + Attempt to decrypt the blob to see if this request is: + 1. valid, and + 2. intended for this zone or a child zone. + + Note: If we have "blob" that means the request was passed + into us from a parent zone. If we have "child_blob" that + means we gathered the info from one of our children. + It's possible that, when we decrypt the 'blob' field, it + contains "child_blob" data. In which case we forward the + request.""" + + host_info = None + if "blob" in item: + # Request was passed in from above. Is it for us? + host_info = self._decrypt_blob(item['blob']) + elif "child_blob" in item: + # Our immediate child zone provided this info ... + host_info = item + + if not host_info: + raise InvalidBlob() + + # Valid data ... is it for us? + if 'child_zone' in host_info and 'child_blob' in host_info: + self._ask_child_zone_to_create_instance(context, host_info, + request_spec, kwargs) + else: + self._provision_resource_locally(context, host_info, + instance_id, kwargs) + + def _provision_resource(self, context, item, instance_id, request_spec, + kwargs): + """Create the requested resource in this Zone or a child zone.""" + if "hostname" in item: + self._provision_resource_locally(context, item, instance_id, + kwargs) + return + + self._provision_resource_from_blob(context, item, instance_id, + request_spec, kwargs) + + def schedule_run_instance(self, context, instance_id, request_spec, + *args, **kwargs): + """This method is called from nova.compute.api to provision + an instance. However we need to look at the parameters being + passed in to see if this is a request to: + 1. Create a Build Plan and then provision, or + 2. Use the Build Plan information in the request parameters + to simply create the instance (either in this zone or + a child zone).""" + + # TODO(sandy): We'll have to look for richer specs at some point. + + blob = request_spec.get('blob') + if blob: + self._provision_resource(context, request_spec, instance_id, + request_spec, kwargs) + return None + + # Create build plan and provision ... + build_plan = self.select(context, request_spec) + if not build_plan: + raise driver.NoValidHost(_('No hosts were available')) + + for item in build_plan: + self._provision_resource(context, item, instance_id, request_spec, + kwargs) + + # Returning None short-circuits the routing to Compute (since + # we've already done it here) + return None + def select(self, context, request_spec, *args, **kwargs): """Select returns a list of weights and zone/host information corresponding to the best hosts to service the request. Any diff --git a/nova/tests/test_zone_aware_scheduler.py b/nova/tests/test_zone_aware_scheduler.py index 493eb294f..2ec0f2199 100644 --- a/nova/tests/test_zone_aware_scheduler.py +++ b/nova/tests/test_zone_aware_scheduler.py @@ -16,6 +16,7 @@ Tests For Zone Aware Scheduler. """ +from nova import exception from nova import test from nova.scheduler import driver from nova.scheduler import zone_aware_scheduler @@ -59,6 +60,41 @@ def fake_empty_call_zone_method(context, method, specs): return [] +# Hmm, I should probably be using mox for this. +was_called = False + + +def fake_provision_resource(context, item, instance_id, request_spec, kwargs): + global was_called + was_called = True + + +def fake_ask_child_zone_to_create_instance(context, zone_info, + request_spec, kwargs): + global was_called + was_called = True + + +def fake_provision_resource_locally(context, item, instance_id, kwargs): + global was_called + was_called = True + + +def fake_provision_resource_from_blob(context, item, instance_id, + request_spec, kwargs): + global was_called + was_called = True + + +def fake_decrypt_blob_returns_local_info(blob): + return {'foo': True} # values aren't important. + + +def fake_decrypt_blob_returns_child_info(blob): + return {'child_zone': True, + 'child_blob': True} # values aren't important. Keys are. + + def fake_call_zone_method(context, method, specs): return [ ('zone1', [ @@ -120,3 +156,110 @@ class ZoneAwareSchedulerTestCase(test.TestCase): fake_context, 1, dict(host_filter=None, request_spec={'instance_type': {}})) + + def test_schedule_do_not_schedule_with_hint(self): + """ + Check the local/child zone routing in the run_instance() call. + If the zone_blob hint was passed in, don't re-schedule. + """ + global was_called + sched = FakeZoneAwareScheduler() + was_called = False + self.stubs.Set(sched, '_provision_resource', fake_provision_resource) + request_spec = { + 'instance_properties': {}, + 'instance_type': {}, + 'filter_driver': 'nova.scheduler.host_filter.AllHostsFilter', + 'blob': "Non-None blob data" + } + + result = sched.schedule_run_instance(None, 1, request_spec) + self.assertEquals(None, result) + self.assertTrue(was_called) + + def test_provision_resource_local(self): + """Provision a resource locally or remotely.""" + global was_called + sched = FakeZoneAwareScheduler() + was_called = False + self.stubs.Set(sched, '_provision_resource_locally', + fake_provision_resource_locally) + + request_spec = {'hostname': "foo"} + sched._provision_resource(None, request_spec, 1, request_spec, {}) + self.assertTrue(was_called) + + def test_provision_resource_remote(self): + """Provision a resource locally or remotely.""" + global was_called + sched = FakeZoneAwareScheduler() + was_called = False + self.stubs.Set(sched, '_provision_resource_from_blob', + fake_provision_resource_from_blob) + + request_spec = {} + sched._provision_resource(None, request_spec, 1, request_spec, {}) + self.assertTrue(was_called) + + def test_provision_resource_from_blob_empty(self): + """Provision a resource locally or remotely given no hints.""" + global was_called + sched = FakeZoneAwareScheduler() + request_spec = {} + self.assertRaises(zone_aware_scheduler.InvalidBlob, + sched._provision_resource_from_blob, + None, {}, 1, {}, {}) + + def test_provision_resource_from_blob_with_local_blob(self): + """ + Provision a resource locally or remotely when blob hint passed in. + """ + global was_called + sched = FakeZoneAwareScheduler() + was_called = False + self.stubs.Set(sched, '_decrypt_blob', + fake_decrypt_blob_returns_local_info) + self.stubs.Set(sched, '_provision_resource_locally', + fake_provision_resource_locally) + + request_spec = {'blob': "Non-None blob data"} + + sched._provision_resource_from_blob(None, request_spec, 1, + request_spec, {}) + self.assertTrue(was_called) + + def test_provision_resource_from_blob_with_child_blob(self): + """ + Provision a resource locally or remotely when child blob hint + passed in. + """ + global was_called + sched = FakeZoneAwareScheduler() + self.stubs.Set(sched, '_decrypt_blob', + fake_decrypt_blob_returns_child_info) + was_called = False + self.stubs.Set(sched, '_ask_child_zone_to_create_instance', + fake_ask_child_zone_to_create_instance) + + request_spec = {'blob': "Non-None blob data"} + + sched._provision_resource_from_blob(None, request_spec, 1, + request_spec, {}) + self.assertTrue(was_called) + + def test_provision_resource_from_blob_with_immediate_child_blob(self): + """ + Provision a resource locally or remotely when blob hint passed in + from an immediate child. + """ + global was_called + sched = FakeZoneAwareScheduler() + was_called = False + self.stubs.Set(sched, '_ask_child_zone_to_create_instance', + fake_ask_child_zone_to_create_instance) + + request_spec = {'child_blob': True, 'child_zone': True} + + sched._provision_resource_from_blob(None, request_spec, 1, + request_spec, {}) + self.assertTrue(was_called) From fd3be8d37ea508c7243899f5a407ab209f20c93d Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Wed, 25 May 2011 13:20:34 -0700 Subject: [PATCH 063/164] starting breakdown of nova.compute.api.create() --- nova/scheduler/api.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nova/scheduler/api.py b/nova/scheduler/api.py index 09e7c9140..8123082f9 100644 --- a/nova/scheduler/api.py +++ b/nova/scheduler/api.py @@ -87,6 +87,13 @@ def select(context, specs=None): params={"request_spec": specs}) +def get_scheduler_rules(context): + """Returns a tuple of rules for how instances should + be created given the current Scheduler driver being used.""" + return _call_scheduler('get_scheduler_rules', context=context, + params={}) + + def update_service_capabilities(context, service_name, host, capabilities): """Send an update to all the scheduler services informing them of the capabilities of this service.""" From e71433569c2bc6e2949ab215e2fbaa2aa5a17e2e Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Wed, 25 May 2011 19:57:04 -0400 Subject: [PATCH 064/164] Renamed image_ref variables to image_href. Since the convention is that x_ref vars may imply that they are db objects. --- nova/exception.py | 2 +- nova/tests/test_cloud.py | 4 ++-- nova/tests/test_compute.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/nova/exception.py b/nova/exception.py index 13f5bf95c..5b91e1cde 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -284,7 +284,7 @@ class DiskNotFound(NotFound): class InvalidImageRef(Invalid): - message = _("Invalid image ref %(image_ref)s.") + message = _("Invalid image ref %(image_href)s.") class ImageNotFound(NotFound): diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 3aaca6831..1219d600e 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -302,7 +302,7 @@ class CloudTestCase(test.TestCase): def test_console_output(self): instance_type = FLAGS.default_instance_type max_count = 1 - kwargs = {'image_ref': 'ami-1', + kwargs = {'image_href': 'ami-1', 'instance_type': instance_type, 'max_count': max_count} rv = self.cloud.run_instances(self.context, **kwargs) @@ -318,7 +318,7 @@ class CloudTestCase(test.TestCase): greenthread.sleep(0.3) def test_ajax_console(self): - kwargs = {'image_ref': 'ami-1'} + kwargs = {'image_href': 'ami-1'} rv = self.cloud.run_instances(self.context, **kwargs) instance_id = rv['instancesSet'][0]['instanceId'] greenthread.sleep(0.3) diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index b02b99f66..b4097660f 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -150,7 +150,7 @@ class ComputeTestCase(test.TestCase): ref = self.compute_api.create( self.context, instance_type=instance_types.get_default_instance_type(), - image_ref=None, + image_href=None, security_group=['testgroup']) try: self.assertEqual(len(db.security_group_get_by_instance( @@ -168,7 +168,7 @@ class ComputeTestCase(test.TestCase): ref = self.compute_api.create( self.context, instance_type=instance_types.get_default_instance_type(), - image_ref=None, + image_href=None, security_group=['testgroup']) try: db.instance_destroy(self.context, ref[0]['id']) @@ -184,7 +184,7 @@ class ComputeTestCase(test.TestCase): ref = self.compute_api.create( self.context, instance_type=instance_types.get_default_instance_type(), - image_ref=None, + image_href=None, security_group=['testgroup']) try: From d389818b2233c23ae7f7f0bf7a886fe5950f8bb7 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Thu, 26 May 2011 11:21:28 -0400 Subject: [PATCH 065/164] Fix test_cloud tests. --- nova/tests/test_cloud.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 1219d600e..54c0454de 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -302,7 +302,7 @@ class CloudTestCase(test.TestCase): def test_console_output(self): instance_type = FLAGS.default_instance_type max_count = 1 - kwargs = {'image_href': 'ami-1', + kwargs = {'image_id': 'ami-1', 'instance_type': instance_type, 'max_count': max_count} rv = self.cloud.run_instances(self.context, **kwargs) @@ -318,7 +318,7 @@ class CloudTestCase(test.TestCase): greenthread.sleep(0.3) def test_ajax_console(self): - kwargs = {'image_href': 'ami-1'} + kwargs = {'image_id': 'ami-1'} rv = self.cloud.run_instances(self.context, **kwargs) instance_id = rv['instancesSet'][0]['instanceId'] greenthread.sleep(0.3) From 36354a1611ff9d8dcaa4cf9ddb6f4ffa25e717bd Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Thu, 26 May 2011 08:28:57 -0700 Subject: [PATCH 066/164] refactoring compute.api.create() --- nova/scheduler/driver.py | 7 +++++++ nova/scheduler/manager.py | 4 ++++ nova/scheduler/zone_aware_scheduler.py | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/nova/scheduler/driver.py b/nova/scheduler/driver.py index 2094e3565..237e31c04 100644 --- a/nova/scheduler/driver.py +++ b/nova/scheduler/driver.py @@ -72,6 +72,13 @@ class Scheduler(object): for service in services if self.service_is_up(service)] + def should_create_all_at_once(self, context=None, *args, **kwargs): + """ + Does this driver prefer single-shot requests or all-at-once? + By default, prefer single-shot. + """ + return False + def schedule(self, context, topic, *_args, **_kwargs): """Must override at least this method for scheduler to work.""" raise NotImplementedError(_("Must implement a fallback schedule")) diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py index a6fc53be5..a29703aaf 100644 --- a/nova/scheduler/manager.py +++ b/nova/scheduler/manager.py @@ -74,6 +74,10 @@ class SchedulerManager(manager.Manager): """Select a list of hosts best matching the provided specs.""" return self.driver.select(context, *args, **kwargs) + def get_scheduler_rules(self, context=None, *args, **kwargs): + """Ask the driver how requests should be made of it.""" + return self.driver.get_scheduler_rules(context, *args, **kwargs) + def _schedule(self, method, context, topic, *args, **kwargs): """Tries to call schedule_* method on the driver to retrieve host. diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 58a9eca55..35ffdbde1 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -157,6 +157,12 @@ class ZoneAwareScheduler(driver.Scheduler): self._provision_resource_from_blob(context, item, instance_id, request_spec, kwargs) + def should_create_all_at_once(self, context=None, *args, **kwargs): + """ + This driver prefers all-at-once requests. + """ + return True + def schedule_run_instance(self, context, instance_id, request_spec, *args, **kwargs): """This method is called from nova.compute.api to provision From 9597a9034902fb3a8e9bd13df4ff3ec4cccb3921 Mon Sep 17 00:00:00 2001 From: John Tran Date: Thu, 26 May 2011 10:22:45 -0700 Subject: [PATCH 067/164] instance obj returned is not a hash, instead is sqlalchemy obj and hostname attr is what the logic is looking for --- bin/nova-manage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/nova-manage b/bin/nova-manage index 26c0d776c..51373d282 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -536,7 +536,7 @@ class FloatingIpCommands(object): for floating_ip in floating_ips: instance = None if floating_ip['fixed_ip']: - instance = floating_ip['fixed_ip']['instance']['ec2_id'] + instance = floating_ip['fixed_ip']['instance'].hostname print "%s\t%s\t%s" % (floating_ip['host'], floating_ip['address'], instance) From d76cf4a7f83b41f2758d9cd6b8a4448d888eadeb Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Thu, 26 May 2011 10:53:48 -0700 Subject: [PATCH 068/164] missed a driver reference --- nova/scheduler/host_filter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index d9771754a..ed76c90bf 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -296,13 +296,13 @@ class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): hosts for weighing. The particular filter used may be passed in as an argument or the default will be used. - request_spec = {'filter_name': , + request_spec = {'filter': , 'instance_type': } """ def filter_hosts(self, num, request_spec): """Filter the full host list (from the ZoneManager)""" - filter_name = request_spec.get('filter_name', None) + filter_name = request_spec.get('filter', None) host_filter = choose_host_filter(filter_name) # TODO(sandy): We're only using InstanceType-based specs From e23249e7744e3f1612284c4a7594e01231b8a190 Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Thu, 26 May 2011 14:09:59 -0400 Subject: [PATCH 069/164] review fixups --- nova/wsgi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/wsgi.py b/nova/wsgi.py index d59d2ee13..33ba852bc 100644 --- a/nova/wsgi.py +++ b/nova/wsgi.py @@ -260,8 +260,8 @@ class Router(object): Each route in `mapper` must specify a 'controller', which is a WSGI app to call. You'll probably want to specify an 'action' as - well and have your controller be a controller, who will route - the request to the action method. + well and have your controller be an object that can route + the request to the action-specific method. Examples: mapper = routes.Mapper() From 414d47e6122c78a17458dabd65933b6e63383d96 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Thu, 26 May 2011 11:34:53 -0700 Subject: [PATCH 070/164] tests pass and pep8'ed --- nova/scheduler/api.py | 4 ++-- nova/scheduler/host_filter.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nova/scheduler/api.py b/nova/scheduler/api.py index 8123082f9..de0660713 100644 --- a/nova/scheduler/api.py +++ b/nova/scheduler/api.py @@ -87,10 +87,10 @@ def select(context, specs=None): params={"request_spec": specs}) -def get_scheduler_rules(context): +def should_create_all_at_once(context): """Returns a tuple of rules for how instances should be created given the current Scheduler driver being used.""" - return _call_scheduler('get_scheduler_rules', context=context, + return _call_scheduler('should_create_all_at_once', context=context, params={}) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index d9771754a..ed76c90bf 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -296,13 +296,13 @@ class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): hosts for weighing. The particular filter used may be passed in as an argument or the default will be used. - request_spec = {'filter_name': , + request_spec = {'filter': , 'instance_type': } """ def filter_hosts(self, num, request_spec): """Filter the full host list (from the ZoneManager)""" - filter_name = request_spec.get('filter_name', None) + filter_name = request_spec.get('filter', None) host_filter = choose_host_filter(filter_name) # TODO(sandy): We're only using InstanceType-based specs From 0feea34693f3e5a22d2290453cbcc57c8da84d08 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Thu, 26 May 2011 18:14:38 -0400 Subject: [PATCH 071/164] Rename instances.image_id to instances.image_ref. --- nova/tests/test_cloud.py | 6 +++--- nova/tests/test_compute.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 54c0454de..eefab58d0 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -191,10 +191,10 @@ class CloudTestCase(test.TestCase): def test_describe_instances(self): """Makes sure describe_instances works and filters results.""" inst1 = db.instance_create(self.context, {'reservation_id': 'a', - 'image_id': 1, + 'image_ref': 1, 'host': 'host1'}) inst2 = db.instance_create(self.context, {'reservation_id': 'a', - 'image_id': 1, + 'image_ref': 1, 'host': 'host2'}) comp1 = db.service_create(self.context, {'host': 'host1', 'availability_zone': 'zone1', @@ -390,7 +390,7 @@ class CloudTestCase(test.TestCase): def test_terminate_instances(self): inst1 = db.instance_create(self.context, {'reservation_id': 'a', - 'image_id': 1, + 'image_ref': 1, 'host': 'host1'}) terminate_instances = self.cloud.terminate_instances # valid instance_id diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index b4097660f..25454087d 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -84,7 +84,7 @@ class ComputeTestCase(test.TestCase): def _create_instance(self, params={}): """Create a test instance""" inst = {} - inst['image_id'] = 1 + inst['image_ref'] = 1 inst['reservation_id'] = 'r-fakeres' inst['launch_time'] = '10' inst['user_id'] = self.user.id From 64ca9ffbe9d223a508b512a28b1a1d45671e3113 Mon Sep 17 00:00:00 2001 From: MORITA Kazutaka Date: Fri, 27 May 2011 13:36:59 +0900 Subject: [PATCH 072/164] Fix pep8 violations. --- nova/tests/test_volume.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/tests/test_volume.py b/nova/tests/test_volume.py index c66b66959..3472b1f59 100644 --- a/nova/tests/test_volume.py +++ b/nova/tests/test_volume.py @@ -193,8 +193,9 @@ class VolumeTestCase(test.TestCase): self.volume.create_volume(self.context, volume_id) snapshot_id = self._create_snapshot(volume_id) self.volume.create_snapshot(self.context, volume_id, snapshot_id) - self.assertEqual(snapshot_id, db.snapshot_get(context.get_admin_context(), - snapshot_id).id) + self.assertEqual(snapshot_id, + db.snapshot_get(context.get_admin_context(), + snapshot_id).id) self.volume.delete_snapshot(self.context, snapshot_id) self.assertRaises(exception.NotFound, From 143bc24a8def1a67fc7c1fe0e9bf8ee6b571ba32 Mon Sep 17 00:00:00 2001 From: MORITA Kazutaka Date: Fri, 27 May 2011 14:13:17 +0900 Subject: [PATCH 073/164] Fix pep8 errors. --- nova/tests/test_volume.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/nova/tests/test_volume.py b/nova/tests/test_volume.py index 8d58b3135..4f10ee6af 100644 --- a/nova/tests/test_volume.py +++ b/nova/tests/test_volume.py @@ -78,10 +78,12 @@ class VolumeTestCase(test.TestCase): self.volume.create_snapshot(self.context, volume_src_id, snapshot_id) volume_dst_id = self._create_volume(0, snapshot_id) self.volume.create_volume(self.context, volume_dst_id, snapshot_id) - self.assertEqual(volume_dst_id, db.volume_get(context.get_admin_context(), - volume_dst_id).id) - self.assertEqual(snapshot_id, db.volume_get(context.get_admin_context(), - volume_dst_id).snapshot_id) + self.assertEqual(volume_dst_id, db.volume_get( + context.get_admin_context(), + volume_dst_id).id) + self.assertEqual(snapshot_id, db.volume_get( + context.get_admin_context(), + volume_dst_id).snapshot_id) self.volume.delete_volume(self.context, volume_dst_id) self.volume.delete_snapshot(self.context, snapshot_id) From f110be6873b8a39dbaa960099c5e32825d3e94f9 Mon Sep 17 00:00:00 2001 From: Chris Behrens Date: Fri, 27 May 2011 06:56:50 +0000 Subject: [PATCH 074/164] fix calls to openssl properly now. Only append \n to stdin when decoding. Updated the test slightly, also. --- nova/tests/test_xenapi.py | 1 + 1 file changed, 1 insertion(+) diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py index 18a267896..3ba37a762 100644 --- a/nova/tests/test_xenapi.py +++ b/nova/tests/test_xenapi.py @@ -595,6 +595,7 @@ class XenAPIDiffieHellmanTestCase(test.TestCase): def test_encryption(self): msg = "This is a top-secret message" enc = self.alice.encrypt(msg) + self.assertFalse(enc.endswith('\n')) dec = self.bob.decrypt(enc) self.assertEquals(dec, msg) From df25f9f46502ac00427c2cba8862c3ef2ea43686 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Fri, 27 May 2011 05:01:42 -0700 Subject: [PATCH 075/164] fixed docstrings and general tidying --- nova/scheduler/host_filter.py | 41 ++++++++++++++++---------- nova/scheduler/zone_aware_scheduler.py | 33 +++++++++++++-------- 2 files changed, 47 insertions(+), 27 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index ed76c90bf..89faace45 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -69,9 +69,11 @@ class HostFilter(object): class AllHostsFilter(HostFilter): - """NOP host filter. Returns all hosts in ZoneManager. + """ + NOP host filter. Returns all hosts in ZoneManager. This essentially does what the old Scheduler+Chance used - to give us.""" + to give us. + """ def instance_type_to_filter(self, instance_type): """Return anything to prevent base-class from raising @@ -133,8 +135,10 @@ class InstanceTypeFilter(HostFilter): class JsonFilter(HostFilter): - """Host Filter to allow simple JSON-based grammar for - selecting hosts.""" + """ + Host Filter to allow simple JSON-based grammar for + selecting hosts. + """ def _equals(self, args): """First term is == all the other terms.""" @@ -229,8 +233,10 @@ class JsonFilter(HostFilter): return (self._full_name(), json.dumps(query)) def _parse_string(self, string, host, services): - """Strings prefixed with $ are capability lookups in the - form '$service.capability[.subcap*]'""" + """ + Strings prefixed with $ are capability lookups in the + form '$service.capability[.subcap*]' + """ if not string: return None if string[0] != '$': @@ -277,22 +283,25 @@ FILTERS = [AllHostsFilter, InstanceTypeFilter, JsonFilter] def choose_host_filter(filter_name=None): - """Since the caller may specify which filter to use we need - to have an authoritative list of what is permissible. This - function checks the filter name against a predefined set - of acceptable filters.""" + """ + Since the caller may specify which filter to use we need + to have an authoritative list of what is permissible. This + function checks the filter name against a predefined set + of acceptable filters. + """ if not filter_name: filter_name = FLAGS.default_host_filter for filter_class in FILTERS: - if "%s.%s" % (filter_class.__module__, filter_class.__name__) == \ - filter_name: + host_match = "%s.%s" % (filter_class.__module__, filter_class.__name__) + if host_match == filter_name: return filter_class() raise exception.SchedulerHostFilterNotFound(filter_name=filter_name) class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): - """The HostFilterScheduler uses the HostFilter to filter + """ + The HostFilterScheduler uses the HostFilter to filter hosts for weighing. The particular filter used may be passed in as an argument or the default will be used. @@ -313,6 +322,8 @@ class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): return host_filter.filter_hosts(self.zone_manager, query) def weigh_hosts(self, num, request_spec, hosts): - """Derived classes must override this method and return - a lists of hosts in [{weight, hostname}] format.""" + """ + Derived classes must override this method and return + a lists of hosts in [{weight, hostname}] format. + """ return [dict(weight=1, hostname=host) for host, caps in hosts] diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index dc18fc427..236907626 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -40,13 +40,15 @@ class ZoneAwareScheduler(driver.Scheduler): def schedule_run_instance(self, context, instance_id, request_spec, *args, **kwargs): - """This method is called from nova.compute.api to provision + """ + This method is called from nova.compute.api to provision an instance. However we need to look at the parameters being passed in to see if this is a request to: 1. Create a Build Plan and then provision, or 2. Use the Build Plan information in the request parameters to simply create the instance (either in this zone or - a child zone).""" + a child zone). + """ # TODO(sandy): We'll have to look for richer specs at some point. @@ -79,15 +81,16 @@ class ZoneAwareScheduler(driver.Scheduler): % locals()) else: # TODO(sandy) Provision in child zone ... - LOG.warning(_("Provision to Child Zone not supported (yet)") - % locals()) + LOG.warning(_("Provision to Child Zone not supported (yet)")) pass def select(self, context, request_spec, *args, **kwargs): - """Select returns a list of weights and zone/host information + """ + Select returns a list of weights and zone/host information corresponding to the best hosts to service the request. Any child zone information has been encrypted so as not to reveal - anything about the children.""" + anything about the children. + """ return self._schedule(context, "compute", request_spec, *args, **kwargs) @@ -95,13 +98,15 @@ class ZoneAwareScheduler(driver.Scheduler): # so we don't implement the default "schedule()" method required # of Schedulers. def schedule(self, context, topic, request_spec, *args, **kwargs): - """The schedule() contract requires we return the one + """ + The schedule() contract requires we return the one best-suited host for this request. """ raise driver.NoValidHost(_('No hosts were available')) def _schedule(self, context, topic, request_spec, *args, **kwargs): - """Returns a list of hosts that meet the required specs, + """ + Returns a list of hosts that meet the required specs, ordered by their fitness. """ @@ -137,11 +142,15 @@ class ZoneAwareScheduler(driver.Scheduler): return weighted def filter_hosts(self, num, request_spec): - """Derived classes must override this method and return - a list of hosts in [(hostname, capability_dict)] format.""" + """ + Derived classes must override this method and return + a list of hosts in [(hostname, capability_dict)] format. + """ raise NotImplemented() def weigh_hosts(self, num, request_spec, hosts): - """Derived classes must override this method and return - a lists of hosts in [{weight, hostname}] format.""" + """ + Derived classes must override this method and return + a lists of hosts in [{weight, hostname}] format. + """ raise NotImplemented() From a39d3f69e826fc8892e1d352c1a03afc14d7938c Mon Sep 17 00:00:00 2001 From: Mark Washenberger Date: Fri, 27 May 2011 10:15:33 -0400 Subject: [PATCH 076/164] fix encryption handling of newlines again and restructure the code a bit --- nova/tests/test_xenapi.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py index 3ba37a762..0632d05a5 100644 --- a/nova/tests/test_xenapi.py +++ b/nova/tests/test_xenapi.py @@ -592,12 +592,26 @@ class XenAPIDiffieHellmanTestCase(test.TestCase): bob_shared = self.bob.compute_shared(alice_pub) self.assertEquals(alice_shared, bob_shared) - def test_encryption(self): - msg = "This is a top-secret message" - enc = self.alice.encrypt(msg) + def _test_encryption(self, message): + enc = self.alice.encrypt(message) self.assertFalse(enc.endswith('\n')) dec = self.bob.decrypt(enc) - self.assertEquals(dec, msg) + self.assertEquals(dec, message) + + def test_encrypt_simple_message(self): + self._test_encryption('This is a simple message.') + + def test_encrypt_message_with_newlines_at_end(self): + self._test_encryption('This message has a newline at the end.\n') + + def test_encrypt_many_newlines_at_end(self): + self._test_encryption('Message with lotsa newlines.\n\n\n') + + def test_encrypt_newlines_inside_message(self): + self._test_encryption('Message\nwith\ninterior\nnewlines.') + + def test_encrypt_with_leading_newlines(self): + self._test_encryption('\n\nMessage with leading newlines.') def tearDown(self): super(XenAPIDiffieHellmanTestCase, self).tearDown() From 8c90e0c1178b4850117a00d6e9986a7da60cc202 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Fri, 27 May 2011 07:24:02 -0700 Subject: [PATCH 077/164] docstrings again and import ordering --- nova/scheduler/host_filter.py | 18 ++++++------------ nova/scheduler/zone_aware_scheduler.py | 20 +++++++------------- 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 89faace45..4260cbf42 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -69,8 +69,7 @@ class HostFilter(object): class AllHostsFilter(HostFilter): - """ - NOP host filter. Returns all hosts in ZoneManager. + """ NOP host filter. Returns all hosts in ZoneManager. This essentially does what the old Scheduler+Chance used to give us. """ @@ -135,8 +134,7 @@ class InstanceTypeFilter(HostFilter): class JsonFilter(HostFilter): - """ - Host Filter to allow simple JSON-based grammar for + """Host Filter to allow simple JSON-based grammar for selecting hosts. """ @@ -233,8 +231,7 @@ class JsonFilter(HostFilter): return (self._full_name(), json.dumps(query)) def _parse_string(self, string, host, services): - """ - Strings prefixed with $ are capability lookups in the + """Strings prefixed with $ are capability lookups in the form '$service.capability[.subcap*]' """ if not string: @@ -283,8 +280,7 @@ FILTERS = [AllHostsFilter, InstanceTypeFilter, JsonFilter] def choose_host_filter(filter_name=None): - """ - Since the caller may specify which filter to use we need + """Since the caller may specify which filter to use we need to have an authoritative list of what is permissible. This function checks the filter name against a predefined set of acceptable filters. @@ -300,8 +296,7 @@ def choose_host_filter(filter_name=None): class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): - """ - The HostFilterScheduler uses the HostFilter to filter + """The HostFilterScheduler uses the HostFilter to filter hosts for weighing. The particular filter used may be passed in as an argument or the default will be used. @@ -322,8 +317,7 @@ class HostFilterScheduler(zone_aware_scheduler.ZoneAwareScheduler): return host_filter.filter_hosts(self.zone_manager, query) def weigh_hosts(self, num, request_spec, hosts): - """ - Derived classes must override this method and return + """Derived classes must override this method and return a lists of hosts in [{weight, hostname}] format. """ return [dict(weight=1, hostname=host) for host, caps in hosts] diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 236907626..bc67c7794 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -23,8 +23,8 @@ across zones. There are two expansion points to this class for: import operator from nova import db -from nova import rpc from nova import log as logging +from nova import rpc from nova.scheduler import api from nova.scheduler import driver @@ -40,8 +40,7 @@ class ZoneAwareScheduler(driver.Scheduler): def schedule_run_instance(self, context, instance_id, request_spec, *args, **kwargs): - """ - This method is called from nova.compute.api to provision + """This method is called from nova.compute.api to provision an instance. However we need to look at the parameters being passed in to see if this is a request to: 1. Create a Build Plan and then provision, or @@ -85,8 +84,7 @@ class ZoneAwareScheduler(driver.Scheduler): pass def select(self, context, request_spec, *args, **kwargs): - """ - Select returns a list of weights and zone/host information + """Select returns a list of weights and zone/host information corresponding to the best hosts to service the request. Any child zone information has been encrypted so as not to reveal anything about the children. @@ -98,15 +96,13 @@ class ZoneAwareScheduler(driver.Scheduler): # so we don't implement the default "schedule()" method required # of Schedulers. def schedule(self, context, topic, request_spec, *args, **kwargs): - """ - The schedule() contract requires we return the one + """The schedule() contract requires we return the one best-suited host for this request. """ raise driver.NoValidHost(_('No hosts were available')) def _schedule(self, context, topic, request_spec, *args, **kwargs): - """ - Returns a list of hosts that meet the required specs, + """Returns a list of hosts that meet the required specs, ordered by their fitness. """ @@ -142,15 +138,13 @@ class ZoneAwareScheduler(driver.Scheduler): return weighted def filter_hosts(self, num, request_spec): - """ - Derived classes must override this method and return + """Derived classes must override this method and return a list of hosts in [(hostname, capability_dict)] format. """ raise NotImplemented() def weigh_hosts(self, num, request_spec, hosts): - """ - Derived classes must override this method and return + """Derived classes must override this method and return a lists of hosts in [{weight, hostname}] format. """ raise NotImplemented() From cb9e6d4f9a727d608ebd9fe30379d20c6bcaf81c Mon Sep 17 00:00:00 2001 From: "Dave Walker (Daviey)" Date: Fri, 27 May 2011 15:28:10 +0100 Subject: [PATCH 078/164] nova/auth/novarc.template: Changed NOVA_KEY_DIR to allow symlink support --- nova/auth/novarc.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/auth/novarc.template b/nova/auth/novarc.template index cda2ecc28..8170fcafe 100644 --- a/nova/auth/novarc.template +++ b/nova/auth/novarc.template @@ -1,4 +1,4 @@ -NOVA_KEY_DIR=$(pushd $(dirname $BASH_SOURCE)>/dev/null; pwd; popd>/dev/null) +NOVA_KEY_DIR=$(dirname $(readlink -f ${BASH_SOURCE})) export EC2_ACCESS_KEY="%(access)s:%(project)s" export EC2_SECRET_KEY="%(secret)s" export EC2_URL="%(ec2)s" From dc3bea9159cd8b0d69f90837fd168576db163589 Mon Sep 17 00:00:00 2001 From: Mark Washenberger Date: Fri, 27 May 2011 10:40:50 -0400 Subject: [PATCH 079/164] prevent encryption from adding newlines on long messages --- nova/tests/test_xenapi.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py index 0632d05a5..fe37f0ebe 100644 --- a/nova/tests/test_xenapi.py +++ b/nova/tests/test_xenapi.py @@ -594,6 +594,7 @@ class XenAPIDiffieHellmanTestCase(test.TestCase): def _test_encryption(self, message): enc = self.alice.encrypt(message) + print enc self.assertFalse(enc.endswith('\n')) dec = self.bob.decrypt(enc) self.assertEquals(dec, message) @@ -613,6 +614,9 @@ class XenAPIDiffieHellmanTestCase(test.TestCase): def test_encrypt_with_leading_newlines(self): self._test_encryption('\n\nMessage with leading newlines.') + def test_encrypt_really_long_message(self): + self._test_encryption(''.join(['abcd' for i in xrange(1024)])) + def tearDown(self): super(XenAPIDiffieHellmanTestCase, self).tearDown() From 2de0ab049d479b46d919f3647afb4cf92e82e12c Mon Sep 17 00:00:00 2001 From: Mark Washenberger Date: Fri, 27 May 2011 10:41:12 -0400 Subject: [PATCH 080/164] remove errant print statement --- nova/tests/test_xenapi.py | 1 - 1 file changed, 1 deletion(-) diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py index fe37f0ebe..9d56c1644 100644 --- a/nova/tests/test_xenapi.py +++ b/nova/tests/test_xenapi.py @@ -594,7 +594,6 @@ class XenAPIDiffieHellmanTestCase(test.TestCase): def _test_encryption(self, message): enc = self.alice.encrypt(message) - print enc self.assertFalse(enc.endswith('\n')) dec = self.bob.decrypt(enc) self.assertEquals(dec, message) From 94c64c4f02ec6cc470c5f5cc5b5ecf12cb4adf80 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Fri, 27 May 2011 15:48:40 -0400 Subject: [PATCH 081/164] Glance client updates for xenapi and vmware API to work with image refs. --- nova/tests/test_vmwareapi.py | 5 ++--- nova/tests/test_xenapi.py | 29 +++++++++++++---------------- nova/tests/vmwareapi/db_fakes.py | 2 +- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/nova/tests/test_vmwareapi.py b/nova/tests/test_vmwareapi.py index 22b66010a..e5ebd1600 100644 --- a/nova/tests/test_vmwareapi.py +++ b/nova/tests/test_vmwareapi.py @@ -55,8 +55,7 @@ class VMWareAPIVMTestCase(test.TestCase): vmwareapi_fake.reset() db_fakes.stub_out_db_instance_api(self.stubs) stubs.set_stubs(self.stubs) - glance_stubs.stubout_glance_client(self.stubs, - glance_stubs.FakeGlance) + glance_stubs.stubout_glance_client(self.stubs) self.conn = vmwareapi_conn.get_connection(False) def _create_instance_in_the_db(self): @@ -64,7 +63,7 @@ class VMWareAPIVMTestCase(test.TestCase): 'id': 1, 'project_id': self.project.id, 'user_id': self.user.id, - 'image_id': "1", + 'image_ref': "1", 'kernel_id': "1", 'ramdisk_id': "1", 'instance_type': 'm1.large', diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py index 18a267896..56e1e47af 100644 --- a/nova/tests/test_xenapi.py +++ b/nova/tests/test_xenapi.py @@ -79,7 +79,7 @@ class XenAPIVolumeTestCase(test.TestCase): self.values = {'id': 1, 'project_id': 'fake', 'user_id': 'fake', - 'image_id': 1, + 'image_ref': 1, 'kernel_id': 2, 'ramdisk_id': 3, 'instance_type_id': '3', # m1.large @@ -193,8 +193,7 @@ class XenAPIVMTestCase(test.TestCase): stubs.stubout_is_vdi_pv(self.stubs) self.stubs.Set(VMOps, 'reset_network', reset_network) stubs.stub_out_vm_methods(self.stubs) - glance_stubs.stubout_glance_client(self.stubs, - glance_stubs.FakeGlance) + glance_stubs.stubout_glance_client(self.stubs) fake_utils.stub_out_utils_execute(self.stubs) self.context = context.RequestContext('fake', 'fake', False) self.conn = xenapi_conn.get_connection(False) @@ -207,7 +206,7 @@ class XenAPIVMTestCase(test.TestCase): 'id': id, 'project_id': proj, 'user_id': user, - 'image_id': 1, + 'image_ref': 1, 'kernel_id': 2, 'ramdisk_id': 3, 'instance_type_id': '3', # m1.large @@ -351,14 +350,14 @@ class XenAPIVMTestCase(test.TestCase): self.assertEquals(self.vm['HVM_boot_params'], {}) self.assertEquals(self.vm['HVM_boot_policy'], '') - def _test_spawn(self, image_id, kernel_id, ramdisk_id, + def _test_spawn(self, image_ref, kernel_id, ramdisk_id, instance_type_id="3", os_type="linux", instance_id=1, check_injection=False): stubs.stubout_loopingcall_start(self.stubs) values = {'id': instance_id, 'project_id': self.project.id, 'user_id': self.user.id, - 'image_id': image_id, + 'image_ref': image_ref, 'kernel_id': kernel_id, 'ramdisk_id': ramdisk_id, 'instance_type_id': instance_type_id, @@ -567,7 +566,7 @@ class XenAPIVMTestCase(test.TestCase): 'id': 1, 'project_id': self.project.id, 'user_id': self.user.id, - 'image_id': 1, + 'image_ref': 1, 'kernel_id': 2, 'ramdisk_id': 3, 'instance_type_id': '3', # m1.large @@ -623,7 +622,7 @@ class XenAPIMigrateInstance(test.TestCase): self.values = {'id': 1, 'project_id': self.project.id, 'user_id': self.user.id, - 'image_id': 1, + 'image_ref': 1, 'kernel_id': None, 'ramdisk_id': None, 'local_gb': 5, @@ -634,8 +633,7 @@ class XenAPIMigrateInstance(test.TestCase): fake_utils.stub_out_utils_execute(self.stubs) stubs.stub_out_migration_methods(self.stubs) stubs.stubout_get_this_vm_uuid(self.stubs) - glance_stubs.stubout_glance_client(self.stubs, - glance_stubs.FakeGlance) + glance_stubs.stubout_glance_client(self.stubs) def tearDown(self): super(XenAPIMigrateInstance, self).tearDown() @@ -661,8 +659,7 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase): """Unit tests for code that detects the ImageType.""" def setUp(self): super(XenAPIDetermineDiskImageTestCase, self).setUp() - glance_stubs.stubout_glance_client(self.stubs, - glance_stubs.FakeGlance) + glance_stubs.stubout_glance_client(self.stubs) class FakeInstance(object): pass @@ -679,7 +676,7 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase): def test_instance_disk(self): """If a kernel is specified, the image type is DISK (aka machine).""" FLAGS.xenapi_image_service = 'objectstore' - self.fake_instance.image_id = glance_stubs.FakeGlance.IMAGE_MACHINE + self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_MACHINE self.fake_instance.kernel_id = glance_stubs.FakeGlance.IMAGE_KERNEL self.assert_disk_type(vm_utils.ImageType.DISK) @@ -689,7 +686,7 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase): DISK_RAW is assumed. """ FLAGS.xenapi_image_service = 'objectstore' - self.fake_instance.image_id = glance_stubs.FakeGlance.IMAGE_RAW + self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_RAW self.fake_instance.kernel_id = None self.assert_disk_type(vm_utils.ImageType.DISK_RAW) @@ -699,7 +696,7 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase): this case will be 'raw'. """ FLAGS.xenapi_image_service = 'glance' - self.fake_instance.image_id = glance_stubs.FakeGlance.IMAGE_RAW + self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_RAW self.fake_instance.kernel_id = None self.assert_disk_type(vm_utils.ImageType.DISK_RAW) @@ -709,7 +706,7 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase): this case will be 'vhd'. """ FLAGS.xenapi_image_service = 'glance' - self.fake_instance.image_id = glance_stubs.FakeGlance.IMAGE_VHD + self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_VHD self.fake_instance.kernel_id = None self.assert_disk_type(vm_utils.ImageType.DISK_VHD) diff --git a/nova/tests/vmwareapi/db_fakes.py b/nova/tests/vmwareapi/db_fakes.py index 0addd5573..764de42d8 100644 --- a/nova/tests/vmwareapi/db_fakes.py +++ b/nova/tests/vmwareapi/db_fakes.py @@ -61,7 +61,7 @@ def stub_out_db_instance_api(stubs): 'name': values['name'], 'id': values['id'], 'reservation_id': utils.generate_uid('r'), - 'image_id': values['image_id'], + 'image_ref': values['image_ref'], 'kernel_id': values['kernel_id'], 'ramdisk_id': values['ramdisk_id'], 'state_description': 'scheduling', From c3bc6de5231b3975034329e50c5c7666b1acc2cc Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Sat, 28 May 2011 21:10:57 -0400 Subject: [PATCH 083/164] Cleanup instances_path in test_libvirt test_spawn_with_network_info test. --- nova/tests/test_libvirt.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index 4efdd6ae9..1fac4e4e6 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -18,6 +18,7 @@ import eventlet import mox import os import re +import shutil import sys from xml.etree.ElementTree import fromstring as xml_to_tree @@ -645,6 +646,8 @@ class LibvirtConnTestCase(test.TestCase): except Exception, e: count = (0 <= str(e.message).find('Unexpected method call')) + shutil.rmtree(os.path.join(FLAGS.instances_path, instance.name)) + self.assertTrue(count) def test_get_host_ip_addr(self): From 6933e2494ad9210c16c47434c3b0895734a974cc Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Sun, 29 May 2011 18:01:46 -0700 Subject: [PATCH 084/164] starting --- doc/source/devref/distributed_scheduler.rst | 164 ++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 doc/source/devref/distributed_scheduler.rst diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/distributed_scheduler.rst new file mode 100644 index 000000000..75a4d57ce --- /dev/null +++ b/doc/source/devref/distributed_scheduler.rst @@ -0,0 +1,164 @@ +.. + Copyright 2011 OpenStack LLC + All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + +Distributed Scheduler +===== + +The Scheduler is akin to a Dating Service. Requests for the creation of new instances come in and Compute nodes are selected for where the work should be performed. In a small deployment we may be happy with the currently available Change Scheduler which randomly selects a Host from the available pool. Or if you need something a little more fancy you may want to use the Availability Zone Scheduler, which selects Compute hosts from a logical partitioning of available hosts (within a single Zone). + +But for larger deployments a more complex scheduling algorithm is required. Additionally, if you are using Zones in your Nova setup, you'll need a scheduler that understand how to pass instance requests from Zone to Zone. + +This is the purpose of the Distributed Scheduler (DS). The DS utilizes the Capabilities of a Zone and its component services to make informed decisions on where a new instance should be created. When making this decision it consults not only all the Compute nodes in the current Zone, but the Compute nodes in each Child Zone. This continues recursively until the ideal host is found. + +So, how does this all work? + +This document will explain the strategy employed by the ZoneAwareScheduler and its derivations. + +Costs & Weights +---------- +When deciding where to place an Instance, we compare a Weighted Cost for each Host. The Weighting, currently, is just the sum of each Cost. Costs are nothing more than integers from `0 - max_int`. Costs are computed by looking at the various Capabilities of the Host relative to the specs of the Instance being asked for. Trying to put an Instance with 8G of RAM on a Host that only has 4G remaining would have a very high cost. But putting a 512m RAM instance on an empty Host should have a low cost. + +Some Costs are more esoteric. Consider a rule that says we should prefer Hosts that don't already have an instance on it that is owned by the user requesting it (to mitigate against machine failures). Here we have to look at all the other Instances on the host to compute our cost. + +An example of some other costs might include selecting: +* a GPU-based host over a standard CPU +* a host with fast ethernet over a 10mbps line +* a host than can run Windows instances +* a host in the EU vs North America +* etc + +This Weight is computed for each Instance requested. If the customer asked for 1000 instances, the consumed resources on each Host are "virtually" depleted so the Cost can change accordingly. + +nova.scheduler.zone_aware_scheduler.ZoneAwareScheduler +----------- +As we explained in the Zones documentation, each Scheduler has a `ZoneManager` object that collects "Capabilities" about Child Zones and each of the Services running in the current Zone. The `ZoneAwareScheduler` uses this information to make its decisions. + +Here is how it works: + +1. The Compute nodes are Filtered and the remaining set are Weighted. +1a. Filtering the hosts is a simple matter of ensuring the Compute node has ample resources (CPU, RAM, DISK, etc) to fulfil the request. +1b. Weighing of the remaining Compute nodes is performed +2. The same request is sent to each Child Zone and step #1 is done there too. The resulting Weighted List is returned to the parent. +3. The Parent Zone sorts and aggregates all the Weights and a final Build Plan is constructed. +4. The Build Plan is executed upon. Concurrently, Instance Create requests are sent to each of the selected Hosts, be they local or in a child zone. Child Zones may forward the requests to their Child Zones as needed. + +Filtering and Weighing +------------ +Filtering (excluding Compute nodes incapable of fulfilling the request) and Weighing (computing the relative "fitness" of a Compute node to fulfill the request) are very subjective operations. + + + + + + +- +Routing between Zones is based on the Capabilities of that Zone. Capabilities are nothing more than key/value pairs. Values are multi-value, with each value separated with a semicolon (`;`). When expressed as a string they take the form: + +:: + + key=value;value;value, key=value;value;value + +Zones have Capabilities which are general to the Zone and are set via `--zone_capabilities` flag. Zones also have dynamic per-service Capabilities. Services derived from `nova.manager.SchedulerDependentManager` (such as Compute, Volume and Network) can set these capabilities by calling the `update_service_capabilities()` method on their `Manager` base class. These capabilities will be periodically sent to the Scheduler service automatically. The rate at which these updates are sent is controlled by the `--periodic_interval` flag. + +Flow within a Zone +------------------ +The brunt of the work within a Zone is done in the Scheduler Service. The Scheduler is responsible for: +- collecting capability messages from the Compute, Volume and Network nodes, +- polling the child Zones for their status and +- providing data to the Distributed Scheduler for performing load balancing calculations + +Inter-service communication within a Zone is done with RabbitMQ. Each class of Service (Compute, Volume and Network) has both a named message exchange (particular to that host) and a general message exchange (particular to that class of service). Messages sent to these exchanges are picked off in round-robin fashion. Zones introduce a new fan-out exchange per service. Messages sent to the fan-out exchange are picked up by all services of a particular class. This fan-out exchange is used by the Scheduler services to receive capability messages from the Compute, Volume and Network nodes. + +These capability messages are received by the Scheduler services and stored in the `ZoneManager` object. The SchedulerManager object has a reference to the `ZoneManager` it can use for load balancing. + +The `ZoneManager` also polls the child Zones periodically to gather their capabilities to aid in decision making. This is done via the OpenStack API `/v1.0/zones/info` REST call. This also captures the name of each child Zone. The Zone name is set via the `--zone_name` flag (and defaults to "nova"). + +Zone administrative functions +----------------------------- +Zone administrative operations are usually done using python-novaclient_ + +.. _python-novaclient: https://github.com/rackspace/python-novaclient + +In order to use the Zone operations, be sure to enable administrator operations in OpenStack API by setting the `--allow_admin_api=true` flag. + +Finally you need to enable Zone Forwarding. This will be used by the Distributed Scheduler initiative currently underway. Set `--enable_zone_routing=true` to enable this feature. + +Find out about this Zone +------------------------ +In any Zone you can find the Zone's name and capabilities with the ``nova zone-info`` command. + +:: + + alice@novadev:~$ nova zone-info + +-----------------+---------------+ + | Property | Value | + +-----------------+---------------+ + | compute_cpu | 0.7,0.7 | + | compute_disk | 123000,123000 | + | compute_network | 800,800 | + | hypervisor | xenserver | + | name | nova | + | network_cpu | 0.7,0.7 | + | network_disk | 123000,123000 | + | network_network | 800,800 | + | os | linux | + +-----------------+---------------+ + +This equates to a GET operation on `.../zones/info`. If you have no child Zones defined you'll usually only get back the default `name`, `hypervisor` and `os` capabilities. Otherwise you'll get back a tuple of min, max values for each capabilities of all the hosts of all the services running in the child zone. These take the `_ = ,` format. + +Adding a child Zone +------------------- +Any Zone can be a parent Zone. Children are associated to a Zone. The Zone where this command originates from is known as the Parent Zone. Routing is only ever conducted from a Zone to its children, never the other direction. From a parent zone you can add a child zone with the following command: + +:: + + nova zone-add + +You can get the `child zone api url`, `nova api key` and `username` from the `novarc` file in the child zone. For example: + +:: + + export NOVA_API_KEY="3bd1af06-6435-4e23-a827-413b2eb86934" + export NOVA_USERNAME="alice" + export NOVA_URL="http://192.168.2.120:8774/v1.0/" + + +This equates to a POST operation to `.../zones/` to add a new zone. No connection attempt to the child zone is done when this command. It only puts an entry in the db at this point. After about 30 seconds the `ZoneManager` in the Scheduler services will attempt to talk to the child zone and get its information. + +Getting a list of child Zones +----------------------------- + +:: + + nova zone-list + + alice@novadev:~$ nova zone-list + +----+-------+-----------+--------------------------------------------+---------------------------------+ + | ID | Name | Is Active | Capabilities | API URL | + +----+-------+-----------+--------------------------------------------+---------------------------------+ + | 2 | zone1 | True | hypervisor=xenserver;kvm, os=linux;windows | http://192.168.2.108:8774/v1.0/ | + | 3 | zone2 | True | hypervisor=xenserver;kvm, os=linux;windows | http://192.168.2.115:8774/v1.0/ | + +----+-------+-----------+--------------------------------------------+---------------------------------+ + +This equates to a GET operation to `.../zones`. + +Removing a child Zone +--------------------- +:: + + nova zone-delete + +This equates to a DELETE call to `.../zones/N`. The Zone with ID=N will be removed. This will only remove the zone entry from the current (parent) Zone, no child Zones are affected. Removing a Child Zone doesn't affect any other part of the hierarchy. From d3623510887679c704a25870ed5f511bf86cac41 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Sun, 29 May 2011 23:42:46 -0300 Subject: [PATCH 085/164] lots more --- doc/source/devref/distributed_scheduler.rst | 40 ++++++++++++++++++--- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/distributed_scheduler.rst index 75a4d57ce..7599f2cc5 100644 --- a/doc/source/devref/distributed_scheduler.rst +++ b/doc/source/devref/distributed_scheduler.rst @@ -25,7 +25,7 @@ This is the purpose of the Distributed Scheduler (DS). The DS utilizes the Capab So, how does this all work? -This document will explain the strategy employed by the ZoneAwareScheduler and its derivations. +This document will explain the strategy employed by the `ZoneAwareScheduler` and its derivations. You should read the Zones documentation before reading this. Costs & Weights ---------- @@ -48,19 +48,51 @@ As we explained in the Zones documentation, each Scheduler has a `ZoneManager` o Here is how it works: -1. The Compute nodes are Filtered and the remaining set are Weighted. +1. The Compute nodes are Filtered and the nodes remaining are Weighed. 1a. Filtering the hosts is a simple matter of ensuring the Compute node has ample resources (CPU, RAM, DISK, etc) to fulfil the request. -1b. Weighing of the remaining Compute nodes is performed +1b. Weighing of the remaining Compute nodes assigns a number based on their suitability for the request. 2. The same request is sent to each Child Zone and step #1 is done there too. The resulting Weighted List is returned to the parent. 3. The Parent Zone sorts and aggregates all the Weights and a final Build Plan is constructed. 4. The Build Plan is executed upon. Concurrently, Instance Create requests are sent to each of the selected Hosts, be they local or in a child zone. Child Zones may forward the requests to their Child Zones as needed. Filtering and Weighing ------------ -Filtering (excluding Compute nodes incapable of fulfilling the request) and Weighing (computing the relative "fitness" of a Compute node to fulfill the request) are very subjective operations. +Filtering (excluding Compute nodes incapable of fulfilling the request) and Weighing (computing the relative "fitness" of a Compute node to fulfill the request) are very subjective operations. Service Providers will probably have a very different set of filtering and weighing rules than private cloud administrators. The filtering and weighing aspects of the `ZoneAwareScheduler` are flexible and extensible. We will explain how to do this later in this document. +Requesting a new instance +------------ +To request a new instance, a call is made to `nova.compute.api.create()`. The type of instance created depends on the value of the `InstanceType` record being passed in. The `InstanceType` determines the amount of disk, cpu, ram and network required for the instance. Administrators can add new `InstanceType` records to suit their needs. For more complicated instance requests we need to go beyond the default fields in the `InstanceType` table, but we'll discuss that later. +`nova.compute.api.create()` performs the following actions: +1. it validates all the fields passed into it. +2. it creates an entry in the `Instance` table for each instance requested +3. it puts one `run_instance` message in the scheduler queue for each instance requested +4. the schedulers pick off the messages and decide which Compute node should handle the request. +5. the `run_instance` message is forwarded to the Compute node for processing and the instance is created. +6. it returns a list of dicts representing each of the `Instance` records (even if the instance has not been activated yet). At least the `instance_id`'s are valid. +Generally, the standard schedulers (like `ChangeScheduler` and `AvailabilityZoneScheduler`) only operate in the current Zone. They have no concept of Child Zones. + +The problem with this approach is that each request is scattered amongst each of the schedulers. If we are asking for 1000 instances, each scheduler gets the requests one-at-a-time. There is no possability of optimizing the requests to take into account all 1000 instances as a group. We call this Single-Shot vs. All-at-Once. + +For the `ZoneAwareScheduler` we need to use the All-at-Once approach. We need to consider all the hosts across all the Zones before deciding where they should reside. In order to handle this we have a new method `nova.compute.api.create_all_at_once()`. This method does things a little differently: +1. it validates all the fields passed into it. +2. it creates a single `request_id` for all of instances created. This is a UUID. +3. it creates a single `run_instance` request in the scheduler queue +4. a scheduler picks the message off the queue and works on it. +5. the scheduler sends off an OS API `POST /zones/select` command to each Child Zone. The `BODY` payload of the call contains the `request_spec`. +6. the Child Zones use the `request_spec` to compute a weighted list for each instance requested. No attempt to actually create an instance is done at this point. We're only estimating the suitability of the Zones. +7. if the Child Zone has its own Child Zone's, the `/zones/select` call will be sent down to them as well. +8. Finally, when all the estimates have bubbled back to the Zone that initiated the call, all the results are merged, sorted and processed. +9. Now the instances can be created. The initiating Zone either forwards the `run_instance` message to the local Compute node to do the work, or it issues a `POST /servers` call to the relevant Child Zone. The parameters to the Child Zone call are the same as what was passed in by the user. + +The Catch +------------- +This all seems pretty straightforward but, like most things, there's a catch. Zones are expected to operate in complete isolation from each other. Each Zone has its own AMQP service, Database and set of Nova Services. But, for security reasons Zones should never leak information about the architectural layout internally. That means Zones cannot leak information about hostnames or service IP addresses outside of its world. + +When `POST /zones/select` is called to estimate which Compute node to use, time passes until the `POST /servers` call is issued. If we only passed the Weight back from the `select` we would have to re-compute the appropriate Compute node for the create command ... and we could end up with a different host. Somehow we need to remember the results of our computations and pass them outside of the Zone. Now, we could store this information in the local database and return a reference to it, but remember that the vast majority of weights are going be ignored. Storing them in the database would result in a flood of disk access and then we have to clean up all these entries periodically. Recall that there are going to be many many `select` calls issued to Child Zones asking for estimates. + +Instead, we take a rather innovative approach to the problem. We encrypt all the child zone internal details and pass them back the to parent Zone. If the parent zone decides to use a child Zone for the instance it simply passes the encrypted data back to the child during the `POST /servers` call as an extra parameter. The child Zone can then decrypt the hint and go directly to the Compute node previously selected. From b7fe9ce09dbd33c7453d0264c8fa309355ea5f19 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 30 May 2011 00:00:28 -0300 Subject: [PATCH 086/164] basic flow done --- doc/source/devref/distributed_scheduler.rst | 111 +++----------------- 1 file changed, 16 insertions(+), 95 deletions(-) diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/distributed_scheduler.rst index 7599f2cc5..c9aaf8c01 100644 --- a/doc/source/devref/distributed_scheduler.rst +++ b/doc/source/devref/distributed_scheduler.rst @@ -55,6 +55,8 @@ Here is how it works: 3. The Parent Zone sorts and aggregates all the Weights and a final Build Plan is constructed. 4. The Build Plan is executed upon. Concurrently, Instance Create requests are sent to each of the selected Hosts, be they local or in a child zone. Child Zones may forward the requests to their Child Zones as needed. +`ZoneAwareScheduler` by itself is not capable of handling all the provisioning itself. Derived classes are used to select which Host filtering and Weighing strategy will be used. We'll go into more detail on that later. + Filtering and Weighing ------------ Filtering (excluding Compute nodes incapable of fulfilling the request) and Weighing (computing the relative "fitness" of a Compute node to fulfill the request) are very subjective operations. Service Providers will probably have a very different set of filtering and weighing rules than private cloud administrators. The filtering and weighing aspects of the `ZoneAwareScheduler` are flexible and extensible. We will explain how to do this later in this document. @@ -77,7 +79,7 @@ The problem with this approach is that each request is scattered amongst each of For the `ZoneAwareScheduler` we need to use the All-at-Once approach. We need to consider all the hosts across all the Zones before deciding where they should reside. In order to handle this we have a new method `nova.compute.api.create_all_at_once()`. This method does things a little differently: 1. it validates all the fields passed into it. -2. it creates a single `request_id` for all of instances created. This is a UUID. +2. it creates a single `reservation_id` for all of instances created. This is a UUID. 3. it creates a single `run_instance` request in the scheduler queue 4. a scheduler picks the message off the queue and works on it. 5. the scheduler sends off an OS API `POST /zones/select` command to each Child Zone. The `BODY` payload of the call contains the `request_spec`. @@ -85,6 +87,7 @@ For the `ZoneAwareScheduler` we need to use the All-at-Once approach. We need to 7. if the Child Zone has its own Child Zone's, the `/zones/select` call will be sent down to them as well. 8. Finally, when all the estimates have bubbled back to the Zone that initiated the call, all the results are merged, sorted and processed. 9. Now the instances can be created. The initiating Zone either forwards the `run_instance` message to the local Compute node to do the work, or it issues a `POST /servers` call to the relevant Child Zone. The parameters to the Child Zone call are the same as what was passed in by the user. +10. The `reservation_id` is passed back to the caller. Later we explain how the user can check on the status of the command with this `reservation_id`. The Catch ------------- @@ -92,105 +95,23 @@ This all seems pretty straightforward but, like most things, there's a catch. Zo When `POST /zones/select` is called to estimate which Compute node to use, time passes until the `POST /servers` call is issued. If we only passed the Weight back from the `select` we would have to re-compute the appropriate Compute node for the create command ... and we could end up with a different host. Somehow we need to remember the results of our computations and pass them outside of the Zone. Now, we could store this information in the local database and return a reference to it, but remember that the vast majority of weights are going be ignored. Storing them in the database would result in a flood of disk access and then we have to clean up all these entries periodically. Recall that there are going to be many many `select` calls issued to Child Zones asking for estimates. -Instead, we take a rather innovative approach to the problem. We encrypt all the child zone internal details and pass them back the to parent Zone. If the parent zone decides to use a child Zone for the instance it simply passes the encrypted data back to the child during the `POST /servers` call as an extra parameter. The child Zone can then decrypt the hint and go directly to the Compute node previously selected. +Instead, we take a rather innovative approach to the problem. We encrypt all the child zone internal details and pass them back the to parent Zone. If the parent zone decides to use a child Zone for the instance it simply passes the encrypted data back to the child during the `POST /servers` call as an extra parameter. The child Zone can then decrypt the hint and go directly to the Compute node previously selected. If the estimate isn't used, it is simply discarded by the parent. + +In the case of nested child Zones, each Zone re-encrypts the weighted list results and passes those values to the parent. + +Throughout the `nova.api.openstack.servers`, `nova.api.openstack.zones`, `nova.compute.api.create*` and `nova.scheduler.zone_aware_scheduler` code you'll see references to `blob` and `child_blob`. These are the encrypted hints about which Compute node to use. + +Reservation ID's +--------------- -- -Routing between Zones is based on the Capabilities of that Zone. Capabilities are nothing more than key/value pairs. Values are multi-value, with each value separated with a semicolon (`;`). When expressed as a string they take the form: -:: - - key=value;value;value, key=value;value;value - -Zones have Capabilities which are general to the Zone and are set via `--zone_capabilities` flag. Zones also have dynamic per-service Capabilities. Services derived from `nova.manager.SchedulerDependentManager` (such as Compute, Volume and Network) can set these capabilities by calling the `update_service_capabilities()` method on their `Manager` base class. These capabilities will be periodically sent to the Scheduler service automatically. The rate at which these updates are sent is controlled by the `--periodic_interval` flag. - -Flow within a Zone ------------------- -The brunt of the work within a Zone is done in the Scheduler Service. The Scheduler is responsible for: -- collecting capability messages from the Compute, Volume and Network nodes, -- polling the child Zones for their status and -- providing data to the Distributed Scheduler for performing load balancing calculations - -Inter-service communication within a Zone is done with RabbitMQ. Each class of Service (Compute, Volume and Network) has both a named message exchange (particular to that host) and a general message exchange (particular to that class of service). Messages sent to these exchanges are picked off in round-robin fashion. Zones introduce a new fan-out exchange per service. Messages sent to the fan-out exchange are picked up by all services of a particular class. This fan-out exchange is used by the Scheduler services to receive capability messages from the Compute, Volume and Network nodes. - -These capability messages are received by the Scheduler services and stored in the `ZoneManager` object. The SchedulerManager object has a reference to the `ZoneManager` it can use for load balancing. - -The `ZoneManager` also polls the child Zones periodically to gather their capabilities to aid in decision making. This is done via the OpenStack API `/v1.0/zones/info` REST call. This also captures the name of each child Zone. The Zone name is set via the `--zone_name` flag (and defaults to "nova"). - -Zone administrative functions ------------------------------ -Zone administrative operations are usually done using python-novaclient_ - -.. _python-novaclient: https://github.com/rackspace/python-novaclient - -In order to use the Zone operations, be sure to enable administrator operations in OpenStack API by setting the `--allow_admin_api=true` flag. - -Finally you need to enable Zone Forwarding. This will be used by the Distributed Scheduler initiative currently underway. Set `--enable_zone_routing=true` to enable this feature. - -Find out about this Zone ------------------------- -In any Zone you can find the Zone's name and capabilities with the ``nova zone-info`` command. - -:: - - alice@novadev:~$ nova zone-info - +-----------------+---------------+ - | Property | Value | - +-----------------+---------------+ - | compute_cpu | 0.7,0.7 | - | compute_disk | 123000,123000 | - | compute_network | 800,800 | - | hypervisor | xenserver | - | name | nova | - | network_cpu | 0.7,0.7 | - | network_disk | 123000,123000 | - | network_network | 800,800 | - | os | linux | - +-----------------+---------------+ - -This equates to a GET operation on `.../zones/info`. If you have no child Zones defined you'll usually only get back the default `name`, `hypervisor` and `os` capabilities. Otherwise you'll get back a tuple of min, max values for each capabilities of all the hosts of all the services running in the child zone. These take the `_ = ,` format. - -Adding a child Zone -------------------- -Any Zone can be a parent Zone. Children are associated to a Zone. The Zone where this command originates from is known as the Parent Zone. Routing is only ever conducted from a Zone to its children, never the other direction. From a parent zone you can add a child zone with the following command: - -:: - - nova zone-add - -You can get the `child zone api url`, `nova api key` and `username` from the `novarc` file in the child zone. For example: - -:: - - export NOVA_API_KEY="3bd1af06-6435-4e23-a827-413b2eb86934" - export NOVA_USERNAME="alice" - export NOVA_URL="http://192.168.2.120:8774/v1.0/" +Host Filter +-------------- -This equates to a POST operation to `.../zones/` to add a new zone. No connection attempt to the child zone is done when this command. It only puts an entry in the db at this point. After about 30 seconds the `ZoneManager` in the Scheduler services will attempt to talk to the child zone and get its information. +Cost Scheduler Weighing +-------------- -Getting a list of child Zones ------------------------------ -:: - - nova zone-list - - alice@novadev:~$ nova zone-list - +----+-------+-----------+--------------------------------------------+---------------------------------+ - | ID | Name | Is Active | Capabilities | API URL | - +----+-------+-----------+--------------------------------------------+---------------------------------+ - | 2 | zone1 | True | hypervisor=xenserver;kvm, os=linux;windows | http://192.168.2.108:8774/v1.0/ | - | 3 | zone2 | True | hypervisor=xenserver;kvm, os=linux;windows | http://192.168.2.115:8774/v1.0/ | - +----+-------+-----------+--------------------------------------------+---------------------------------+ - -This equates to a GET operation to `.../zones`. - -Removing a child Zone ---------------------- -:: - - nova zone-delete - -This equates to a DELETE call to `.../zones/N`. The Zone with ID=N will be removed. This will only remove the zone entry from the current (parent) Zone, no child Zones are affected. Removing a Child Zone doesn't affect any other part of the hierarchy. From f7a8b5b0befa6bc044c713ba287f5c1ff26f772d Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 30 May 2011 00:45:15 -0300 Subject: [PATCH 087/164] reservation_id's done --- doc/source/devref/distributed_scheduler.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/distributed_scheduler.rst index c9aaf8c01..402f50bee 100644 --- a/doc/source/devref/distributed_scheduler.rst +++ b/doc/source/devref/distributed_scheduler.rst @@ -104,8 +104,17 @@ Throughout the `nova.api.openstack.servers`, `nova.api.openstack.zones`, `nova.c Reservation ID's --------------- +NOTE: The features described in this section are related to the up-coming 'merge-4' branch. +The OpenStack API allows a user to list all the instances they own via the `GET /servers/` command or the details on a particular instance via `GET /servers/###`. This mechanism is usually sufficient since OS API only allows for creating one instance at a time, unlike the EC2 API which allows you to specify a quantity of instances to be created. +NOTE: currently the `GET /servers` command is not Zone-aware since all operations done in child Zones are done via a single administrative account. Therefore, asking a child Zone to `GET /servers` would return all the active instances ... and that would be bad. Later, when the Keystone Auth system is integrated with Nova, this functionality will be enabled. + +We could use the OS API 1.1 Extensions mechanism to accept a `num_instances` parameter, but this would result in a different return code. Instead of getting back an `Instance` record, we would be getting back a `reservation_id`. So, instead, we've implemented a new command `POST /zones/servers` command which is nearly identical to `POST /servers` except that it takes a `num_instances` parameter and returns a `reservation_id`. Perhaps in OS API 2.x we can unify these approaches. + +Finally, we need to give the user a way to get information on each of the instances created under this `reservation_id`. Fortunately, this is still possible with the existing `GET /servers` command, so long as we add a new optional `reservation_id` parameter. + +`python-novaclient` will be extended to support both of these changes. Host Filter -------------- From cefb58271fff64ee3345d254e7d771d2a52ea63b Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 30 May 2011 05:03:45 -0700 Subject: [PATCH 088/164] first cut complete --- doc/source/devref/distributed_scheduler.rst | 41 +++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/distributed_scheduler.rst index 402f50bee..a45505640 100644 --- a/doc/source/devref/distributed_scheduler.rst +++ b/doc/source/devref/distributed_scheduler.rst @@ -119,8 +119,49 @@ Finally, we need to give the user a way to get information on each of the instan Host Filter -------------- +As we mentioned earlier, filtering hosts is a very deployment specific process. Service Providers may have a different set of criteria for filtering Compute nodes than a University. To faciliate this the `nova.scheduler.host_filter` module supports a variety of filtering strategies as well as an easy means for plugging in your own algorithms. +The filter used is determined by the `--default_host_filter` flag, which points to a Python Class. By default this flag is set to `nova.scheduler.host_filter.AllHostsFilter` which simply returns all available hosts. But there are others. + +`nova.scheduler.host_filter.InstanceTypeFilter` provides host filtering based on the memory and disk size specified in the `InstanceType` record passed into `run_instance`. +`nova.scheduler.host_filter.JSONFilter` filters hosts based on simple JSON expression grammar. Using a LISP-like JSON structure the caller can request instances based on criteria well beyond what `InstanceType` specifies. See `nova.tests.test_host_filter` for examples. + +To create your own `HostFilter` the user simply has to derive from `nova.scheduler.host_filter.HostFilter` and implement two methods: `instance_type_to_filter` and `filter_hosts`. Since Nova is currently dependent on the `InstanceType` structure, the `instance_type_to_filter` method should take an `InstanceType` and turn it into an internal data structure usable by your filter. This is for backward compatibility with existing OpenStack and EC2 API calls. If you decide the create your own call for creating instances not based on `Flavors` or `InstanceTypes` you can ignore this method. The real work is done in `filter_hosts` which must return a list of weight tuples for each appropriate host. The set of all available hosts is in the `ZoneManager` object passed into the call as well as the filter query. The weight tuple contains (``, ``) where `` is whatever you want it to be. + Cost Scheduler Weighing -------------- +Every `ZoneAwareScheduler` derivation must also override the `weigh_hosts` method. This takes the list of filtered hosts (generated by the `filter_hosts` method) and returns a list of weight dicts. The weight dicts must contain two keys: `weight` and `hostname` where `weight` is simply an integer (lower is better) and `hostname` is the name of the host. The list does not need to be sorted, this will be done by the `ZoneAwareScheduler` base class when all the results have been assembled. +Simple Zone Aware Scheduling +-------------- +The easiest way to get started with the Zone Aware Scheduler is to use the `nova.scheduler.host_filter.HostFilterScheduler`. This scheduler uses the default Host Filter as and the `weight_hosts` method simply returns a weight of 1 for all hosts. But, from this, you can see calls being routed from Zone to Zone and follow the flow of things. +The `--scheduler_driver` flag is how you specify the Scheduler class name. + +Flags +-------------- + +All this Zone and Distributed Scheduler stuff can seem a little daunting to configure, but it's actually not too bad. Here are some of the main flags you should set in your `nova.conf` file: + +:: + --allow_admin_api=true + --enable_zone_routing=true + --zone_name=zone1 + --build_plan_encryption_key=c286696d887c9aa0611bbb3e2025a45b + --scheduler_driver=nova.scheduler.host_filter.HostFilterScheduler + --default_host_filter=nova.scheduler.host_filter.AllHostsFilter + +`--allow_admin_api` must be set for OS API to enable the new `/zones/*` commands. +`--enable_zone_routing` must be set for OS API commands such as `create()`, `pause()` and `delete()` to get routed from Zone to Zone when looking for instances. +`--zone_name` is only required in Child Zones. The default Zone name is `nova`, but you may want to name your child Zones something useful. Duplicate Zone names are not an issue. +`build_plan_encryption_key` is the SHA-256 key for encrypting/decrypting the Host information when it leaves a Zone. Be sure to change this key for each Zone you create. Do not duplicate keys. +`scheduler_driver` is the real work horse of the operation. For Distributed Scheduler, you need to specify a class derived from `nova.scheduler.zone_aware_scheduler.ZoneAwareScheduler` +`default_host_filter` is the host filter to be used for filtering candidate Compute nodes. + +Some optional flags which are handy for debugging are: + +:: + --connection_type=fake + --verbose + +Using the `Fake` virtualization driver is handy when you're setting this stuff up so you're not dealing with a million possible issues at once. When things seem to working correctly, switch back to whatever hypervisor your deployment uses. From f2c8355b664a407a836dc52f76add5a5cde25bf9 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 31 May 2011 08:26:11 -0700 Subject: [PATCH 089/164] edits based on ed's feedback --- doc/source/devref/distributed_scheduler.rst | 85 +++++++++++---------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/distributed_scheduler.rst index a45505640..28ba20af7 100644 --- a/doc/source/devref/distributed_scheduler.rst +++ b/doc/source/devref/distributed_scheduler.rst @@ -1,3 +1,7 @@ + + + + .. Copyright 2011 OpenStack LLC All Rights Reserved. @@ -17,7 +21,7 @@ Distributed Scheduler ===== -The Scheduler is akin to a Dating Service. Requests for the creation of new instances come in and Compute nodes are selected for where the work should be performed. In a small deployment we may be happy with the currently available Change Scheduler which randomly selects a Host from the available pool. Or if you need something a little more fancy you may want to use the Availability Zone Scheduler, which selects Compute hosts from a logical partitioning of available hosts (within a single Zone). +The Scheduler is akin to a Dating Service. Requests for the creation of new instances come in and the most applicable Compute nodes are selected from a large pool of potential candidates. In a small deployment we may be happy with the currently available Change Scheduler which randomly selects a Host from the available pool. Or if you need something a little more fancy you may want to use the Availability Zone Scheduler, which selects Compute hosts from a logical partitioning of available hosts (within a single Zone). But for larger deployments a more complex scheduling algorithm is required. Additionally, if you are using Zones in your Nova setup, you'll need a scheduler that understand how to pass instance requests from Zone to Zone. @@ -29,7 +33,7 @@ This document will explain the strategy employed by the `ZoneAwareScheduler` and Costs & Weights ---------- -When deciding where to place an Instance, we compare a Weighted Cost for each Host. The Weighting, currently, is just the sum of each Cost. Costs are nothing more than integers from `0 - max_int`. Costs are computed by looking at the various Capabilities of the Host relative to the specs of the Instance being asked for. Trying to put an Instance with 8G of RAM on a Host that only has 4G remaining would have a very high cost. But putting a 512m RAM instance on an empty Host should have a low cost. +When deciding where to place an Instance, we compare a Weighted Cost for each Host. The Weighting, currently, is just the sum of each Cost. Costs are nothing more than integers from `0 - max_int`. Costs are computed by looking at the various Capabilities of the Host relative to the specs of the Instance being asked for. Trying to putting a plain vanilla instance on a high performance host should have a very high cost. But putting a vanilla instance on a vanilla Host should have a low cost. Some Costs are more esoteric. Consider a rule that says we should prefer Hosts that don't already have an instance on it that is owned by the user requesting it (to mitigate against machine failures). Here we have to look at all the other Instances on the host to compute our cost. @@ -44,73 +48,73 @@ This Weight is computed for each Instance requested. If the customer asked for 1 nova.scheduler.zone_aware_scheduler.ZoneAwareScheduler ----------- -As we explained in the Zones documentation, each Scheduler has a `ZoneManager` object that collects "Capabilities" about Child Zones and each of the Services running in the current Zone. The `ZoneAwareScheduler` uses this information to make its decisions. +As we explained in the Zones documentation, each Scheduler has a `ZoneManager` object that collects "Capabilities" about child Zones and each of the services running in the current Zone. The `ZoneAwareScheduler` uses this information to make its decisions. Here is how it works: -1. The Compute nodes are Filtered and the nodes remaining are Weighed. -1a. Filtering the hosts is a simple matter of ensuring the Compute node has ample resources (CPU, RAM, DISK, etc) to fulfil the request. -1b. Weighing of the remaining Compute nodes assigns a number based on their suitability for the request. -2. The same request is sent to each Child Zone and step #1 is done there too. The resulting Weighted List is returned to the parent. -3. The Parent Zone sorts and aggregates all the Weights and a final Build Plan is constructed. -4. The Build Plan is executed upon. Concurrently, Instance Create requests are sent to each of the selected Hosts, be they local or in a child zone. Child Zones may forward the requests to their Child Zones as needed. +1. The compute nodes are filtered and the nodes remaining are weighed. +1a. Filtering the hosts is a simple matter of ensuring the compute node has ample resources (CPU, RAM, Disk, etc) to fulfil the request. +1b. Weighing of the remaining compute nodes assigns a number based on their suitability for the request. +2. The same request is sent to each child Zone and step #1 is done there too. The resulting weighted list is returned to the parent. +3. The parent Zone sorts and aggregates all the weights and a final build plan is constructed. +4. The build plan is executed upon. Concurrently, instance create requests are sent to each of the selected hosts, be they local or in a child zone. Child Zones may forward the requests to their child Zones as needed. -`ZoneAwareScheduler` by itself is not capable of handling all the provisioning itself. Derived classes are used to select which Host filtering and Weighing strategy will be used. We'll go into more detail on that later. +`ZoneAwareScheduler` by itself is not capable of handling all the provisioning itself. Derived classes are used to select which host filtering and weighing strategy will be used. Filtering and Weighing ------------ -Filtering (excluding Compute nodes incapable of fulfilling the request) and Weighing (computing the relative "fitness" of a Compute node to fulfill the request) are very subjective operations. Service Providers will probably have a very different set of filtering and weighing rules than private cloud administrators. The filtering and weighing aspects of the `ZoneAwareScheduler` are flexible and extensible. We will explain how to do this later in this document. +The filtering (excluding compute nodes incapable of fulfilling the request) and weighing (computing the relative "fitness" of a compute node to fulfill the request) rules used are very subjective operations ... Service Providers will probably have a very different set of filtering and weighing rules than private cloud administrators. The filtering and weighing aspects of the `ZoneAwareScheduler` are flexible and extensible. Requesting a new instance ------------ -To request a new instance, a call is made to `nova.compute.api.create()`. The type of instance created depends on the value of the `InstanceType` record being passed in. The `InstanceType` determines the amount of disk, cpu, ram and network required for the instance. Administrators can add new `InstanceType` records to suit their needs. For more complicated instance requests we need to go beyond the default fields in the `InstanceType` table, but we'll discuss that later. +Prior to the `ZoneAwareScheduler`, to request a new instance, a call was made to `nova.compute.api.create()`. The type of instance created depended on the value of the `InstanceType` record being passed in. The `InstanceType` determined the amount of disk, CPU, RAM and network required for the instance. Administrators can add new `InstanceType` records to suit their needs. For more complicated instance requests we need to go beyond the default fields in the `InstanceType` table. -`nova.compute.api.create()` performs the following actions: -1. it validates all the fields passed into it. -2. it creates an entry in the `Instance` table for each instance requested -3. it puts one `run_instance` message in the scheduler queue for each instance requested -4. the schedulers pick off the messages and decide which Compute node should handle the request. -5. the `run_instance` message is forwarded to the Compute node for processing and the instance is created. -6. it returns a list of dicts representing each of the `Instance` records (even if the instance has not been activated yet). At least the `instance_id`'s are valid. +`nova.compute.api.create()` performed the following actions: +1. it validated all the fields passed into it. +2. it created an entry in the `Instance` table for each instance requested +3. it put one `run_instance` message in the scheduler queue for each instance requested +4. the schedulers picked off the messages and decided which compute node should handle the request. +5. the `run_instance` message was forwarded to the compute node for processing and the instance is created. +6. it returned a list of dicts representing each of the `Instance` records (even if the instance has not been activated yet). At least the `instance_id`s are valid. -Generally, the standard schedulers (like `ChangeScheduler` and `AvailabilityZoneScheduler`) only operate in the current Zone. They have no concept of Child Zones. +Generally, the standard schedulers (like `ChanceScheduler` and `AvailabilityZoneScheduler`) only operate in the current Zone. They have no concept of child Zones. -The problem with this approach is that each request is scattered amongst each of the schedulers. If we are asking for 1000 instances, each scheduler gets the requests one-at-a-time. There is no possability of optimizing the requests to take into account all 1000 instances as a group. We call this Single-Shot vs. All-at-Once. +The problem with this approach is each request is scattered amongst each of the schedulers. If we are asking for 1000 instances, each scheduler gets the requests one-at-a-time. There is no possability of optimizing the requests to take into account all 1000 instances as a group. We call this Single-Shot vs. All-at-Once. For the `ZoneAwareScheduler` we need to use the All-at-Once approach. We need to consider all the hosts across all the Zones before deciding where they should reside. In order to handle this we have a new method `nova.compute.api.create_all_at_once()`. This method does things a little differently: 1. it validates all the fields passed into it. 2. it creates a single `reservation_id` for all of instances created. This is a UUID. 3. it creates a single `run_instance` request in the scheduler queue 4. a scheduler picks the message off the queue and works on it. -5. the scheduler sends off an OS API `POST /zones/select` command to each Child Zone. The `BODY` payload of the call contains the `request_spec`. -6. the Child Zones use the `request_spec` to compute a weighted list for each instance requested. No attempt to actually create an instance is done at this point. We're only estimating the suitability of the Zones. -7. if the Child Zone has its own Child Zone's, the `/zones/select` call will be sent down to them as well. +5. the scheduler sends off an OS API `POST /zones/select` command to each child Zone. The `BODY` payload of the call contains the `request_spec`. +6. the child Zones use the `request_spec` to compute a weighted list for each instance requested. No attempt to actually create an instance is done at this point. We're only estimating the suitability of the Zones. +7. if the child Zone has its own child Zones, the `/zones/select` call will be sent down to them as well. 8. Finally, when all the estimates have bubbled back to the Zone that initiated the call, all the results are merged, sorted and processed. -9. Now the instances can be created. The initiating Zone either forwards the `run_instance` message to the local Compute node to do the work, or it issues a `POST /servers` call to the relevant Child Zone. The parameters to the Child Zone call are the same as what was passed in by the user. +9. Now the instances can be created. The initiating Zone either forwards the `run_instance` message to the local Compute node to do the work, or it issues a `POST /servers` call to the relevant child Zone. The parameters to the child Zone call are the same as what was passed in by the user. 10. The `reservation_id` is passed back to the caller. Later we explain how the user can check on the status of the command with this `reservation_id`. The Catch ------------- -This all seems pretty straightforward but, like most things, there's a catch. Zones are expected to operate in complete isolation from each other. Each Zone has its own AMQP service, Database and set of Nova Services. But, for security reasons Zones should never leak information about the architectural layout internally. That means Zones cannot leak information about hostnames or service IP addresses outside of its world. +This all seems pretty straightforward but, like most things, there's a catch. Zones are expected to operate in complete isolation from each other. Each Zone has its own AMQP service, database and set of Nova services. But, for security reasons Zones should never leak information about the architectural layout internally. That means Zones cannot leak information about hostnames or service IP addresses outside of its world. -When `POST /zones/select` is called to estimate which Compute node to use, time passes until the `POST /servers` call is issued. If we only passed the Weight back from the `select` we would have to re-compute the appropriate Compute node for the create command ... and we could end up with a different host. Somehow we need to remember the results of our computations and pass them outside of the Zone. Now, we could store this information in the local database and return a reference to it, but remember that the vast majority of weights are going be ignored. Storing them in the database would result in a flood of disk access and then we have to clean up all these entries periodically. Recall that there are going to be many many `select` calls issued to Child Zones asking for estimates. +When `POST /zones/select` is called to estimate which compute node to use, time passes until the `POST /servers` call is issued. If we only passed the weight back from the `select` we would have to re-compute the appropriate compute node for the create command ... and we could end up with a different host. Somehow we need to remember the results of our computations and pass them outside of the Zone. Now, we could store this information in the local database and return a reference to it, but remember that the vast majority of weights are going be ignored. Storing them in the database would result in a flood of disk access and then we have to clean up all these entries periodically. Recall that there are going to be many many `select` calls issued to child Zones asking for estimates. -Instead, we take a rather innovative approach to the problem. We encrypt all the child zone internal details and pass them back the to parent Zone. If the parent zone decides to use a child Zone for the instance it simply passes the encrypted data back to the child during the `POST /servers` call as an extra parameter. The child Zone can then decrypt the hint and go directly to the Compute node previously selected. If the estimate isn't used, it is simply discarded by the parent. +Instead, we take a rather innovative approach to the problem. We encrypt all the child zone internal details and pass them back the to parent Zone. If the parent zone decides to use a child Zone for the instance it simply passes the encrypted data back to the child during the `POST /servers` call as an extra parameter. The child Zone can then decrypt the hint and go directly to the Compute node previously selected. If the estimate isn't used, it is simply discarded by the parent. It's for this reason that it is so important that each Zone defines a unique encryption key via `--build_plan_encryption_key` In the case of nested child Zones, each Zone re-encrypts the weighted list results and passes those values to the parent. Throughout the `nova.api.openstack.servers`, `nova.api.openstack.zones`, `nova.compute.api.create*` and `nova.scheduler.zone_aware_scheduler` code you'll see references to `blob` and `child_blob`. These are the encrypted hints about which Compute node to use. -Reservation ID's +Reservation IDs --------------- NOTE: The features described in this section are related to the up-coming 'merge-4' branch. The OpenStack API allows a user to list all the instances they own via the `GET /servers/` command or the details on a particular instance via `GET /servers/###`. This mechanism is usually sufficient since OS API only allows for creating one instance at a time, unlike the EC2 API which allows you to specify a quantity of instances to be created. -NOTE: currently the `GET /servers` command is not Zone-aware since all operations done in child Zones are done via a single administrative account. Therefore, asking a child Zone to `GET /servers` would return all the active instances ... and that would be bad. Later, when the Keystone Auth system is integrated with Nova, this functionality will be enabled. +NOTE: currently the `GET /servers` command is not Zone-aware since all operations done in child Zones are done via a single administrative account. Therefore, asking a child Zone to `GET /servers` would return all the active instances ... and that would be what the user intended. Later, when the Keystone Auth system is integrated with Nova, this functionality will be enabled. -We could use the OS API 1.1 Extensions mechanism to accept a `num_instances` parameter, but this would result in a different return code. Instead of getting back an `Instance` record, we would be getting back a `reservation_id`. So, instead, we've implemented a new command `POST /zones/servers` command which is nearly identical to `POST /servers` except that it takes a `num_instances` parameter and returns a `reservation_id`. Perhaps in OS API 2.x we can unify these approaches. +We could use the OS API 1.1 Extensions mechanism to accept a `num_instances` parameter, but this would result in a different return code. Instead of getting back an `Instance` record, we would be getting back a `reservation_id`. So, instead, we've implemented a new command `POST /zones/boot` command which is nearly identical to `POST /servers` except that it takes a `num_instances` parameter and returns a `reservation_id`. Perhaps in OS API 2.x we can unify these approaches. Finally, we need to give the user a way to get information on each of the instances created under this `reservation_id`. Fortunately, this is still possible with the existing `GET /servers` command, so long as we add a new optional `reservation_id` parameter. @@ -119,14 +123,15 @@ Finally, we need to give the user a way to get information on each of the instan Host Filter -------------- -As we mentioned earlier, filtering hosts is a very deployment specific process. Service Providers may have a different set of criteria for filtering Compute nodes than a University. To faciliate this the `nova.scheduler.host_filter` module supports a variety of filtering strategies as well as an easy means for plugging in your own algorithms. +As we mentioned earlier, filtering hosts is a very deployment-specific process. Service Providers may have a different set of criteria for filtering Compute nodes than a University. To faciliate this the `nova.scheduler.host_filter` module supports a variety of filtering strategies as well as an easy means for plugging in your own algorithms. -The filter used is determined by the `--default_host_filter` flag, which points to a Python Class. By default this flag is set to `nova.scheduler.host_filter.AllHostsFilter` which simply returns all available hosts. But there are others. +The filter used is determined by the `--default_host_filter` flag, which points to a Python Class. By default this flag is set to `nova.scheduler.host_filter.AllHostsFilter` which simply returns all available hosts. But there are others: -`nova.scheduler.host_filter.InstanceTypeFilter` provides host filtering based on the memory and disk size specified in the `InstanceType` record passed into `run_instance`. -`nova.scheduler.host_filter.JSONFilter` filters hosts based on simple JSON expression grammar. Using a LISP-like JSON structure the caller can request instances based on criteria well beyond what `InstanceType` specifies. See `nova.tests.test_host_filter` for examples. + * `nova.scheduler.host_filter.InstanceTypeFilter` provides host filtering based on the memory and disk size specified in the `InstanceType` record passed into `run_instance`. -To create your own `HostFilter` the user simply has to derive from `nova.scheduler.host_filter.HostFilter` and implement two methods: `instance_type_to_filter` and `filter_hosts`. Since Nova is currently dependent on the `InstanceType` structure, the `instance_type_to_filter` method should take an `InstanceType` and turn it into an internal data structure usable by your filter. This is for backward compatibility with existing OpenStack and EC2 API calls. If you decide the create your own call for creating instances not based on `Flavors` or `InstanceTypes` you can ignore this method. The real work is done in `filter_hosts` which must return a list of weight tuples for each appropriate host. The set of all available hosts is in the `ZoneManager` object passed into the call as well as the filter query. The weight tuple contains (``, ``) where `` is whatever you want it to be. + * `nova.scheduler.host_filter.JSONFilter` filters hosts based on simple JSON expression grammar. Using a LISP-like JSON structure the caller can request instances based on criteria well beyond what `InstanceType` specifies. See `nova.tests.test_host_filter` for examples. + +To create your own `HostFilter` the user simply has to derive from `nova.scheduler.host_filter.HostFilter` and implement two methods: `instance_type_to_filter` and `filter_hosts`. Since Nova is currently dependent on the `InstanceType` structure, the `instance_type_to_filter` method should take an `InstanceType` and turn it into an internal data structure usable by your filter. This is for backward compatibility with existing OpenStack and EC2 API calls. If you decide to create your own call for creating instances not based on `Flavors` or `InstanceTypes` you can ignore this method. The real work is done in `filter_hosts` which must return a list of host tuples for each appropriate host. The set of all available hosts is in the `ZoneManager` object passed into the call as well as the filter query. The host tuple contains (``, ``) where `` is whatever you want it to be. Cost Scheduler Weighing -------------- @@ -134,9 +139,9 @@ Every `ZoneAwareScheduler` derivation must also override the `weigh_hosts` metho Simple Zone Aware Scheduling -------------- -The easiest way to get started with the Zone Aware Scheduler is to use the `nova.scheduler.host_filter.HostFilterScheduler`. This scheduler uses the default Host Filter as and the `weight_hosts` method simply returns a weight of 1 for all hosts. But, from this, you can see calls being routed from Zone to Zone and follow the flow of things. +The easiest way to get started with the `ZoneAwareScheduler` is to use the `nova.scheduler.host_filter.HostFilterScheduler`. This scheduler uses the default Host Filter as and the `weight_hosts` method simply returns a weight of 1 for all hosts. But, from this, you can see calls being routed from Zone to Zone and follow the flow of things. -The `--scheduler_driver` flag is how you specify the Scheduler class name. +The `--scheduler_driver` flag is how you specify the scheduler class name. Flags -------------- @@ -153,9 +158,9 @@ All this Zone and Distributed Scheduler stuff can seem a little daunting to conf `--allow_admin_api` must be set for OS API to enable the new `/zones/*` commands. `--enable_zone_routing` must be set for OS API commands such as `create()`, `pause()` and `delete()` to get routed from Zone to Zone when looking for instances. -`--zone_name` is only required in Child Zones. The default Zone name is `nova`, but you may want to name your child Zones something useful. Duplicate Zone names are not an issue. +`--zone_name` is only required in child Zones. The default Zone name is `nova`, but you may want to name your child Zones something useful. Duplicate Zone names are not an issue. `build_plan_encryption_key` is the SHA-256 key for encrypting/decrypting the Host information when it leaves a Zone. Be sure to change this key for each Zone you create. Do not duplicate keys. -`scheduler_driver` is the real work horse of the operation. For Distributed Scheduler, you need to specify a class derived from `nova.scheduler.zone_aware_scheduler.ZoneAwareScheduler` +`scheduler_driver` is the real workhorse of the operation. For Distributed Scheduler, you need to specify a class derived from `nova.scheduler.zone_aware_scheduler.ZoneAwareScheduler`. `default_host_filter` is the host filter to be used for filtering candidate Compute nodes. Some optional flags which are handy for debugging are: From 0de82c472fd3de4dc8bd9a89bf3b75580e46738a Mon Sep 17 00:00:00 2001 From: "Vivek YS vivek.ys@gmail.com" <> Date: Tue, 31 May 2011 21:04:01 +0530 Subject: [PATCH 090/164] Added myself to Authors file --- Authors | 1 + 1 file changed, 1 insertion(+) diff --git a/Authors b/Authors index 50f4680a9..8dbdbfdb6 100644 --- a/Authors +++ b/Authors @@ -83,6 +83,7 @@ Trey Morris Tushar Patil Vasiliy Shlykov Vishvananda Ishaya +Vivek Y S William Wolf Yoshiaki Tamura Youcef Laribi From 79d461cc0f2577791cbcdce097c7dbd991c07fdb Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Tue, 31 May 2011 11:58:15 -0400 Subject: [PATCH 091/164] Handle the case when a v1.0 api tries to list servers that contain image hrefs. --- nova/exception.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nova/exception.py b/nova/exception.py index 5b91e1cde..6ea6c3620 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -284,7 +284,12 @@ class DiskNotFound(NotFound): class InvalidImageRef(Invalid): - message = _("Invalid image ref %(image_href)s.") + message = _("Invalid image href %(image_href)s.") + + +class ListingImageRefsNotSupported(Invalid): + message = _("Some images have been stored via hrefs." + + " This version of the api does not support displaying image hrefs.") class ImageNotFound(NotFound): From f70257c2c53dd49fd9dcf6f8652d13c744bcd990 Mon Sep 17 00:00:00 2001 From: Jason Cannavale Date: Tue, 31 May 2011 11:25:38 -0500 Subject: [PATCH 092/164] MySQL database tables are currently using the MyISAM engine. Created migration script nova/db/sqlalchemy/migrate_repo/versions/020_set_engine_mysql_innodb.py to change all current tables to InnoDB. --- Authors | 1 + 1 file changed, 1 insertion(+) diff --git a/Authors b/Authors index b17c4f63e..0ce729261 100644 --- a/Authors +++ b/Authors @@ -28,6 +28,7 @@ Gabe Westmaas Hisaharu Ishii Hisaki Ohara Ilya Alekseyev +Isaku Yamahata Jason Cannavale Jason Koelker Jay Pipes From 8997c32f1ad4131f099b4b4dbb20f0f0baa195c4 Mon Sep 17 00:00:00 2001 From: Jason Cannavale Date: Tue, 31 May 2011 11:31:35 -0500 Subject: [PATCH 093/164] Cleaned up pep8 errors. --- Authors | 1 - 1 file changed, 1 deletion(-) diff --git a/Authors b/Authors index 0ce729261..b17c4f63e 100644 --- a/Authors +++ b/Authors @@ -28,7 +28,6 @@ Gabe Westmaas Hisaharu Ishii Hisaki Ohara Ilya Alekseyev -Isaku Yamahata Jason Cannavale Jason Koelker Jay Pipes From 5e62b5c81e6e3220221bc23a1213537cf0cda9e6 Mon Sep 17 00:00:00 2001 From: Jason Cannavale Date: Tue, 31 May 2011 11:43:38 -0500 Subject: [PATCH 094/164] Cleaned up text conflict. --- Authors | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Authors b/Authors index b17c4f63e..53b336ce1 100644 --- a/Authors +++ b/Authors @@ -1,4 +1,5 @@ Alex Meade +Andrey Brindeyev Andy Smith Andy Southgate Anne Gentle @@ -16,6 +17,7 @@ Christian Berendt Chuck Short Cory Wright Dan Prince +Dave Walker David Pravec Dean Troyer Devin Carlen @@ -28,6 +30,7 @@ Gabe Westmaas Hisaharu Ishii Hisaki Ohara Ilya Alekseyev +Isaku Yamahata Jason Cannavale Jason Koelker Jay Pipes @@ -65,6 +68,7 @@ Nachi Ueno Naveed Massjouni Nirmal Ranganathan Paul Voccio +Renuka Apte Ricardo Carrillo Cruz Rick Clark Rick Harris @@ -81,6 +85,7 @@ Trey Morris Tushar Patil Vasiliy Shlykov Vishvananda Ishaya +Vivek Y S William Wolf Yoshiaki Tamura Youcef Laribi From 1114ffef4a9831ccf63616e627c774024bfb16d8 Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Tue, 31 May 2011 23:36:49 +0400 Subject: [PATCH 095/164] Moved everything from thread-local storage to class attributes --- nova/auth/ldapdriver.py | 38 +++++++++++--------------------------- nova/auth/manager.py | 14 +++----------- 2 files changed, 14 insertions(+), 38 deletions(-) diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index 9fe0165a1..91f412baa 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -26,7 +26,6 @@ public methods. import functools import sys -import threading from nova import exception from nova import flags @@ -106,7 +105,8 @@ class LdapDriver(object): isadmin_attribute = 'isNovaAdmin' project_attribute = 'owner' project_objectclass = 'groupOfNames' - __local = threading.local() + conn = None + mc = None def __init__(self): """Imports the LDAP module""" @@ -117,15 +117,22 @@ class LdapDriver(object): LdapDriver.project_attribute = 'projectManager' LdapDriver.project_objectclass = 'novaProject' self.__cache = None + if LdapDriver.conn is None: + LdapDriver.conn = self.ldap.initialize(FLAGS.ldap_url) + LdapDriver.conn.simple_bind_s(FLAGS.ldap_user_dn, FLAGS.ldap_password) + if LdapDriver.mc is None: + if FLAGS.memcached_servers: + import memcache + else: + from nova import fakememcache as memcache + LdapDriver.mc = memcache.Client(FLAGS.memcached_servers, debug=0) def __enter__(self): - """Creates the connection to LDAP""" # TODO(yorik-sar): Should be per-request cache, not per-driver-request self.__cache = {} return self def __exit__(self, exc_type, exc_value, traceback): - """Destroys the connection to LDAP""" self.__cache = None return False @@ -149,29 +156,6 @@ class LdapDriver(object): return inner return do_wrap - @property - def conn(self): - try: - return self.__local.conn - except AttributeError: - conn = self.ldap.initialize(FLAGS.ldap_url) - conn.simple_bind_s(FLAGS.ldap_user_dn, FLAGS.ldap_password) - self.__local.conn = conn - return conn - - @property - def mc(self): - try: - return self.__local.mc - except AttributeError: - if FLAGS.memcached_servers: - import memcache - else: - from nova import fakememcache as memcache - mc = memcache.Client(FLAGS.memcached_servers, debug=0) - self.__local.mc = mc - return mc - @sanitize @__local_cache('uid_user-%s') def get_user(self, uid): diff --git a/nova/auth/manager.py b/nova/auth/manager.py index c71f0f161..c887297f3 100644 --- a/nova/auth/manager.py +++ b/nova/auth/manager.py @@ -23,7 +23,6 @@ Nova authentication management import os import shutil import string # pylint: disable=W0402 -import threading import tempfile import uuid import zipfile @@ -207,7 +206,7 @@ class AuthManager(object): """ _instance = None - __local = threading.local() + mc = None def __new__(cls, *args, **kwargs): """Returns the AuthManager singleton""" @@ -224,19 +223,12 @@ class AuthManager(object): self.network_manager = utils.import_object(FLAGS.network_manager) if driver or not getattr(self, 'driver', None): self.driver = utils.import_class(driver or FLAGS.auth_driver) - - @property - def mc(self): - try: - return self.__local.mc - except AttributeError: + if AuthManager.mc is None: if FLAGS.memcached_servers: import memcache else: from nova import fakememcache as memcache - mc = memcache.Client(FLAGS.memcached_servers, debug=0) - self.__local.mc = mc - return mc + AuthManager.mc = memcache.Client(FLAGS.memcached_servers, debug=0) def authenticate(self, access, signature, params, verb='GET', server_string='127.0.0.1:8773', path='/', From feb3717c41adb9e12d78f83ba518a869d3b1da1e Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 31 May 2011 21:23:36 +0000 Subject: [PATCH 096/164] Fixing Scheduler Tests --- nova/tests/scheduler/test_scheduler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py index 54b3f80fb..b0f0e882a 100644 --- a/nova/tests/scheduler/test_scheduler.py +++ b/nova/tests/scheduler/test_scheduler.py @@ -61,7 +61,8 @@ class SchedulerTestCase(test.TestCase): """Test case for scheduler""" def setUp(self): super(SchedulerTestCase, self).setUp() - self.flags(scheduler_driver='nova.tests.test_scheduler.TestDriver') + driver = 'nova.tests.scheduler.test_scheduler.TestDriver' + self.flags(scheduler_driver=driver) def _create_compute_service(self): """Create compute-manager(ComputeNode and Service record).""" From 69d7e625cd12afc48c4126008202d0723ca5af79 Mon Sep 17 00:00:00 2001 From: Jason Cannavale Date: Tue, 31 May 2011 16:53:30 -0500 Subject: [PATCH 097/164] Incremented version of migration script to reflect changes in trunk. --- dist/nova-2011.3-py2.6.egg | Bin 1563180 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 dist/nova-2011.3-py2.6.egg diff --git a/dist/nova-2011.3-py2.6.egg b/dist/nova-2011.3-py2.6.egg deleted file mode 100644 index 8a8808d31668ab58e7ec9ec84b03f9311d5e5be7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1563180 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ý!`qMev~Y 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 F17(RAa#cK= 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%0DsajPPbq`2xsz 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

A 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 z zWbkJQT1~TcjcC86zIBRWjGUT;lP@5;98^o?FYFwccWf(@6SjD5xt6v!E)q&GJ~@`2 zF<5*dIZg2+gN;kvfxJ=XbU&qV%SjbA7E%j9zLP;kTdoTm`;CE3y%zYsJ>&MY~G8^PO=!r(-ZaZ%*p>={mH}INU;~Ny&7!Pm=$#oCaCj1%l^>zG})x5W|t26L` zlu*r<^WI!)%$Y7uM99oD6nqI)FH$CN?~@*{VpR@!X6b~qUtnu)%ZdGi3SoBNp?Ns@CN z;GMLA(^0mKr?NlHOv^0X6vm{8t!b~PErIQ@Q634S!ESYxG_fP7Lfuw#T4o|iB^ARo zJ?()LF^2{$!M^w6?RD)Wyz>~x|7t`lil^Sp(EJwrTl1{_zc!ozbgk)lA^Pc8_UMbS zO{yYxcLf3WM$LpkOFQnXYyy}+Bv=UprtOy(`{pv;JnX&Ihf<7aaxu>nx3l>euAQAA z)O`J{Jwow^D1s8@I~D?7xW09;I~gWZuRQdf-*BjQC`4cz^jyS8EQ6eJb*s-k7LV>W zDMZrJlc6>=W9M>e&iJN!ojIIVoC|(Df2^fw(pz&uZity(I35&^yfxt&V(yIE5D8*-e9 zgnj7QtV3Yx2k|XbZNpHKsRQJTAV`wfq*Pbil-Vv&h2jk%ckqGz|z=8jWY59zpx7^AL6-F=BQ}FG98}NyYh!POQUPkv76Z+c*dDlda ze!IJdh8EVXu84-Zsu&q@ELpnOKAnx|tiGB<^IVNkem44`1?4=y^w0b*+=^R;h+bR% zF8YXUVeI(htNE;VebzVu?=pskm;TY;b$~3Ktc-6YWY^QBQGQBYBc1Lv+)-1-m{hF6 z<&*rCjEX7PKy(-Z1&QI_#7Z?n4BFUmcxwRoGY1N@q-t=v}ijnN?lETv|cSMFrNduS$>-W?Ov(>>rN1|!W|lY z_pzbc@xPUL!Bw`JqzEXol{5Fq88@_B8_z8~zHboz&=0)g@MJoNhJO1xoHo9>GTP!% zA)!=A2m0tv8XOzE*gK-$y7QoUuhNqS0(x~+i85YCKYqB-BZdaJTE5<1Z?!~a5P&s-4A1wh#ffjq{?f0~a-_}aS*IuFZ`IU1YfuBzT;IAuTP=M446pq7i4W*kNLo;c6xPf zu@o8B{PIKETB=U}8;w}t)_so54l+0W7&%=61Nf%Lx0U}GP?2hs$XTPx7-|GeDsazoV)HF!5CKT0bTplZo50>8t$3puAPjnQBap8!J;1aRMCYFvei#OXFCt_~5TBCj3|4w;os*kh*?q8+*?~j^ z-<=du0x#gWXh%xvy1$lSQhIW@uW)O|X-t7y&=ydUmyC`oq`*!Lnw8yJeaN3{_L1&^ z{D|cv!gE6?@s&k(APl1WQ6qhs;h6_UcJ5+@Wl?4az^3xBD+U{E8N66@L-U~(E4nv} z#^y^z_<~mi@k{+dokncR=NSCdt`c2#Z;1%=Yed2}U)yg#@u~Qa1 z97Ols77nsZ&gqa}SHc@V0uGix(-?W|Z5X+9Cr{oO;6$dOj#XVR<$dST6 zRNMDiB{fe_a}D$@ax5x^I5a_lqDq1{m1a~7&9F{ z-w{%Ie+yF^52GsTj@FUc^@oOT_bEfr^||%Fk~1^~#ZOWuk`ML2eqHFhwZsmDEE%=3 znbydDa3rY(IX!;8$kgsLh@ck;R`*!-lmJ?R%Rqga{k zaVO;HM1X*145(11xLpz+E~4lG%nZuWvZ1>xgQP0CFGFJ-st9?$%mwiTWnkYElz~>TqHYm3$nDYE z$|OaHzrDXQn2WNmPT zgj~@QlC|(Tn1}rKFo8V5uf{%vG&b(TOv!nrTod zQrDLlzQcPANT>S@$4l@~?4LF@;YkG)pj#|V>7uaB*^7*SV1nOq-AQzVuT{oo_% zRqXbO;ID0_l10FXHNKofk;Q;p{@hU{-v<)EDf%Jzhgo?V;J!?Q-X`%=eeHXU@d_%K}36m)h?Gk%e*{$|0$<2^-xP2 z4xvetx}g-^xUo)Y1KgfRN9Tm*fOT6v@*YQBL1Px z;8L}Ri*ik(T&kWiL4IM;w3dyle(D3hZQYUicSuegHYgp|xp2iV z0T=z&qdJ-uSAk@&aoDhaz{Bpnd31&O17ZiX4VrhqF151^X8}$a9tMNq)$5uTXN64s~1i~l9+pf z&{)TS6tWm`Yee^3An(c>T6d*p>HeHRCxxDYVA!Cpt}Z&kBCA&h8w3RpzE9=g8@sg9 zi8)bvj7L{UQXbLfzeY3ha~QM9IK*h!`kCZ&Zen8v;g<@plrPYl?c&X-kLgneH3`DL#9|Xg5y676mE-Z~9o}S==>}x5S5(Ad zk7}ng#(@qRE))%YGAV;NYT=Y(oY?~yjs~7_9esCe80rnBSmE`9_%mhs-F2hYz-9_C zIZGIS1MZoafGs+5HzPQ>hfS&^{&rUa0x<)^x)~lxOYN&pwj@#}e-}b+|Ip%SQGdAN zSITr?Us=f%;AiHM6*dHJ0~f$1}R|{H%&v$rBEk^dF;2vI?iDJ z#pIvLj~)GoRpt7=dJwlH^3PogN@Kj0icWMlB`Nl{rSe(2An2S0d(BLrVUr^%oh#nz=MWKo~s(%q* zm+wxgm$^Px7C{J1z=J@_oR`|@k?w)svfmUy{LRI_3|D6oLOa6=*}E1W?!i4!guY40 z?y=F4;&0BuC@LdIRKdsZNhQxhKDnXhR6?F{uz(Kdi@EIrM&#E5r#sWQ^(FNX7GM3E z?;lMvwm3qZ+~Ftwt$+3U6xfdio=Qk~ufHYr@w5GiiCU+{=PvO?!4~#a=<;{fUhi>w4#(22QWiI3-ENlq_(%b zO1nsy#5AOP4z9;iA%EGX04(YA zN)!-7up?WQSU=@jtAU6WYAz#{g_aP3Ws(c=XjgjR=F`rinck3X$RPN;u;RG+e81j( z+&sRnH1Oa`tTxA9a;0S?BrJkf0?<6y`9cFS_|_!Cus)CsNzr=5X z?ULHUKHUH$?bh1>ZbGeIo^N5a!MlYuYltLW9w0yTnv?m?CV7`p&j3v4e;^CC==1Wv}Vu>uhCS_1Keh2)Cx z26X7zb4mtltOp%z9a~>-8bIAU^DZtE>0~nBArfN8Ka8>#lPRTe-Mw4Nof!W{h{P>q zF(z%dD6r-7c zJVw&AR~X0(on6%}7Ir$@-Mq51a)`~_BqO`V|M(P%ZJ!S|kF!orD9NuE*Bv)%9SrOV zs{PA63UtD)YiC6?xZ{-^n;F#S)vXU=ra1nIWsn_z${wx}jk$@iXzw_y#PptpR>pa| z;e^V@efuZzMxiiWw7@m8y#)=9doN{Rq*Ku%qndc5izM0q^FQS4|3s618Z2YQez{AB zzhGS2|F1{mzw-5eQA|2kMvi)hdX9R(&&igWmBIlF!gsb#9=*eXAtttd>lxn(cOiml zvF1E}-U?Rq9a(dH>1uM^VPNm=PKU)vG;E;#;X3duFTquW@=WzJD9dOfxQF0E-aNs3 ztH5Gl%wwd7yFWDjJX@Lk8r}y%x&(K&slE+!Mj={VZB3a6Uv$h1b#BXVej86K?oV-Q zCIfu49{|tDrcs_gPMAQ9SUzcFBf)w9h`&6k4?|fiM3|LT90db9biCY0(4>$g5W7rL z5PyOy{cJx9hFuP#^HII%9~>kVkhmGMQwD|u_xQ}lS%Wy*GE{=#^m{rbVLl@ND!I5M z*(|l}PszsUXUwQIOXImgONmjt0hu(VgVu(f>*tLOU3U^^%y&t0f;FQ_;!O`$QYN4Y zO?D6uFLpwHB=%$&Q}x^<#xZ92ktdK>j3g?hL%Skk+~IZ*ZDUdZSwnzVQ_)D}9LIOC zx2C0=$BRP;lUt1&$Jp|ZO?EajC-5xioJZ+V?;4L;3`ch@)xYt|FVJsY3tXjtz-Ifz zE-B(&q3MzcD|cn*O&~Za+ma#$&6C4ZCqy=bpo0%mqcJcd$P@54BLpSEH1i@*(9aNa zz%>=3E)>_gHq?@!uqg{kd?*o(caow*2$t6v;M$fYk1jBaIMI>#jlq zM9WAn0GFQuB&sk@P-|W(44Hc*K>^LZEwY<)gk<%Am5^F3x+sqU-3^0CI95(_>C3A; zkTYJe&B2)U#`fP;8prL^=kWOg+{M1%t|ud_1iqrDI`)PEF7?i%=!FR|K-Ek0Gu~a< zSXz1KX{$tRnsV&hZEkMrL(GABwO!6|ARy)+U*D-T}zdRgtuEo|9Cyc z8e38-AR12kGbG^Zf%h+#z9S~$A+{+FWJY2NBi}3GhO`ly#U>v`;e3R+kg+^V!Rnzo zSMkomaqa^i_wp)h3+M=o)1n7*W_{+N@++CE}GYbdwQoz_brOPHH7sf>C}Z>1lz2+xkzJZULpM!OO|NKmdc*aZ}XNm<%IARz0{ zB2TO|RH)MWR1r?DUtpSIf#HgHUsH5^%;2Z@xXH12JiqbZ{u|{=(i~F=$@%=-Ex-~5 zSyzV+e+)fz{;7Ip`u(N9tsMd9>un2yFOARwdjAyEJTGH|}% zWNj#G(jHOBLz*b?!y6F)vgNC@O`hN8>0)6H0FuN`WmK6#?-)?i+1KRYR;Xk_e@xzI z!uy=OgUfdR{u|>^bb|}Q63CH`R3a zKijKSMbwvpz1vKTcN6EpW^bTcR(Oz&QphML9Lo@|M*-e9t&Un>J;ZGBexUkk0lxyn^l6}z~G8C(eEg-Gi|c^s~*v9VuMXj-wGH<~ar zV#AZHB~kbeXJW;kgDy!R5*Xp&JMVS3Bc4mM^EI&AFj3Xd%uv7fg_*WG9v31`{P*b- zxDnNln2__y-sO-WcZC^3VLmOhg*pyuJb#HEuHtf^2~>r~m3I z)r`cPUC^C_xLkUUc;jzxxs7&IWcj{0=#ORjQlg)1j-^MV%isJw4OH-PW$~|6)b3DE z!>^BA@p(jPADXEh;e#ySbfT*6zCJS4x$^fUk@no9pM}~AQ6@)C715kF(+To;DHHR= z9cQ_rguR468Z1z7Qd|KnH5SkKAwze81n zA=N1xtPzx)t)mc8xp=}g>CEOaWiw15KT$0DMLea%;{h>sR?9l1cxB!??W^d)x=}56 z6H|$xMS-Q~cnSEfW7XUd9FOrL-kUdIdze^jBU)|

MPK7qrJE6C#55rolJ_kD~_S=gR%HYx@_zme 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

A_V!k>VsC-7ArZ4_X& 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 z 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 n{MtQjwZa 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

-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

Hh#;e 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ⅇ~^xrWyiyjk9`u@_Yyd_>v0CUJgb5 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 Vpgh6(E6M_8PuLlHTpN}1{{!sg;W_{S From c34f1781b69752216e9c63b24a55f0f9d4950f2a Mon Sep 17 00:00:00 2001 From: Jason Cannavale Date: Tue, 31 May 2011 16:59:30 -0500 Subject: [PATCH 098/164] Incremented version of migration script to reflect changes in trunk. --- nova.egg-info/PKG-INFO | 10 - nova.egg-info/SOURCES.txt | 641 ----------------------------- nova.egg-info/dependency_links.txt | 1 - nova.egg-info/top_level.txt | 1 - 4 files changed, 653 deletions(-) delete mode 100644 nova.egg-info/PKG-INFO delete mode 100644 nova.egg-info/SOURCES.txt delete mode 100644 nova.egg-info/dependency_links.txt delete mode 100644 nova.egg-info/top_level.txt diff --git a/nova.egg-info/PKG-INFO b/nova.egg-info/PKG-INFO deleted file mode 100644 index 66fe27559..000000000 --- a/nova.egg-info/PKG-INFO +++ /dev/null @@ -1,10 +0,0 @@ -Metadata-Version: 1.0 -Name: nova -Version: 2011.3 -Summary: cloud computing fabric controller -Home-page: http://www.openstack.org/ -Author: OpenStack -Author-email: nova@lists.launchpad.net -License: UNKNOWN -Description: UNKNOWN -Platform: UNKNOWN diff --git a/nova.egg-info/SOURCES.txt b/nova.egg-info/SOURCES.txt deleted file mode 100644 index f45cd523a..000000000 --- a/nova.egg-info/SOURCES.txt +++ /dev/null @@ -1,641 +0,0 @@ -Authors -HACKING -LICENSE -MANIFEST.in -README -builddeb.sh -pylintrc -run_tests.py -run_tests.sh -setup.cfg -setup.py -bin/nova-ajax-console-proxy -bin/nova-api -bin/nova-compute -bin/nova-console -bin/nova-dhcpbridge -bin/nova-direct-api -bin/nova-import-canonical-imagestore -bin/nova-instancemonitor -bin/nova-logspool -bin/nova-manage -bin/nova-network -bin/nova-objectstore -bin/nova-scheduler -bin/nova-spoolsentry -bin/nova-vncproxy -bin/nova-volume -bin/stack -bzrplugins/novalog/__init__.py -contrib/nova.sh -contrib/boto_v6/__init__.py -contrib/boto_v6/ec2/__init__.py -contrib/boto_v6/ec2/connection.py -contrib/boto_v6/ec2/instance.py -doc/.autogenerated -doc/Makefile -doc/README.rst -doc/find_autodoc_modules.sh -doc/generate_autodoc_index.sh -doc/build/.placeholder -doc/build/html/.buildinfo -doc/ext/__init__.py -doc/ext/nova_autodoc.py -doc/ext/nova_todo.py -doc/source/cloud101.rst -doc/source/code.rst -doc/source/community.rst -doc/source/conf.py -doc/source/conf_back.py -doc/source/index.rst -doc/source/installer.rst -doc/source/livecd.rst -doc/source/nova.concepts.rst -doc/source/object.model.rst -doc/source/quickstart.rst -doc/source/service.architecture.rst -doc/source/vmwareapi_readme.rst -doc/source/_ga/layout.html -doc/source/_static/.placeholder -doc/source/_static/jquery.tweet.js -doc/source/_static/tweaks.css -doc/source/_templates/.placeholder -doc/source/_theme/layout.html -doc/source/_theme/theme.conf -doc/source/api/autoindex.rst -doc/source/api/nova..adminclient.rst -doc/source/api/nova..api.direct.rst -doc/source/api/nova..api.ec2.admin.rst -doc/source/api/nova..api.ec2.apirequest.rst -doc/source/api/nova..api.ec2.cloud.rst -doc/source/api/nova..api.ec2.metadatarequesthandler.rst -doc/source/api/nova..api.openstack.auth.rst -doc/source/api/nova..api.openstack.backup_schedules.rst -doc/source/api/nova..api.openstack.common.rst -doc/source/api/nova..api.openstack.consoles.rst -doc/source/api/nova..api.openstack.faults.rst -doc/source/api/nova..api.openstack.flavors.rst -doc/source/api/nova..api.openstack.images.rst -doc/source/api/nova..api.openstack.servers.rst -doc/source/api/nova..api.openstack.shared_ip_groups.rst -doc/source/api/nova..api.openstack.zones.rst -doc/source/api/nova..auth.dbdriver.rst -doc/source/api/nova..auth.fakeldap.rst -doc/source/api/nova..auth.ldapdriver.rst -doc/source/api/nova..auth.manager.rst -doc/source/api/nova..auth.signer.rst -doc/source/api/nova..cloudpipe.pipelib.rst -doc/source/api/nova..compute.api.rst -doc/source/api/nova..compute.instance_types.rst -doc/source/api/nova..compute.manager.rst -doc/source/api/nova..compute.monitor.rst -doc/source/api/nova..compute.power_state.rst -doc/source/api/nova..console.api.rst -doc/source/api/nova..console.fake.rst -doc/source/api/nova..console.manager.rst -doc/source/api/nova..console.xvp.rst -doc/source/api/nova..context.rst -doc/source/api/nova..crypto.rst -doc/source/api/nova..db.api.rst -doc/source/api/nova..db.base.rst -doc/source/api/nova..db.migration.rst -doc/source/api/nova..db.sqlalchemy.api.rst -doc/source/api/nova..db.sqlalchemy.migrate_repo.manage.rst -doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst -doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst -doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -doc/source/api/nova..db.sqlalchemy.migrate_repo.versions.007_add_instance_types.rst -doc/source/api/nova..db.sqlalchemy.migration.rst -doc/source/api/nova..db.sqlalchemy.models.rst -doc/source/api/nova..db.sqlalchemy.session.rst -doc/source/api/nova..exception.rst -doc/source/api/nova..fakememcache.rst -doc/source/api/nova..fakerabbit.rst -doc/source/api/nova..flags.rst -doc/source/api/nova..image.glance.rst -doc/source/api/nova..image.local.rst -doc/source/api/nova..image.s3.rst -doc/source/api/nova..image.service.rst -doc/source/api/nova..log.rst -doc/source/api/nova..manager.rst -doc/source/api/nova..network.api.rst -doc/source/api/nova..network.linux_net.rst -doc/source/api/nova..network.manager.rst -doc/source/api/nova..objectstore.bucket.rst -doc/source/api/nova..objectstore.handler.rst -doc/source/api/nova..objectstore.image.rst -doc/source/api/nova..objectstore.stored.rst -doc/source/api/nova..quota.rst -doc/source/api/nova..rpc.rst -doc/source/api/nova..scheduler.chance.rst -doc/source/api/nova..scheduler.driver.rst -doc/source/api/nova..scheduler.manager.rst -doc/source/api/nova..scheduler.simple.rst -doc/source/api/nova..scheduler.zone.rst -doc/source/api/nova..service.rst -doc/source/api/nova..test.rst -doc/source/api/nova..tests.api.openstack.fakes.rst -doc/source/api/nova..tests.api.openstack.test_adminapi.rst -doc/source/api/nova..tests.api.openstack.test_api.rst -doc/source/api/nova..tests.api.openstack.test_auth.rst -doc/source/api/nova..tests.api.openstack.test_common.rst -doc/source/api/nova..tests.api.openstack.test_faults.rst -doc/source/api/nova..tests.api.openstack.test_flavors.rst -doc/source/api/nova..tests.api.openstack.test_images.rst -doc/source/api/nova..tests.api.openstack.test_ratelimiting.rst -doc/source/api/nova..tests.api.openstack.test_servers.rst -doc/source/api/nova..tests.api.openstack.test_shared_ip_groups.rst -doc/source/api/nova..tests.api.openstack.test_zones.rst -doc/source/api/nova..tests.api.test_wsgi.rst -doc/source/api/nova..tests.db.fakes.rst -doc/source/api/nova..tests.declare_flags.rst -doc/source/api/nova..tests.fake_flags.rst -doc/source/api/nova..tests.glance.stubs.rst -doc/source/api/nova..tests.hyperv_unittest.rst -doc/source/api/nova..tests.objectstore_unittest.rst -doc/source/api/nova..tests.real_flags.rst -doc/source/api/nova..tests.runtime_flags.rst -doc/source/api/nova..tests.test_access.rst -doc/source/api/nova..tests.test_api.rst -doc/source/api/nova..tests.test_auth.rst -doc/source/api/nova..tests.test_cloud.rst -doc/source/api/nova..tests.test_compute.rst -doc/source/api/nova..tests.test_console.rst -doc/source/api/nova..tests.test_direct.rst -doc/source/api/nova..tests.test_flags.rst -doc/source/api/nova..tests.test_instance_types.rst -doc/source/api/nova..tests.test_localization.rst -doc/source/api/nova..tests.test_log.rst -doc/source/api/nova..tests.test_middleware.rst -doc/source/api/nova..tests.test_misc.rst -doc/source/api/nova..tests.test_network.rst -doc/source/api/nova..tests.test_quota.rst -doc/source/api/nova..tests.test_rpc.rst -doc/source/api/nova..tests.test_scheduler.rst -doc/source/api/nova..tests.test_service.rst -doc/source/api/nova..tests.test_test.rst -doc/source/api/nova..tests.test_twistd.rst -doc/source/api/nova..tests.test_utils.rst -doc/source/api/nova..tests.test_virt.rst -doc/source/api/nova..tests.test_volume.rst -doc/source/api/nova..tests.test_xenapi.rst -doc/source/api/nova..tests.xenapi.stubs.rst -doc/source/api/nova..twistd.rst -doc/source/api/nova..utils.rst -doc/source/api/nova..version.rst -doc/source/api/nova..virt.connection.rst -doc/source/api/nova..virt.disk.rst -doc/source/api/nova..virt.fake.rst -doc/source/api/nova..virt.hyperv.rst -doc/source/api/nova..virt.images.rst -doc/source/api/nova..virt.libvirt_conn.rst -doc/source/api/nova..virt.xenapi.fake.rst -doc/source/api/nova..virt.xenapi.network_utils.rst -doc/source/api/nova..virt.xenapi.vm_utils.rst -doc/source/api/nova..virt.xenapi.vmops.rst -doc/source/api/nova..virt.xenapi.volume_utils.rst -doc/source/api/nova..virt.xenapi.volumeops.rst -doc/source/api/nova..virt.xenapi_conn.rst -doc/source/api/nova..volume.api.rst -doc/source/api/nova..volume.driver.rst -doc/source/api/nova..volume.manager.rst -doc/source/api/nova..volume.san.rst -doc/source/api/nova..wsgi.rst -doc/source/devref/addmethod.openstackapi.rst -doc/source/devref/api.rst -doc/source/devref/architecture.rst -doc/source/devref/auth.rst -doc/source/devref/cloudpipe.rst -doc/source/devref/compute.rst -doc/source/devref/database.rst -doc/source/devref/development.environment.rst -doc/source/devref/down.sh -doc/source/devref/fakes.rst -doc/source/devref/glance.rst -doc/source/devref/index.rst -doc/source/devref/interfaces -doc/source/devref/modules.rst -doc/source/devref/network.rst -doc/source/devref/nova.rst -doc/source/devref/objectstore.rst -doc/source/devref/rabbit.rst -doc/source/devref/rc.local -doc/source/devref/scheduler.rst -doc/source/devref/server.conf.template -doc/source/devref/services.rst -doc/source/devref/up.sh -doc/source/devref/volume.rst -doc/source/devref/zone.rst -doc/source/images/NOVA_ARCH.png -doc/source/images/NOVA_ARCH.svg -doc/source/images/NOVA_ARCH_200dpi.png -doc/source/images/NOVA_ARCH_66dpi.png -doc/source/images/NOVA_clouds_A_B.png -doc/source/images/NOVA_clouds_A_B.svg -doc/source/images/NOVA_clouds_C1_C2.svg -doc/source/images/NOVA_clouds_C1_C2.svg.png -doc/source/images/Novadiagram.png -doc/source/images/cloudpipe.png -doc/source/images/fabric.png -doc/source/images/novascreens.png -doc/source/images/novashvirtually.png -doc/source/images/vmwareapi_blockdiagram.jpg -doc/source/images/rabbit/arch.png -doc/source/images/rabbit/arch.svg -doc/source/images/rabbit/flow1.png -doc/source/images/rabbit/flow1.svg -doc/source/images/rabbit/flow2.png -doc/source/images/rabbit/flow2.svg -doc/source/images/rabbit/rabt.png -doc/source/images/rabbit/rabt.svg -doc/source/images/rabbit/state.png -doc/source/man/novamanage.rst -doc/source/runnova/binaries.rst -doc/source/runnova/euca2ools.rst -doc/source/runnova/flags.rst -doc/source/runnova/getting.started.rst -doc/source/runnova/index.rst -doc/source/runnova/managing.images.rst -doc/source/runnova/managing.instance.types.rst -doc/source/runnova/managing.instances.rst -doc/source/runnova/managing.networks.rst -doc/source/runnova/managing.projects.rst -doc/source/runnova/managing.users.rst -doc/source/runnova/managingsecurity.rst -doc/source/runnova/monitoring.rst -doc/source/runnova/network.flat.rst -doc/source/runnova/network.vlan.rst -doc/source/runnova/nova.manage.rst -doc/source/runnova/vncconsole.rst -etc/nova/api-paste.ini -nova/__init__.py -nova/context.py -nova/crypto.py -nova/exception.py -nova/fakememcache.py -nova/fakerabbit.py -nova/flags.py -nova/log.py -nova/manager.py -nova/quota.py -nova/rpc.py -nova/service.py -nova/test.py -nova/twistd.py -nova/utils.py -nova/vcsversion.py -nova/version.py -nova/wsgi.py -nova.egg-info/PKG-INFO -nova.egg-info/SOURCES.txt -nova.egg-info/dependency_links.txt -nova.egg-info/top_level.txt -nova/CA/.gitignore -nova/CA/geninter.sh -nova/CA/genrootca.sh -nova/CA/genvpn.sh -nova/CA/openssl.cnf.tmpl -nova/CA/newcerts/.placeholder -nova/CA/private/.placeholder -nova/CA/projects/.gitignore -nova/CA/projects/.placeholder -nova/CA/reqs/.gitignore -nova/CA/reqs/.placeholder -nova/api/__init__.py -nova/api/direct.py -nova/api/ec2/__init__.py -nova/api/ec2/admin.py -nova/api/ec2/apirequest.py -nova/api/ec2/cloud.py -nova/api/ec2/ec2utils.py -nova/api/ec2/metadatarequesthandler.py -nova/api/openstack/__init__.py -nova/api/openstack/accounts.py -nova/api/openstack/auth.py -nova/api/openstack/backup_schedules.py -nova/api/openstack/common.py -nova/api/openstack/consoles.py -nova/api/openstack/extensions.py -nova/api/openstack/faults.py -nova/api/openstack/flavors.py -nova/api/openstack/image_metadata.py -nova/api/openstack/images.py -nova/api/openstack/ips.py -nova/api/openstack/limits.py -nova/api/openstack/notes.txt -nova/api/openstack/server_metadata.py -nova/api/openstack/servers.py -nova/api/openstack/shared_ip_groups.py -nova/api/openstack/users.py -nova/api/openstack/versions.py -nova/api/openstack/zones.py -nova/api/openstack/contrib/__init__.py -nova/api/openstack/contrib/volumes.py -nova/api/openstack/ratelimiting/__init__.py -nova/api/openstack/views/__init__.py -nova/api/openstack/views/addresses.py -nova/api/openstack/views/flavors.py -nova/api/openstack/views/images.py -nova/api/openstack/views/limits.py -nova/api/openstack/views/servers.py -nova/api/openstack/views/versions.py -nova/auth/__init__.py -nova/auth/dbdriver.py -nova/auth/fakeldap.py -nova/auth/ldapdriver.py -nova/auth/manager.py -nova/auth/nova_openldap.schema -nova/auth/nova_sun.schema -nova/auth/novarc.template -nova/auth/opendj.sh -nova/auth/openssh-lpk_openldap.schema -nova/auth/openssh-lpk_sun.schema -nova/auth/signer.py -nova/auth/slap.sh -nova/cloudpipe/__init__.py -nova/cloudpipe/bootscript.template -nova/cloudpipe/client.ovpn.template -nova/cloudpipe/pipelib.py -nova/compute/__init__.py -nova/compute/api.py -nova/compute/fakevirtinstance.xml -nova/compute/instance_types.py -nova/compute/manager.py -nova/compute/monitor.py -nova/compute/power_state.py -nova/console/__init__.py -nova/console/api.py -nova/console/fake.py -nova/console/manager.py -nova/console/vmrc.py -nova/console/vmrc_manager.py -nova/console/xvp.conf.template -nova/console/xvp.py -nova/db/__init__.py -nova/db/api.py -nova/db/base.py -nova/db/migration.py -nova/db/sqlalchemy/__init__.py -nova/db/sqlalchemy/api.py -nova/db/sqlalchemy/migration.py -nova/db/sqlalchemy/models.py -nova/db/sqlalchemy/session.py -nova/db/sqlalchemy/migrate_repo/README -nova/db/sqlalchemy/migrate_repo/__init__.py -nova/db/sqlalchemy/migrate_repo/manage.py -nova/db/sqlalchemy/migrate_repo/migrate.cfg -nova/db/sqlalchemy/migrate_repo/versions/001_austin.py -nova/db/sqlalchemy/migrate_repo/versions/002_bexar.py -nova/db/sqlalchemy/migrate_repo/versions/003_add_label_to_networks.py -nova/db/sqlalchemy/migrate_repo/versions/004_add_zone_tables.py -nova/db/sqlalchemy/migrate_repo/versions/005_add_instance_metadata.py -nova/db/sqlalchemy/migrate_repo/versions/006_add_provider_data_to_volumes.py -nova/db/sqlalchemy/migrate_repo/versions/007_add_ipv6_to_fixed_ips.py -nova/db/sqlalchemy/migrate_repo/versions/008_add_instance_types.py -nova/db/sqlalchemy/migrate_repo/versions/009_add_instance_migrations.py -nova/db/sqlalchemy/migrate_repo/versions/010_add_os_type_to_instances.py -nova/db/sqlalchemy/migrate_repo/versions/011_live_migration.py -nova/db/sqlalchemy/migrate_repo/versions/012_add_ipv6_flatmanager.py -nova/db/sqlalchemy/migrate_repo/versions/013_add_flavors_to_migrations.py -nova/db/sqlalchemy/migrate_repo/versions/014_add_instance_type_id_to_instances.py -nova/db/sqlalchemy/migrate_repo/versions/015_add_auto_assign_to_floating_ips.py -nova/db/sqlalchemy/migrate_repo/versions/016_make_quotas_key_and_value.py -nova/db/sqlalchemy/migrate_repo/versions/017_make_instance_type_id_an_integer.py -nova/db/sqlalchemy/migrate_repo/versions/018_rename_server_management_url.py -nova/db/sqlalchemy/migrate_repo/versions/019_add_volume_snapshot_support.py -nova/db/sqlalchemy/migrate_repo/versions/020_add_snapshot_id_to_volumes.py -nova/db/sqlalchemy/migrate_repo/versions/021_set_engine_mysql_innodb.py -nova/db/sqlalchemy/migrate_repo/versions/__init__.py -nova/image/__init__.py -nova/image/fake.py -nova/image/glance.py -nova/image/local.py -nova/image/s3.py -nova/image/service.py -nova/ipv6/__init__.py -nova/ipv6/account_identifier.py -nova/ipv6/api.py -nova/ipv6/rfc2462.py -nova/network/__init__.py -nova/network/api.py -nova/network/linux_net.py -nova/network/manager.py -nova/network/vmwareapi_net.py -nova/network/xenapi_net.py -nova/notifier/__init__.py -nova/notifier/api.py -nova/notifier/log_notifier.py -nova/notifier/no_op_notifier.py -nova/notifier/rabbit_notifier.py -nova/objectstore/__init__.py -nova/objectstore/s3server.py -nova/scheduler/__init__.py -nova/scheduler/api.py -nova/scheduler/chance.py -nova/scheduler/driver.py -nova/scheduler/host_filter.py -nova/scheduler/manager.py -nova/scheduler/simple.py -nova/scheduler/zone.py -nova/scheduler/zone_aware_scheduler.py -nova/scheduler/zone_manager.py -nova/tests/__init__.py -nova/tests/declare_flags.py -nova/tests/fake_flags.py -nova/tests/fake_utils.py -nova/tests/hyperv_unittest.py -nova/tests/runtime_flags.py -nova/tests/test_access.py -nova/tests/test_api.py -nova/tests/test_auth.py -nova/tests/test_cloud.py -nova/tests/test_compute.py -nova/tests/test_console.py -nova/tests/test_crypto.py -nova/tests/test_direct.py -nova/tests/test_exception.py -nova/tests/test_flags.py -nova/tests/test_flat_network.py -nova/tests/test_host_filter.py -nova/tests/test_instance_types.py -nova/tests/test_ipv6.py -nova/tests/test_libvirt.py -nova/tests/test_localization.py -nova/tests/test_log.py -nova/tests/test_middleware.py -nova/tests/test_misc.py -nova/tests/test_network.py -nova/tests/test_notifier.py -nova/tests/test_objectstore.py -nova/tests/test_quota.py -nova/tests/test_rpc.py -nova/tests/test_scheduler.py -nova/tests/test_service.py -nova/tests/test_test.py -nova/tests/test_twistd.py -nova/tests/test_utils.py -nova/tests/test_vlan_network.py -nova/tests/test_vmwareapi.py -nova/tests/test_volume.py -nova/tests/test_xenapi.py -nova/tests/test_zone_aware_scheduler.py -nova/tests/test_zones.py -nova/tests/CA/cacert.pem -nova/tests/CA/private/cakey.pem -nova/tests/api/__init__.py -nova/tests/api/test_wsgi.py -nova/tests/api/openstack/__init__.py -nova/tests/api/openstack/common.py -nova/tests/api/openstack/fakes.py -nova/tests/api/openstack/test_accounts.py -nova/tests/api/openstack/test_adminapi.py -nova/tests/api/openstack/test_api.py -nova/tests/api/openstack/test_auth.py -nova/tests/api/openstack/test_common.py -nova/tests/api/openstack/test_extensions.py -nova/tests/api/openstack/test_faults.py -nova/tests/api/openstack/test_flavors.py -nova/tests/api/openstack/test_image_metadata.py -nova/tests/api/openstack/test_images.py -nova/tests/api/openstack/test_limits.py -nova/tests/api/openstack/test_server_metadata.py -nova/tests/api/openstack/test_servers.py -nova/tests/api/openstack/test_shared_ip_groups.py -nova/tests/api/openstack/test_users.py -nova/tests/api/openstack/test_versions.py -nova/tests/api/openstack/test_zones.py -nova/tests/api/openstack/extensions/__init__.py -nova/tests/api/openstack/extensions/foxinsocks.py -nova/tests/bundle/1mb.manifest.xml -nova/tests/bundle/1mb.no_kernel_or_ramdisk.manifest.xml -nova/tests/bundle/1mb.part.0 -nova/tests/bundle/1mb.part.1 -nova/tests/db/__init__.py -nova/tests/db/fakes.py -nova/tests/db/nova.austin.sqlite -nova/tests/glance/__init__.py -nova/tests/glance/stubs.py -nova/tests/image/__init__.py -nova/tests/image/test_glance.py -nova/tests/integrated/__init__.py -nova/tests/integrated/integrated_helpers.py -nova/tests/integrated/test_extensions.py -nova/tests/integrated/test_login.py -nova/tests/integrated/test_servers.py -nova/tests/integrated/test_volumes.py -nova/tests/integrated/test_xml.py -nova/tests/integrated/api/__init__.py -nova/tests/integrated/api/client.py -nova/tests/network/__init__.py -nova/tests/network/base.py -nova/tests/public_key/dummy.fingerprint -nova/tests/public_key/dummy.pub -nova/tests/vmwareapi/__init__.py -nova/tests/vmwareapi/db_fakes.py -nova/tests/vmwareapi/stubs.py -nova/tests/xenapi/__init__.py -nova/tests/xenapi/stubs.py -nova/virt/__init__.py -nova/virt/connection.py -nova/virt/cpuinfo.xml.template -nova/virt/disk.py -nova/virt/driver.py -nova/virt/fake.py -nova/virt/hyperv.py -nova/virt/images.py -nova/virt/interfaces.template -nova/virt/libvirt.xml.template -nova/virt/vmwareapi_conn.py -nova/virt/xenapi_conn.py -nova/virt/libvirt/__init__.py -nova/virt/libvirt/connection.py -nova/virt/libvirt/firewall.py -nova/virt/libvirt/netutils.py -nova/virt/vmwareapi/__init__.py -nova/virt/vmwareapi/error_util.py -nova/virt/vmwareapi/fake.py -nova/virt/vmwareapi/io_util.py -nova/virt/vmwareapi/network_utils.py -nova/virt/vmwareapi/read_write_util.py -nova/virt/vmwareapi/vim.py -nova/virt/vmwareapi/vim_util.py -nova/virt/vmwareapi/vm_util.py -nova/virt/vmwareapi/vmops.py -nova/virt/vmwareapi/vmware_images.py -nova/virt/xenapi/__init__.py -nova/virt/xenapi/fake.py -nova/virt/xenapi/network_utils.py -nova/virt/xenapi/vm_utils.py -nova/virt/xenapi/vmops.py -nova/virt/xenapi/volume_utils.py -nova/virt/xenapi/volumeops.py -nova/vnc/__init__.py -nova/vnc/auth.py -nova/vnc/proxy.py -nova/volume/__init__.py -nova/volume/api.py -nova/volume/driver.py -nova/volume/manager.py -nova/volume/san.py -plugins/xenserver/doc/networking.rst -plugins/xenserver/networking/etc/init.d/host-rules -plugins/xenserver/networking/etc/xensource/scripts/vif_5.6-fp1.patch -plugins/xenserver/networking/etc/xensource/scripts/vif_rules.py -plugins/xenserver/xenapi/README -plugins/xenserver/xenapi/etc/xapi.d/plugins/agent -plugins/xenserver/xenapi/etc/xapi.d/plugins/glance -plugins/xenserver/xenapi/etc/xapi.d/plugins/migration -plugins/xenserver/xenapi/etc/xapi.d/plugins/objectstore -plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py -plugins/xenserver/xenapi/etc/xapi.d/plugins/xenhost -plugins/xenserver/xenapi/etc/xapi.d/plugins/xenstore.py -po/ast.po -po/cs.po -po/da.po -po/de.po -po/es.po -po/it.po -po/ja.po -po/nova.pot -po/pt_BR.po -po/ru.po -po/uk.po -po/zh_CN.po -smoketests/__init__.py -smoketests/base.py -smoketests/flags.py -smoketests/openwrt-x86-ext2.image -smoketests/openwrt-x86-vmlinuz -smoketests/proxy.sh -smoketests/public_network_smoketests.py -smoketests/run_tests.py -smoketests/test_admin.py -smoketests/test_netadmin.py -smoketests/test_sysadmin.py -tools/clean-vlans -tools/euca-get-ajax-console -tools/eventlet-patch -tools/install_venv.py -tools/nova-debug -tools/pip-requires -tools/setup_iptables.sh -tools/with_venv.sh -tools/ajaxterm/README.txt -tools/ajaxterm/ajaxterm.1 -tools/ajaxterm/ajaxterm.css -tools/ajaxterm/ajaxterm.html -tools/ajaxterm/ajaxterm.js -tools/ajaxterm/ajaxterm.py -tools/ajaxterm/configure -tools/ajaxterm/configure.ajaxterm.bin -tools/ajaxterm/configure.initd.debian -tools/ajaxterm/configure.initd.gentoo -tools/ajaxterm/configure.initd.redhat -tools/ajaxterm/configure.makefile -tools/ajaxterm/qweb.py -tools/ajaxterm/sarissa.js -tools/ajaxterm/sarissa_dhtml.js -tools/esx/guest_tool.py \ No newline at end of file diff --git a/nova.egg-info/dependency_links.txt b/nova.egg-info/dependency_links.txt deleted file mode 100644 index 8b1378917..000000000 --- a/nova.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/nova.egg-info/top_level.txt b/nova.egg-info/top_level.txt deleted file mode 100644 index 31c787fdd..000000000 --- a/nova.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -nova From 2041b586f8f5f5bc781639726f2a8d4e7c8ce9ba Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Wed, 1 Jun 2011 10:17:00 -0400 Subject: [PATCH 099/164] pep8 fixes --- nova/log.py | 2 +- nova/tests/test_notifier.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/nova/log.py b/nova/log.py index 960598b14..6909916a1 100644 --- a/nova/log.py +++ b/nova/log.py @@ -272,7 +272,7 @@ class PublishErrorsHandler(logging.Handler): def emit(self, record): nova.notifier.api.notify('nova.error.publisher', 'error_notification', nova.notifier.api.ERROR, dict(error=record.msg)) - + def handle_exception(type, value, tb): extra = {} diff --git a/nova/tests/test_notifier.py b/nova/tests/test_notifier.py index 523f38f24..64b799a2c 100644 --- a/nova/tests/test_notifier.py +++ b/nova/tests/test_notifier.py @@ -122,12 +122,13 @@ class NotifierTestCase(test.TestCase): self.stubs.Set(nova.flags.FLAGS, 'publish_errors', True) LOG = log.getLogger('nova') LOG.setup_from_flags() - msgs = [] + def mock_cast(context, topic, data): msgs.append(data) - self.stubs.Set(nova.rpc, 'cast', mock_cast) - LOG.error('foo'); + + self.stubs.Set(nova.rpc, 'cast', mock_cast) + LOG.error('foo') self.assertEqual(1, len(msgs)) msg = msgs[0] self.assertEqual(msg['event_type'], 'error_notification') From 2056cc7000304af062a7da35a9ae0d5b317a66f0 Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Wed, 1 Jun 2011 18:32:49 +0400 Subject: [PATCH 100/164] Moved memcached driver import to the top of modules. --- nova/auth/ldapdriver.py | 10 ++++++---- nova/auth/manager.py | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index 91f412baa..e26a360af 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -69,6 +69,12 @@ flags.DEFINE_string('ldap_developer', LOG = logging.getLogger("nova.ldapdriver") +if FLAGS.memcached_servers: + import memcache +else: + from nova import fakememcache as memcache + + # TODO(vish): make an abstract base class with the same public methods # to define a set interface for AuthDrivers. I'm delaying # creating this now because I'm expecting an auth refactor @@ -121,10 +127,6 @@ class LdapDriver(object): LdapDriver.conn = self.ldap.initialize(FLAGS.ldap_url) LdapDriver.conn.simple_bind_s(FLAGS.ldap_user_dn, FLAGS.ldap_password) if LdapDriver.mc is None: - if FLAGS.memcached_servers: - import memcache - else: - from nova import fakememcache as memcache LdapDriver.mc = memcache.Client(FLAGS.memcached_servers, debug=0) def __enter__(self): diff --git a/nova/auth/manager.py b/nova/auth/manager.py index c887297f3..98c7dd263 100644 --- a/nova/auth/manager.py +++ b/nova/auth/manager.py @@ -73,6 +73,12 @@ flags.DEFINE_string('auth_driver', 'nova.auth.dbdriver.DbDriver', LOG = logging.getLogger('nova.auth.manager') +if FLAGS.memcached_servers: + import memcache +else: + from nova import fakememcache as memcache + + class AuthBase(object): """Base class for objects relating to auth @@ -224,10 +230,6 @@ class AuthManager(object): if driver or not getattr(self, 'driver', None): self.driver = utils.import_class(driver or FLAGS.auth_driver) if AuthManager.mc is None: - if FLAGS.memcached_servers: - import memcache - else: - from nova import fakememcache as memcache AuthManager.mc = memcache.Client(FLAGS.memcached_servers, debug=0) def authenticate(self, access, signature, params, verb='GET', From 5ee23cd1dc45a19a25d53a366273941cd35d4c2e Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Wed, 1 Jun 2011 18:34:54 +0400 Subject: [PATCH 101/164] PEP8 fix. --- nova/auth/ldapdriver.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index e26a360af..95e31ae3b 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -125,7 +125,8 @@ class LdapDriver(object): self.__cache = None if LdapDriver.conn is None: LdapDriver.conn = self.ldap.initialize(FLAGS.ldap_url) - LdapDriver.conn.simple_bind_s(FLAGS.ldap_user_dn, FLAGS.ldap_password) + LdapDriver.conn.simple_bind_s(FLAGS.ldap_user_dn, + FLAGS.ldap_password) if LdapDriver.mc is None: LdapDriver.mc = memcache.Client(FLAGS.memcached_servers, debug=0) From 8643c1690af3ebb8fa12729436d81ac5c049a3cc Mon Sep 17 00:00:00 2001 From: William Wolf Date: Wed, 1 Jun 2011 10:37:54 -0400 Subject: [PATCH 102/164] fix pep8 issues --- nova/scheduler/host_filter.py | 3 +-- nova/tests/test_host_filter.py | 14 +++++--------- nova/tests/test_zone_aware_scheduler.py | 10 +++------- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 4260cbf42..8827db4d4 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -226,8 +226,7 @@ class JsonFilter(HostFilter): required_disk = instance_type['local_gb'] query = ['and', ['>=', '$compute.host_memory_free', required_ram], - ['>=', '$compute.disk_available', required_disk] - ] + ['>=', '$compute.disk_available', required_disk]] return (self._full_name(), json.dumps(query)) def _parse_string(self, string, host, services): diff --git a/nova/tests/test_host_filter.py b/nova/tests/test_host_filter.py index 07817cc5a..098ebff3d 100644 --- a/nova/tests/test_host_filter.py +++ b/nova/tests/test_host_filter.py @@ -133,13 +133,11 @@ class HostFilterTestCase(test.TestCase): raw = ['or', ['and', ['<', '$compute.host_memory_free', 30], - ['<', '$compute.disk_available', 300] - ], + ['<', '$compute.disk_available', 300]], ['and', ['>', '$compute.host_memory_free', 70], - ['>', '$compute.disk_available', 700] - ] - ] + ['>', '$compute.disk_available', 700]]] + cooked = json.dumps(raw) hosts = hf.filter_hosts(self.zone_manager, cooked) @@ -183,13 +181,11 @@ class HostFilterTestCase(test.TestCase): self.assertTrue(hf.filter_hosts(self.zone_manager, json.dumps([]))) self.assertTrue(hf.filter_hosts(self.zone_manager, json.dumps({}))) self.assertTrue(hf.filter_hosts(self.zone_manager, json.dumps( - ['not', True, False, True, False] - ))) + ['not', True, False, True, False]))) try: hf.filter_hosts(self.zone_manager, json.dumps( - 'not', True, False, True, False - )) + 'not', True, False, True, False)) self.fail("Should give KeyError") except KeyError, e: pass diff --git a/nova/tests/test_zone_aware_scheduler.py b/nova/tests/test_zone_aware_scheduler.py index 37169fb97..90ae427e3 100644 --- a/nova/tests/test_zone_aware_scheduler.py +++ b/nova/tests/test_zone_aware_scheduler.py @@ -39,15 +39,11 @@ class FakeZoneManager(zone_manager.ZoneManager): def __init__(self): self.service_states = { 'host1': { - 'compute': {'ram': 1000} - }, + 'compute': {'ram': 1000}}, 'host2': { - 'compute': {'ram': 2000} - }, + 'compute': {'ram': 2000}}, 'host3': { - 'compute': {'ram': 3000} - } - } + 'compute': {'ram': 3000}}} class FakeEmptyZoneManager(zone_manager.ZoneManager): From cb6280fc9f816a23aae663bdf79fd580dd2a5dc8 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Wed, 1 Jun 2011 10:58:17 -0400 Subject: [PATCH 103/164] updates to keep things looking better --- nova/scheduler/host_filter.py | 3 ++- nova/tests/test_host_filter.py | 7 +++++-- nova/tests/test_zone_aware_scheduler.py | 16 ++++++++++------ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/nova/scheduler/host_filter.py b/nova/scheduler/host_filter.py index 8827db4d4..7d6ee0ee3 100644 --- a/nova/scheduler/host_filter.py +++ b/nova/scheduler/host_filter.py @@ -226,7 +226,8 @@ class JsonFilter(HostFilter): required_disk = instance_type['local_gb'] query = ['and', ['>=', '$compute.host_memory_free', required_ram], - ['>=', '$compute.disk_available', required_disk]] + ['>=', '$compute.disk_available', required_disk], + ] return (self._full_name(), json.dumps(query)) def _parse_string(self, string, host, services): diff --git a/nova/tests/test_host_filter.py b/nova/tests/test_host_filter.py index 098ebff3d..3361c7b73 100644 --- a/nova/tests/test_host_filter.py +++ b/nova/tests/test_host_filter.py @@ -133,10 +133,13 @@ class HostFilterTestCase(test.TestCase): raw = ['or', ['and', ['<', '$compute.host_memory_free', 30], - ['<', '$compute.disk_available', 300]], + ['<', '$compute.disk_available', 300], + ], ['and', ['>', '$compute.host_memory_free', 70], - ['>', '$compute.disk_available', 700]]] + ['>', '$compute.disk_available', 700], + ], + ] cooked = json.dumps(raw) hosts = hf.filter_hosts(self.zone_manager, cooked) diff --git a/nova/tests/test_zone_aware_scheduler.py b/nova/tests/test_zone_aware_scheduler.py index 90ae427e3..72b74be20 100644 --- a/nova/tests/test_zone_aware_scheduler.py +++ b/nova/tests/test_zone_aware_scheduler.py @@ -38,12 +38,16 @@ class FakeZoneAwareScheduler(zone_aware_scheduler.ZoneAwareScheduler): class FakeZoneManager(zone_manager.ZoneManager): def __init__(self): self.service_states = { - 'host1': { - 'compute': {'ram': 1000}}, - 'host2': { - 'compute': {'ram': 2000}}, - 'host3': { - 'compute': {'ram': 3000}}} + 'host1': { + 'compute': {'ram': 1000}, + }, + 'host2': { + 'compute': {'ram': 2000}, + }, + 'host3': { + 'compute': {'ram': 3000}, + }, + } class FakeEmptyZoneManager(zone_manager.ZoneManager): From c6713c2a3bcc473a7fb0ed5d03d29074325b0b79 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Wed, 1 Jun 2011 12:39:31 -0700 Subject: [PATCH 104/164] reservation id's properly forwarded to child zones on create --- nova/scheduler/zone_aware_scheduler.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 35ffdbde1..4b96f9877 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -90,6 +90,7 @@ class ZoneAwareScheduler(driver.Scheduler): image_id = instance_properties['image_id'] meta = instance_properties['metadata'] flavor_id = instance_type['flavorid'] + reservation_id = instance_properties['reservation_id'] files = kwargs['injected_files'] ipgroup = None # Not supported in OS API ... yet @@ -98,7 +99,8 @@ class ZoneAwareScheduler(driver.Scheduler): child_blob = zone_info['child_blob'] zone = db.zone_get(context, child_zone) url = zone.api_url - LOG.debug(_("Forwarding instance create call to child zone %(url)s") + LOG.debug(_("Forwarding instance create call to child zone %(url)s" + ". ReservationID=%(reservation_id)s") % locals()) nova = None try: @@ -109,7 +111,7 @@ class ZoneAwareScheduler(driver.Scheduler): "to talk to zone at %(url)s.") % locals()) nova.servers.create(name, image_id, flavor_id, ipgroup, meta, files, - child_blob) + child_blob, reservation_id=reservation_id) def _provision_resource_from_blob(self, context, item, instance_id, request_spec, kwargs): From 60731302aabd477fc6325b593e67e2dab95a5f72 Mon Sep 17 00:00:00 2001 From: Josh Kearney Date: Wed, 1 Jun 2011 14:46:05 -0500 Subject: [PATCH 105/164] Allow SSL AMQP connections. --- nova/flags.py | 1 + nova/rpc.py | 1 + 2 files changed, 2 insertions(+) diff --git a/nova/flags.py b/nova/flags.py index 9eaac5596..d5090edba 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -296,6 +296,7 @@ DEFINE_bool('fake_network', False, 'should we use fake network devices and addresses') DEFINE_string('rabbit_host', 'localhost', 'rabbit host') DEFINE_integer('rabbit_port', 5672, 'rabbit port') +DEFINE_bool('rabbit_use_ssl', False, 'connect over SSL') DEFINE_string('rabbit_userid', 'guest', 'rabbit userid') DEFINE_string('rabbit_password', 'guest', 'rabbit password') DEFINE_string('rabbit_virtual_host', '/', 'rabbit virtual host') diff --git a/nova/rpc.py b/nova/rpc.py index c5277c6a9..2e78a31e7 100644 --- a/nova/rpc.py +++ b/nova/rpc.py @@ -65,6 +65,7 @@ class Connection(carrot_connection.BrokerConnection): if new or not hasattr(cls, '_instance'): params = dict(hostname=FLAGS.rabbit_host, port=FLAGS.rabbit_port, + ssl=FLAGS.rabbit_use_ssl, userid=FLAGS.rabbit_userid, password=FLAGS.rabbit_password, virtual_host=FLAGS.rabbit_virtual_host) From 343e2bb8d32789e997f56199cc26e916e3b011ae Mon Sep 17 00:00:00 2001 From: John Tran Date: Wed, 1 Jun 2011 16:01:41 -0700 Subject: [PATCH 106/164] fixed as per peer review to make more consistent --- bin/nova-manage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/nova-manage b/bin/nova-manage index 51373d282..5de4d9e81 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -536,7 +536,7 @@ class FloatingIpCommands(object): for floating_ip in floating_ips: instance = None if floating_ip['fixed_ip']: - instance = floating_ip['fixed_ip']['instance'].hostname + instance = floating_ip['fixed_ip']['instance']['hostname'] print "%s\t%s\t%s" % (floating_ip['host'], floating_ip['address'], instance) From 5887efd3b9177dac9f94bfe88cc03f43d7b1ece2 Mon Sep 17 00:00:00 2001 From: John Tran Date: Wed, 1 Jun 2011 16:27:51 -0700 Subject: [PATCH 107/164] merged, with trunk, fixed the test failure, and split the test into 3 as per peer review. --- nova/tests/test_cloud.py | 45 +++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 04fd02ba3..02b7c8a38 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -445,38 +445,41 @@ class CloudTestCase(test.TestCase): self.cloud.delete_key_pair(self.context, 'test') def test_run_instances(self): - all_instances = db.instance_get_all(context.get_admin_context()) - self.assertEqual(0, len(all_instances)) - - def fake_show_decrypt(self, context, id): - return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, - 'type': 'machine', 'image_state': 'decrypting'}} - - def fake_show_no_state(self, context, id): - return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, - 'type': 'machine'}} - - image_id = FLAGS.default_image - instance_type = FLAGS.default_instance_type - max_count = 1 - kwargs = {'image_id': image_id, - 'instance_type': instance_type, - 'max_count': max_count} + kwargs = {'image_id': FLAGS.default_image, + 'instance_type': FLAGS.default_instance_type, + 'max_count': 1} run_instances = self.cloud.run_instances - # when image has valid image_state result = run_instances(self.context, **kwargs) instance = result['instancesSet'][0] self.assertEqual(instance['imageId'], 'ami-00000001') self.assertEqual(instance['displayName'], 'Server 1') self.assertEqual(instance['instanceId'], 'i-00000001') - self.assertEqual(instance['instanceState']['name'], 'scheduling') + self.assertEqual(instance['instanceState']['name'], 'networking') self.assertEqual(instance['instanceType'], 'm1.small') - # when image doesn't have 'image_state' attr at all + + def test_run_instances_image_state_none(self): + kwargs = {'image_id': FLAGS.default_image, + 'instance_type': FLAGS.default_instance_type, + 'max_count': 1} + run_instances = self.cloud.run_instances + def fake_show_no_state(self, context, id): + return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, + 'type': 'machine'}} + self.stubs.UnsetAll() self.stubs.Set(local.LocalImageService, 'show', fake_show_no_state) self.assertRaises(exception.ApiError, run_instances, self.context, **kwargs) - # when image has 'image_state' yet not 'available' + + def test_run_instances_image_state_invalid(self): + kwargs = {'image_id': FLAGS.default_image, + 'instance_type': FLAGS.default_instance_type, + 'max_count': 1} + run_instances = self.cloud.run_instances + def fake_show_decrypt(self, context, id): + return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, + 'type': 'machine', 'image_state': 'decrypting'}} + self.stubs.UnsetAll() self.stubs.Set(local.LocalImageService, 'show', fake_show_decrypt) self.assertRaises(exception.ApiError, run_instances, From 556a40e17a3fe4202912c14a35d95e5ee31372ce Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 1 Jun 2011 16:51:26 -0700 Subject: [PATCH 108/164] fix novarc to work on mac and zsh --- nova/auth/novarc.template | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/auth/novarc.template b/nova/auth/novarc.template index 8170fcafe..4a1f41802 100644 --- a/nova/auth/novarc.template +++ b/nova/auth/novarc.template @@ -1,4 +1,5 @@ -NOVA_KEY_DIR=$(dirname $(readlink -f ${BASH_SOURCE})) +NOVARC=$(python -c 'import os,sys; print os.path.abspath(os.path.realpath(sys.argv[1]))' ${BASH_SOURCE-0}) +NOVA_KEY_DIR=$(dirname ${NOVARC}) export EC2_ACCESS_KEY="%(access)s:%(project)s" export EC2_SECRET_KEY="%(secret)s" export EC2_URL="%(ec2)s" From 3be120a9f0da6746a9edabb7d6d12ccc03fe3a8b Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Wed, 1 Jun 2011 17:35:49 -0700 Subject: [PATCH 109/164] list --reservation now works across zones --- nova/scheduler/api.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nova/scheduler/api.py b/nova/scheduler/api.py index de0660713..0f423655e 100644 --- a/nova/scheduler/api.py +++ b/nova/scheduler/api.py @@ -118,7 +118,8 @@ def _process(func, zone): return func(nova, zone) -def call_zone_method(context, method, errors_to_ignore=None, *args, **kwargs): +def call_zone_method(context, method_name, errors_to_ignore=None, + novaclient_collection_name='zones', *args, **kwargs): """Returns a list of (zone, call_result) objects.""" if not isinstance(errors_to_ignore, (list, tuple)): # This will also handle the default None @@ -138,11 +139,12 @@ def call_zone_method(context, method, errors_to_ignore=None, *args, **kwargs): #TODO (dabo) - add logic for failure counts per zone, # with escalation after a given number of failures. continue - zone_method = getattr(nova.zones, method) + novaclient_collection = getattr(nova, novaclient_collection_name) + collection_method = getattr(novaclient_collection, method_name) def _error_trap(*args, **kwargs): try: - return zone_method(*args, **kwargs) + return collection_method(*args, **kwargs) except Exception as e: if type(e) in errors_to_ignore: return None From d319e06a4e88d37a1f43448c34b21f464da3b04f Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Wed, 1 Jun 2011 17:49:49 -0700 Subject: [PATCH 110/164] tests all passing again --- nova/scheduler/api.py | 5 +---- nova/tests/test_scheduler.py | 8 +------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/nova/scheduler/api.py b/nova/scheduler/api.py index 0f423655e..432f22b90 100644 --- a/nova/scheduler/api.py +++ b/nova/scheduler/api.py @@ -148,10 +148,7 @@ def call_zone_method(context, method_name, errors_to_ignore=None, except Exception as e: if type(e) in errors_to_ignore: return None - # TODO (dabo) - want to be able to re-raise here. - # Returning a string now; raising was causing issues. - # raise e - return "ERROR", "%s" % e + raise e res = pool.spawn(_error_trap, *args, **kwargs) results.append((zone, res)) diff --git a/nova/tests/test_scheduler.py b/nova/tests/test_scheduler.py index 54b3f80fb..5d8f34efd 100644 --- a/nova/tests/test_scheduler.py +++ b/nova/tests/test_scheduler.py @@ -1109,10 +1109,4 @@ class CallZoneMethodTest(test.TestCase): def test_call_zone_method_generates_exception(self): context = {} method = 'raises_exception' - results = api.call_zone_method(context, method) - - # FIXME(sirp): for now the _error_trap code is catching errors and - # converting them to a ("ERROR", "string") tuples. The code (and this - # test) should eventually handle real exceptions. - expected = [(1, ('ERROR', 'testing'))] - self.assertEqual(expected, results) + self.assertRaises(Exception, api.call_zone_method, context, method) From e5a8ace618685d6b1cfcea1953c447be2f05207a Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 1 Jun 2011 18:55:41 -0700 Subject: [PATCH 111/164] missed a couple chars --- nova/auth/novarc.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/auth/novarc.template b/nova/auth/novarc.template index 4a1f41802..92eed3520 100644 --- a/nova/auth/novarc.template +++ b/nova/auth/novarc.template @@ -1,4 +1,4 @@ -NOVARC=$(python -c 'import os,sys; print os.path.abspath(os.path.realpath(sys.argv[1]))' ${BASH_SOURCE-0}) +NOVARC=$(python -c 'import os,sys; print os.path.abspath(os.path.realpath(sys.argv[1]))' ${BASH_SOURCE:-$0}) NOVA_KEY_DIR=$(dirname ${NOVARC}) export EC2_ACCESS_KEY="%(access)s:%(project)s" export EC2_SECRET_KEY="%(secret)s" From 51ac92cbba5e43a492aae0e22a165793fd635991 Mon Sep 17 00:00:00 2001 From: Mike Scherbakov Date: Thu, 2 Jun 2011 10:29:58 +0400 Subject: [PATCH 112/164] Refactored after review, fixed merge. --- nova/tests/test_libvirt.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index d9316ab4f..d008a149e 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -328,14 +328,14 @@ class LibvirtConnTestCase(test.TestCase): # To work with it from snapshot, the single image_service is needed recv_meta = image_service.create(context, sent_meta) - self.mox.StubOutWithMock(libvirt_conn.LibvirtConnection, '_conn') - libvirt_conn.LibvirtConnection._conn.lookupByName = fake_lookup - self.mox.StubOutWithMock(libvirt_conn.utils, 'execute') - libvirt_conn.utils.execute = fake_execute + self.mox.StubOutWithMock(connection.LibvirtConnection, '_conn') + connection.LibvirtConnection._conn.lookupByName = fake_lookup + self.mox.StubOutWithMock(connection.utils, 'execute') + connection.utils.execute = fake_execute self.mox.ReplayAll() - conn = libvirt_conn.LibvirtConnection(False) + conn = connection.LibvirtConnection(False) conn.snapshot(instance_ref, recv_meta['id']) snapshot = image_service.show(context, recv_meta['id']) From c2029a738625c7b5856a5684cc1ffd4d0af8706b Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Thu, 2 Jun 2011 07:57:35 -0700 Subject: [PATCH 113/164] get_all with reservation id across zone tests --- nova/scheduler/api.py | 7 ------- nova/scheduler/driver.py | 7 ------- nova/scheduler/zone_aware_scheduler.py | 6 ------ 3 files changed, 20 deletions(-) diff --git a/nova/scheduler/api.py b/nova/scheduler/api.py index 432f22b90..789993890 100644 --- a/nova/scheduler/api.py +++ b/nova/scheduler/api.py @@ -87,13 +87,6 @@ def select(context, specs=None): params={"request_spec": specs}) -def should_create_all_at_once(context): - """Returns a tuple of rules for how instances should - be created given the current Scheduler driver being used.""" - return _call_scheduler('should_create_all_at_once', context=context, - params={}) - - def update_service_capabilities(context, service_name, host, capabilities): """Send an update to all the scheduler services informing them of the capabilities of this service.""" diff --git a/nova/scheduler/driver.py b/nova/scheduler/driver.py index 237e31c04..2094e3565 100644 --- a/nova/scheduler/driver.py +++ b/nova/scheduler/driver.py @@ -72,13 +72,6 @@ class Scheduler(object): for service in services if self.service_is_up(service)] - def should_create_all_at_once(self, context=None, *args, **kwargs): - """ - Does this driver prefer single-shot requests or all-at-once? - By default, prefer single-shot. - """ - return False - def schedule(self, context, topic, *_args, **_kwargs): """Must override at least this method for scheduler to work.""" raise NotImplementedError(_("Must implement a fallback schedule")) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index 4b96f9877..5e8d63038 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -159,12 +159,6 @@ class ZoneAwareScheduler(driver.Scheduler): self._provision_resource_from_blob(context, item, instance_id, request_spec, kwargs) - def should_create_all_at_once(self, context=None, *args, **kwargs): - """ - This driver prefers all-at-once requests. - """ - return True - def schedule_run_instance(self, context, instance_id, request_spec, *args, **kwargs): """This method is called from nova.compute.api to provision From e1c986714ba94d915c6a1c7be2f7a12869871ee1 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 2 Jun 2011 10:20:26 -0700 Subject: [PATCH 115/164] don't use python if readlink is available --- nova/auth/novarc.template | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/auth/novarc.template b/nova/auth/novarc.template index 92eed3520..d30bd849c 100644 --- a/nova/auth/novarc.template +++ b/nova/auth/novarc.template @@ -1,5 +1,6 @@ -NOVARC=$(python -c 'import os,sys; print os.path.abspath(os.path.realpath(sys.argv[1]))' ${BASH_SOURCE:-$0}) -NOVA_KEY_DIR=$(dirname ${NOVARC}) +NOVARC=$(readlink -f "${BASH_SOURCE:-${0}}" 2>/dev/null) || + NOVARC=$(python -c 'import os,sys; print os.path.abspath(os.path.realpath(sys.argv[1]))' "${BASH_SOURCE:-${0}}") +NOVA_KEY_DIR=${NOVARC%/*} export EC2_ACCESS_KEY="%(access)s:%(project)s" export EC2_SECRET_KEY="%(secret)s" export EC2_URL="%(ec2)s" From 7f9b98198c4349a6ab10a78c818398b63b762c71 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 2 Jun 2011 11:28:41 -0700 Subject: [PATCH 116/164] use %% because % is a replacement string character --- nova/auth/novarc.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/auth/novarc.template b/nova/auth/novarc.template index d30bd849c..eba3a8537 100644 --- a/nova/auth/novarc.template +++ b/nova/auth/novarc.template @@ -1,6 +1,6 @@ NOVARC=$(readlink -f "${BASH_SOURCE:-${0}}" 2>/dev/null) || NOVARC=$(python -c 'import os,sys; print os.path.abspath(os.path.realpath(sys.argv[1]))' "${BASH_SOURCE:-${0}}") -NOVA_KEY_DIR=${NOVARC%/*} +NOVA_KEY_DIR=${NOVARC%%/*} export EC2_ACCESS_KEY="%(access)s:%(project)s" export EC2_SECRET_KEY="%(secret)s" export EC2_URL="%(ec2)s" From fdc1340a4d61e6d5586845329eeef15e9508c1c1 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 2 Jun 2011 12:01:49 -0700 Subject: [PATCH 117/164] Tests to assure all exceptions can be raised as well as fixing NotAuthorized --- nova/exception.py | 4 ++-- nova/tests/test_misc.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/nova/exception.py b/nova/exception.py index d3d58f3b2..5b824bba6 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -65,7 +65,7 @@ class BuildInProgress(Error): class DBError(Error): """Wraps an implementation specific exception.""" - def __init__(self, inner_exception): + def __init__(self, inner_exception=None): self.inner_exception = inner_exception super(DBError, self).__init__(str(inner_exception)) @@ -122,7 +122,7 @@ class NotAuthorized(NovaException): message = _("Not authorized.") def __init__(self, *args, **kwargs): - super(NotFound, self).__init__(**kwargs) + super(NotAuthorized, self).__init__(**kwargs) class AdminRequired(NotAuthorized): diff --git a/nova/tests/test_misc.py b/nova/tests/test_misc.py index cf8f4c05e..c5875a843 100644 --- a/nova/tests/test_misc.py +++ b/nova/tests/test_misc.py @@ -21,11 +21,24 @@ import select from eventlet import greenpool from eventlet import greenthread +from nova import exception from nova import test from nova import utils from nova.utils import parse_mailmap, str_dict_replace +class ExceptionTestCase(test.TestCase): + @staticmethod + def _raise_exc(exc): + raise exc() + + def test_exceptions_raise(self): + for name in dir(exception): + exc = getattr(exception, name) + if isinstance(exc, type): + self.assertRaises(exc, self._raise_exc, exc) + + class ProjectTestCase(test.TestCase): def test_authors_up_to_date(self): topdir = os.path.normpath(os.path.dirname(__file__) + '/../../') From 980cf1fc3cc2bb2a0513f26260759866becee11a Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 2 Jun 2011 14:23:05 -0700 Subject: [PATCH 118/164] make all uses of utcnow use our testable utils.utcnow --- bin/nova-manage | 3 +-- nova/notifier/api.py | 7 +++---- nova/scheduler/driver.py | 3 ++- nova/scheduler/simple.py | 11 +++++------ nova/test.py | 4 ++-- nova/tests/test_compute.py | 5 ++--- nova/tests/test_console.py | 2 -- nova/tests/test_middleware.py | 1 - nova/tests/test_scheduler.py | 16 ++++++++-------- nova/utils.py | 2 +- 10 files changed, 24 insertions(+), 30 deletions(-) diff --git a/bin/nova-manage b/bin/nova-manage index 5de4d9e81..b545c4246 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -53,7 +53,6 @@ CLI interface for nova management. """ -import datetime import gettext import glob import json @@ -689,7 +688,7 @@ class ServiceCommands(object): """Show a list of all running services. Filter by host & service name. args: [host] [service]""" ctxt = context.get_admin_context() - now = datetime.datetime.utcnow() + now = utils.utcnow() services = db.service_get_all(ctxt) if host: services = [s for s in services if s['host'] == host] diff --git a/nova/notifier/api.py b/nova/notifier/api.py index a3e7a039e..d49517c8b 100644 --- a/nova/notifier/api.py +++ b/nova/notifier/api.py @@ -11,9 +11,8 @@ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations -# under the License.import datetime +# under the License. -import datetime import uuid from nova import flags @@ -64,7 +63,7 @@ def notify(publisher_id, event_type, priority, payload): {'message_id': str(uuid.uuid4()), 'publisher_id': 'compute.host1', - 'timestamp': datetime.datetime.utcnow(), + 'timestamp': utils.utcnow(), 'priority': 'WARN', 'event_type': 'compute.create_instance', 'payload': {'instance_id': 12, ... }} @@ -79,5 +78,5 @@ def notify(publisher_id, event_type, priority, payload): event_type=event_type, priority=priority, payload=payload, - timestamp=str(datetime.datetime.utcnow())) + timestamp=str(utils.utcnow())) driver.notify(msg) diff --git a/nova/scheduler/driver.py b/nova/scheduler/driver.py index 2094e3565..0b257c5d8 100644 --- a/nova/scheduler/driver.py +++ b/nova/scheduler/driver.py @@ -28,6 +28,7 @@ from nova import exception from nova import flags from nova import log as logging from nova import rpc +from nova import utils from nova.compute import power_state FLAGS = flags.FLAGS @@ -61,7 +62,7 @@ class Scheduler(object): """Check whether a service is up based on last heartbeat.""" last_heartbeat = service['updated_at'] or service['created_at'] # Timestamps in DB are UTC. - elapsed = datetime.datetime.utcnow() - last_heartbeat + elapsed = utils.utcnow() - last_heartbeat return elapsed < datetime.timedelta(seconds=FLAGS.service_down_time) def hosts_up(self, context, topic): diff --git a/nova/scheduler/simple.py b/nova/scheduler/simple.py index dd568d2c6..87cdef11d 100644 --- a/nova/scheduler/simple.py +++ b/nova/scheduler/simple.py @@ -21,10 +21,9 @@ Simple Scheduler """ -import datetime - from nova import db from nova import flags +from nova import utils from nova.scheduler import driver from nova.scheduler import chance @@ -54,7 +53,7 @@ class SimpleScheduler(chance.ChanceScheduler): # TODO(vish): this probably belongs in the manager, if we # can generalize this somehow - now = datetime.datetime.utcnow() + now = utils.utcnow() db.instance_update(context, instance_id, {'host': host, 'scheduled_at': now}) return host @@ -66,7 +65,7 @@ class SimpleScheduler(chance.ChanceScheduler): if self.service_is_up(service): # NOTE(vish): this probably belongs in the manager, if we # can generalize this somehow - now = datetime.datetime.utcnow() + now = utils.utcnow() db.instance_update(context, instance_id, {'host': service['host'], @@ -90,7 +89,7 @@ class SimpleScheduler(chance.ChanceScheduler): # TODO(vish): this probably belongs in the manager, if we # can generalize this somehow - now = datetime.datetime.utcnow() + now = utils.utcnow() db.volume_update(context, volume_id, {'host': host, 'scheduled_at': now}) return host @@ -103,7 +102,7 @@ class SimpleScheduler(chance.ChanceScheduler): if self.service_is_up(service): # NOTE(vish): this probably belongs in the manager, if we # can generalize this somehow - now = datetime.datetime.utcnow() + now = utils.utcnow() db.volume_update(context, volume_id, {'host': service['host'], diff --git a/nova/test.py b/nova/test.py index 80b2d0a74..60b599ce4 100644 --- a/nova/test.py +++ b/nova/test.py @@ -23,7 +23,6 @@ inline callbacks. """ -import datetime import functools import os import shutil @@ -37,6 +36,7 @@ from eventlet import greenthread from nova import fakerabbit from nova import flags from nova import rpc +from nova import utils from nova import service from nova import wsgi from nova.virt import fake @@ -69,7 +69,7 @@ class TestCase(unittest.TestCase): # NOTE(vish): We need a better method for creating fixtures for tests # now that we have some required db setup for the system # to work properly. - self.start = datetime.datetime.utcnow() + self.start = utils.utcnow() shutil.copyfile(os.path.join(FLAGS.state_path, FLAGS.sqlite_clean_db), os.path.join(FLAGS.state_path, FLAGS.sqlite_db)) diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index 9170837b6..c726080ee 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -19,7 +19,6 @@ Tests For Compute """ -import datetime import mox import stubout @@ -217,12 +216,12 @@ class ComputeTestCase(test.TestCase): instance_ref = db.instance_get(self.context, instance_id) self.assertEqual(instance_ref['launched_at'], None) self.assertEqual(instance_ref['deleted_at'], None) - launch = datetime.datetime.utcnow() + launch = utils.utcnow() self.compute.run_instance(self.context, instance_id) instance_ref = db.instance_get(self.context, instance_id) self.assert_(instance_ref['launched_at'] > launch) self.assertEqual(instance_ref['deleted_at'], None) - terminate = datetime.datetime.utcnow() + terminate = utils.utcnow() self.compute.terminate_instance(self.context, instance_id) self.context = self.context.elevated(True) instance_ref = db.instance_get(self.context, instance_id) diff --git a/nova/tests/test_console.py b/nova/tests/test_console.py index 1a9a867ee..831e7670f 100644 --- a/nova/tests/test_console.py +++ b/nova/tests/test_console.py @@ -20,8 +20,6 @@ Tests For Console proxy. """ -import datetime - from nova import context from nova import db from nova import exception diff --git a/nova/tests/test_middleware.py b/nova/tests/test_middleware.py index 6564a6955..40d117c45 100644 --- a/nova/tests/test_middleware.py +++ b/nova/tests/test_middleware.py @@ -16,7 +16,6 @@ # License for the specific language governing permissions and limitations # under the License. -import datetime import webob import webob.dec import webob.exc diff --git a/nova/tests/test_scheduler.py b/nova/tests/test_scheduler.py index 54b3f80fb..1cf6bbfbf 100644 --- a/nova/tests/test_scheduler.py +++ b/nova/tests/test_scheduler.py @@ -196,7 +196,7 @@ class ZoneSchedulerTestCase(test.TestCase): service.topic = 'compute' service.id = kwargs['id'] service.availability_zone = kwargs['zone'] - service.created_at = datetime.datetime.utcnow() + service.created_at = utils.utcnow() return service def test_with_two_zones(self): @@ -290,7 +290,7 @@ class SimpleDriverTestCase(test.TestCase): dic['host'] = kwargs.get('host', 'dummy') s_ref = db.service_create(self.context, dic) if 'created_at' in kwargs.keys() or 'updated_at' in kwargs.keys(): - t = datetime.datetime.utcnow() - datetime.timedelta(0) + t = utils.utcnow() - datetime.timedelta(0) dic['created_at'] = kwargs.get('created_at', t) dic['updated_at'] = kwargs.get('updated_at', t) db.service_update(self.context, s_ref['id'], dic) @@ -401,7 +401,7 @@ class SimpleDriverTestCase(test.TestCase): FLAGS.compute_manager) compute1.start() s1 = db.service_get_by_args(self.context, 'host1', 'nova-compute') - now = datetime.datetime.utcnow() + now = utils.utcnow() delta = datetime.timedelta(seconds=FLAGS.service_down_time * 2) past = now - delta db.service_update(self.context, s1['id'], {'updated_at': past}) @@ -542,7 +542,7 @@ class SimpleDriverTestCase(test.TestCase): def test_wont_sechedule_if_specified_host_is_down(self): compute1 = self.start_service('compute', host='host1') s1 = db.service_get_by_args(self.context, 'host1', 'nova-compute') - now = datetime.datetime.utcnow() + now = utils.utcnow() delta = datetime.timedelta(seconds=FLAGS.service_down_time * 2) past = now - delta db.service_update(self.context, s1['id'], {'updated_at': past}) @@ -692,7 +692,7 @@ class SimpleDriverTestCase(test.TestCase): dic = {'instance_id': instance_id, 'size': 1} v_ref = db.volume_create(self.context, {'instance_id': instance_id, 'size': 1}) - t1 = datetime.datetime.utcnow() - datetime.timedelta(1) + t1 = utils.utcnow() - datetime.timedelta(1) dic = {'created_at': t1, 'updated_at': t1, 'binary': 'nova-volume', 'topic': 'volume', 'report_count': 0} s_ref = db.service_create(self.context, dic) @@ -709,7 +709,7 @@ class SimpleDriverTestCase(test.TestCase): """Confirms src-compute node is alive.""" instance_id = self._create_instance() i_ref = db.instance_get(self.context, instance_id) - t = datetime.datetime.utcnow() - datetime.timedelta(10) + t = utils.utcnow() - datetime.timedelta(10) s_ref = self._create_compute_service(created_at=t, updated_at=t, host=i_ref['host']) @@ -737,7 +737,7 @@ class SimpleDriverTestCase(test.TestCase): """Confirms exception raises in case dest host does not exist.""" instance_id = self._create_instance() i_ref = db.instance_get(self.context, instance_id) - t = datetime.datetime.utcnow() - datetime.timedelta(10) + t = utils.utcnow() - datetime.timedelta(10) s_ref = self._create_compute_service(created_at=t, updated_at=t, host=i_ref['host']) @@ -796,7 +796,7 @@ class SimpleDriverTestCase(test.TestCase): # mocks for live_migration_common_check() instance_id = self._create_instance() i_ref = db.instance_get(self.context, instance_id) - t1 = datetime.datetime.utcnow() - datetime.timedelta(10) + t1 = utils.utcnow() - datetime.timedelta(10) s_ref = self._create_compute_service(created_at=t1, updated_at=t1, host=dest) diff --git a/nova/utils.py b/nova/utils.py index 361fc9873..b1638e72c 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -307,7 +307,7 @@ def get_my_linklocal(interface): def utcnow(): - """Overridable version of datetime.datetime.utcnow.""" + """Overridable version of utils.utcnow.""" if utcnow.override_time: return utcnow.override_time return datetime.datetime.utcnow() From 9b30f72b8240d147708a96b4b996b7dfe6eaa631 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 2 Jun 2011 14:51:30 -0700 Subject: [PATCH 119/164] switch zones to use utcnow --- nova/scheduler/zone_manager.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/nova/scheduler/zone_manager.py b/nova/scheduler/zone_manager.py index 3ddf6f3c3..3f483adff 100644 --- a/nova/scheduler/zone_manager.py +++ b/nova/scheduler/zone_manager.py @@ -17,16 +17,17 @@ ZoneManager oversees all communications with child Zones. """ +import datetime import novaclient import thread import traceback -from datetime import datetime from eventlet import greenpool from nova import db from nova import flags from nova import log as logging +from nova import utils FLAGS = flags.FLAGS flags.DEFINE_integer('zone_db_check_interval', 60, @@ -42,7 +43,7 @@ class ZoneState(object): self.name = None self.capabilities = None self.attempt = 0 - self.last_seen = datetime.min + self.last_seen = datetime.datetime.min self.last_exception = None self.last_exception_time = None @@ -56,7 +57,7 @@ class ZoneState(object): def update_metadata(self, zone_metadata): """Update zone metadata after successful communications with child zone.""" - self.last_seen = datetime.now() + self.last_seen = utils.utcnow() self.attempt = 0 self.name = zone_metadata.get("name", "n/a") self.capabilities = ", ".join(["%s=%s" % (k, v) @@ -72,7 +73,7 @@ class ZoneState(object): """Something went wrong. Check to see if zone should be marked as offline.""" self.last_exception = exception - self.last_exception_time = datetime.now() + self.last_exception_time = utils.utcnow() api_url = self.api_url logging.warning(_("'%(exception)s' error talking to " "zone %(api_url)s") % locals()) @@ -104,7 +105,7 @@ def _poll_zone(zone): class ZoneManager(object): """Keeps the zone states updated.""" def __init__(self): - self.last_zone_db_check = datetime.min + self.last_zone_db_check = datetime.datetime.min self.zone_states = {} # { : ZoneState } self.service_states = {} # { : { : { cap k : v }}} self.green_pool = greenpool.GreenPool() @@ -158,10 +159,10 @@ class ZoneManager(object): def ping(self, context=None): """Ping should be called periodically to update zone status.""" - diff = datetime.now() - self.last_zone_db_check + diff = utils.utcnow() - self.last_zone_db_check if diff.seconds >= FLAGS.zone_db_check_interval: logging.debug(_("Updating zone cache from db.")) - self.last_zone_db_check = datetime.now() + self.last_zone_db_check = utils.utcnow() self._refresh_from_db(context) self._poll_zones(context) From b16f36d2eaba067a2078080d979b304a54fd00a7 Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Fri, 3 Jun 2011 12:37:58 +0400 Subject: [PATCH 120/164] Fixed FakeLdapDriver, made it call LdapDriver.__init__ --- nova/auth/ldapdriver.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index 95e31ae3b..183f7a985 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -676,6 +676,7 @@ class LdapDriver(object): class FakeLdapDriver(LdapDriver): """Fake Ldap Auth driver""" - def __init__(self): # pylint: disable=W0231 - __import__('nova.auth.fakeldap') - self.ldap = sys.modules['nova.auth.fakeldap'] + def __init__(self): + import nova.auth.fakeldap + sys.modules['ldap'] = nova.auth.fakeldap + super(FakeLdapDriver, self).__init__() From aee7ee66129643d067c686afbb2d4b745f8fa500 Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Fri, 3 Jun 2011 13:39:22 +0400 Subject: [PATCH 121/164] Flush AuthManager's cache before each test. --- nova/tests/test_auth.py | 1 + 1 file changed, 1 insertion(+) diff --git a/nova/tests/test_auth.py b/nova/tests/test_auth.py index f02dd94b7..7d00bddfe 100644 --- a/nova/tests/test_auth.py +++ b/nova/tests/test_auth.py @@ -86,6 +86,7 @@ class _AuthManagerBaseTestCase(test.TestCase): super(_AuthManagerBaseTestCase, self).setUp() self.flags(connection_type='fake') self.manager = manager.AuthManager(new=True) + self.manager.mc.cache = {} def test_create_and_find_user(self): with user_generator(self.manager): From 20de56e817a52d3e1ac16d23757d9ce49f667e4d Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Fri, 3 Jun 2011 05:23:43 -0700 Subject: [PATCH 122/164] little tweaks --- doc/source/devref/distributed_scheduler.rst | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/distributed_scheduler.rst index 28ba20af7..eb6a1a03e 100644 --- a/doc/source/devref/distributed_scheduler.rst +++ b/doc/source/devref/distributed_scheduler.rst @@ -1,7 +1,3 @@ - - - - .. Copyright 2011 OpenStack LLC All Rights Reserved. @@ -40,7 +36,7 @@ Some Costs are more esoteric. Consider a rule that says we should prefer Hosts t An example of some other costs might include selecting: * a GPU-based host over a standard CPU * a host with fast ethernet over a 10mbps line -* a host than can run Windows instances +* a host that can run Windows instances * a host in the EU vs North America * etc From a19e56bff28ac6d51f46f481092069ede7719a49 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Fri, 3 Jun 2011 11:08:43 -0400 Subject: [PATCH 123/164] Set pylint to ignore correct lines that it could not determine were correct, due to the means by which eventlet.green imported subprocess Minimized the number of these lines to ignore --- nova/utils.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/nova/utils.py b/nova/utils.py index 361fc9873..4e1b7c26a 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -142,24 +142,26 @@ def execute(*cmd, **kwargs): env = os.environ.copy() if addl_env: env.update(addl_env) + _PIPE = subprocess.PIPE #pylint: disable=E1101 obj = subprocess.Popen(cmd, - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, + stdin=_PIPE, + stdout=_PIPE, + stderr=_PIPE, env=env) result = None if process_input is not None: result = obj.communicate(process_input) else: result = obj.communicate() - obj.stdin.close() - if obj.returncode: - LOG.debug(_('Result was %s') % obj.returncode) + obj.stdin.close() #pylint: disable=E1101 + _returncode = obj.returncode #pylint: disable=E1101 + if _returncode: + LOG.debug(_('Result was %s') % _returncode) if type(check_exit_code) == types.IntType \ - and obj.returncode != check_exit_code: + and _returncode != check_exit_code: (stdout, stderr) = result raise exception.ProcessExecutionError( - exit_code=obj.returncode, + exit_code=_returncode, stdout=stdout, stderr=stderr, cmd=' '.join(cmd)) From 5ef7ee8ebc6cfdca6d6857522b0c0ee2876cea08 Mon Sep 17 00:00:00 2001 From: Justin Shepherd Date: Fri, 3 Jun 2011 13:20:34 -0500 Subject: [PATCH 125/164] added 'nova-manage config list' which will list out all of the flags and their values. I also alphabetized the list of available categories --- bin/nova-manage | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/bin/nova-manage b/bin/nova-manage index 5de4d9e81..fb3810779 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -1081,24 +1081,35 @@ class ImageCommands(object): self._convert_images(machine_images) +class ConfigCommands(object): + """Class for exposing the flags defined by flag_file(s).""" + + def __init__(self): + pass + + def list(self): + print FLAGS.FlagsIntoString() + + CATEGORIES = [ - ('user', UserCommands), ('account', AccountCommands), - ('project', ProjectCommands), - ('role', RoleCommands), - ('shell', ShellCommands), - ('vpn', VpnCommands), - ('fixed', FixedIpCommands), - ('floating', FloatingIpCommands), - ('network', NetworkCommands), - ('vm', VmCommands), - ('service', ServiceCommands), + ('config', ConfigCommands), ('db', DbCommands), - ('volume', VolumeCommands), + ('fixed', FixedIpCommands), + ('flavor', InstanceTypeCommands), + ('floating', FloatingIpCommands), ('instance_type', InstanceTypeCommands), ('image', ImageCommands), - ('flavor', InstanceTypeCommands), - ('version', VersionCommands)] + ('network', NetworkCommands), + ('project', ProjectCommands), + ('role', RoleCommands), + ('service', ServiceCommands), + ('shell', ShellCommands), + ('user', UserCommands), + ('version', VersionCommands), + ('vm', VmCommands), + ('volume', VolumeCommands), + ('vpn', VpnCommands)] def lazy_match(name, key_value_tuples): From 13c50956cd0d758ef79919115e86af51f23e963b Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Mon, 6 Jun 2011 10:49:29 -0400 Subject: [PATCH 126/164] Small pylint fixes --- nova/tests/xenapi/stubs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/tests/xenapi/stubs.py b/nova/tests/xenapi/stubs.py index 35308d95f..5d2d1641a 100644 --- a/nova/tests/xenapi/stubs.py +++ b/nova/tests/xenapi/stubs.py @@ -251,10 +251,10 @@ class FakeSessionForMigrationTests(fake.SessionBase): def __init__(self, uri): super(FakeSessionForMigrationTests, self).__init__(uri) - def VDI_get_by_uuid(*args): + def VDI_get_by_uuid(self, *args): return 'hurr' - def VDI_resize_online(*args): + def VDI_resize_online(self, *args): pass def VM_start(self, _1, ref, _2, _3): From c37635913f5dc482ce0ca6a9dc843c2458605806 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Mon, 6 Jun 2011 11:00:51 -0400 Subject: [PATCH 127/164] Removed extraneous code --- nova/tests/xenapi/stubs.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/nova/tests/xenapi/stubs.py b/nova/tests/xenapi/stubs.py index 5d2d1641a..151a3e909 100644 --- a/nova/tests/xenapi/stubs.py +++ b/nova/tests/xenapi/stubs.py @@ -42,20 +42,6 @@ def stubout_instance_snapshot(stubs): stubs.Set(vm_utils.VMHelper, 'fetch_image', fake_fetch_image) - def fake_wait_for_vhd_coalesce(session, instance_id, sr_ref, vdi_ref, - original_parent_uuid): - from nova.virt.xenapi.fake import create_vdi - name_label = "instance-%s" % instance_id - #TODO: create fake SR record - sr_ref = "fakesr" - vdi_ref = create_vdi(name_label=name_label, read_only=False, - sr_ref=sr_ref, sharable=False) - vdi_rec = session.get_xenapi().VDI.get_record(vdi_ref) - vdi_uuid = vdi_rec['uuid'] - return vdi_uuid - - stubs.Set(vm_utils.VMHelper, 'fetch_image', fake_fetch_image) - def fake_parse_xmlrpc_value(val): return val From f144e535b838fe201d31caf1964d1c95d264a8e6 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Mon, 6 Jun 2011 11:20:25 -0400 Subject: [PATCH 128/164] Use super on an old style class --- nova/twistd.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nova/twistd.py b/nova/twistd.py index c07ed991f..15cf67825 100644 --- a/nova/twistd.py +++ b/nova/twistd.py @@ -78,7 +78,7 @@ def WrapTwistedOptions(wrapped): self._absorbParameters() self._absorbHandlers() - super(TwistedOptionsToFlags, self).__init__() + wrapped.__init__(self) def _absorbFlags(self): twistd_flags = [] @@ -163,12 +163,12 @@ def WrapTwistedOptions(wrapped): def parseArgs(self, *args): # TODO(termie): figure out a decent way of dealing with args #return - super(TwistedOptionsToFlags, self).parseArgs(*args) + wrapped.parseArgs(self, *args) def postOptions(self): self._doHandlers() - super(TwistedOptionsToFlags, self).postOptions() + wrapped.postOptions(self) def __getitem__(self, key): key = key.replace('-', '_') From 45bb83e4054a1322adee6c4a4b5e90177fc9f9e2 Mon Sep 17 00:00:00 2001 From: Brian Lamar Date: Mon, 6 Jun 2011 15:59:20 -0400 Subject: [PATCH 130/164] Added test case for snapshoting base image without architecture. --- nova/tests/test_libvirt.py | 104 +++++++++++++++++++++++++------------ 1 file changed, 72 insertions(+), 32 deletions(-) diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index b6b36745a..d0bdaa738 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -14,6 +14,7 @@ # License for the specific language governing permissions and limitations # under the License. +import copy import eventlet import mox import os @@ -125,6 +126,7 @@ class CacheConcurrencyTestCase(test.TestCase): class LibvirtConnTestCase(test.TestCase): + def setUp(self): super(LibvirtConnTestCase, self).setUp() connection._late_load_cheetah() @@ -207,6 +209,31 @@ class LibvirtConnTestCase(test.TestCase): self.mox.StubOutWithMock(connection.LibvirtConnection, '_conn') connection.LibvirtConnection._conn = fake + def fake_lookup(self, instance_name): + class FakeVirtDomain(object): + + def __init__(self): + pass + + def snapshotCreateXML(self, *args): + return None + + def XMLDesc(self, *args): + return """ + + + + + + + + """ + + return FakeVirtDomain() + + def fake_execute(self, *args): + open(args[-1], "a").close() + def create_service(self, **kwargs): service_ref = {'host': kwargs.get('host', 'dummy'), 'binary': 'nova-compute', @@ -283,38 +310,11 @@ class LibvirtConnTestCase(test.TestCase): self._check_xml_and_container(instance_data) def test_snapshot(self): + if not self.lazy_load_library_exists(): + return + FLAGS.image_service = 'nova.image.fake.FakeImageService' - # Only file-based instance storages are supported at the moment - test_xml = """ - - - - - - - - """ - - class FakeVirtDomain(object): - - def __init__(self): - pass - - def snapshotCreateXML(self, *args): - return None - - def XMLDesc(self, *args): - return test_xml - - def fake_lookup(instance_name): - if instance_name == instance_ref.name: - return FakeVirtDomain() - - def fake_execute(*args): - # Touch filename to pass 'with open(out_path)' - open(args[-1], "a").close() - # Start test image_service = utils.import_object(FLAGS.image_service) @@ -330,9 +330,49 @@ class LibvirtConnTestCase(test.TestCase): recv_meta = image_service.create(context, sent_meta) self.mox.StubOutWithMock(connection.LibvirtConnection, '_conn') - connection.LibvirtConnection._conn.lookupByName = fake_lookup + connection.LibvirtConnection._conn.lookupByName = self.fake_lookup self.mox.StubOutWithMock(connection.utils, 'execute') - connection.utils.execute = fake_execute + connection.utils.execute = self.fake_execute + + self.mox.ReplayAll() + + conn = connection.LibvirtConnection(False) + conn.snapshot(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['name'], snapshot_name) + + def test_snapshot_no_image_architecture(self): + if not self.lazy_load_library_exists(): + return + + FLAGS.image_service = 'nova.image.fake.FakeImageService' + + # Start test + image_service = utils.import_object(FLAGS.image_service) + + # Assign image_ref = 2 from nova/images/fakes for testing different + # base image + test_instance = copy.deepcopy(self.test_instance) + test_instance["image_ref"] = "2" + + # Assuming that base image already exists in image_service + instance_ref = db.instance_create(self.context, 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() From 0f3d5bcd9106245489b0c24d2b1aee4d15269392 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 6 Jun 2011 19:05:31 -0700 Subject: [PATCH 132/164] sanity check --- nova/scheduler/zone_aware_scheduler.py | 1 + 1 file changed, 1 insertion(+) diff --git a/nova/scheduler/zone_aware_scheduler.py b/nova/scheduler/zone_aware_scheduler.py index c125c7436..faa969124 100644 --- a/nova/scheduler/zone_aware_scheduler.py +++ b/nova/scheduler/zone_aware_scheduler.py @@ -22,6 +22,7 @@ across zones. There are two expansion points to this class for: import operator import json + import M2Crypto import novaclient From 619a31626619790b7ac36b857b9e4328a4f45fd0 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Tue, 7 Jun 2011 09:56:51 -0400 Subject: [PATCH 133/164] Fixed type causing pylint "exception is not callable" Added param to fake_instance_create, fake objects should appear like the real object. pylint "No value passed for parameter 'values' in function call" --- nova/tests/test_vmwareapi.py | 2 +- nova/tests/vmwareapi/db_fakes.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/tests/test_vmwareapi.py b/nova/tests/test_vmwareapi.py index e5ebd1600..eddf01e9f 100644 --- a/nova/tests/test_vmwareapi.py +++ b/nova/tests/test_vmwareapi.py @@ -69,7 +69,7 @@ class VMWareAPIVMTestCase(test.TestCase): 'instance_type': 'm1.large', 'mac_address': 'aa:bb:cc:dd:ee:ff', } - self.instance = db.instance_create(values) + self.instance = db.instance_create(None, values) def _create_vm(self): """Create and spawn the VM.""" diff --git a/nova/tests/vmwareapi/db_fakes.py b/nova/tests/vmwareapi/db_fakes.py index 764de42d8..d4eb87daf 100644 --- a/nova/tests/vmwareapi/db_fakes.py +++ b/nova/tests/vmwareapi/db_fakes.py @@ -52,7 +52,7 @@ def stub_out_db_instance_api(stubs): else: raise NotImplementedError() - def fake_instance_create(values): + def fake_instance_create(context, values): """Stubs out the db.instance_create method.""" type_data = INSTANCE_TYPES[values['instance_type']] From 88d44b5a675a27b3b292cdbb80ef6f700c73c8d1 Mon Sep 17 00:00:00 2001 From: Brian Lamar Date: Tue, 7 Jun 2011 10:47:29 -0400 Subject: [PATCH 134/164] Removed empty init --- nova/tests/test_libvirt.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index d0bdaa738..8b4183164 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -210,10 +210,8 @@ class LibvirtConnTestCase(test.TestCase): connection.LibvirtConnection._conn = fake def fake_lookup(self, instance_name): - class FakeVirtDomain(object): - def __init__(self): - pass + class FakeVirtDomain(object): def snapshotCreateXML(self, *args): return None From 6247c7db67db5689817a533e854f7bf534f32d90 Mon Sep 17 00:00:00 2001 From: Josh Kearney Date: Tue, 7 Jun 2011 10:47:14 -0500 Subject: [PATCH 135/164] Add the option to specify a default IPv6 gateway. --- bin/nova-manage | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bin/nova-manage b/bin/nova-manage index b0cd343f5..7f024f9ca 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -96,6 +96,7 @@ flags.DECLARE('network_size', 'nova.network.manager') flags.DECLARE('vlan_start', 'nova.network.manager') flags.DECLARE('vpn_start', 'nova.network.manager') flags.DECLARE('fixed_range_v6', 'nova.network.manager') +flags.DECLARE('gateway_v6', 'nova.network.manager') flags.DECLARE('images_path', 'nova.image.local') flags.DECLARE('libvirt_type', 'nova.virt.libvirt.connection') flags.DEFINE_flag(flags.HelpFlag()) @@ -545,13 +546,14 @@ class FloatingIpCommands(object): class NetworkCommands(object): """Class for managing networks.""" - def create(self, fixed_range=None, num_networks=None, - network_size=None, vlan_start=None, - vpn_start=None, fixed_range_v6=None, label='public'): + def create(self, fixed_range=None, num_networks=None, network_size=None, + vlan_start=None, vpn_start=None, fixed_range_v6=None, + gateway_v6=None, label='public'): """Creates fixed ips for host by range arguments: fixed_range=FLAG, [num_networks=FLAG], [network_size=FLAG], [vlan_start=FLAG], - [vpn_start=FLAG], [fixed_range_v6=FLAG]""" + [vpn_start=FLAG], [fixed_range_v6=FLAG], + [gateway_v6=FLAG]""" if not fixed_range: msg = _('Fixed range in the form of 10.0.0.0/8 is ' 'required to create networks.') @@ -567,6 +569,8 @@ class NetworkCommands(object): vpn_start = FLAGS.vpn_start if not fixed_range_v6: fixed_range_v6 = FLAGS.fixed_range_v6 + if not gateway_v6: + gateway_v6 = FLAGS.gateway_v6 net_manager = utils.import_object(FLAGS.network_manager) try: net_manager.create_networks(context.get_admin_context(), @@ -576,6 +580,7 @@ class NetworkCommands(object): vlan_start=int(vlan_start), vpn_start=int(vpn_start), cidr_v6=fixed_range_v6, + gateway_v6=gateway_v6, label=label) except ValueError, e: print e From 9bff201d8ca4a8790fc8b28eb266c0ae24b3741f Mon Sep 17 00:00:00 2001 From: Josh Kearney Date: Tue, 7 Jun 2011 11:45:25 -0500 Subject: [PATCH 136/164] Remove unnecessary docstrings. --- bin/nova-manage | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bin/nova-manage b/bin/nova-manage index 7f024f9ca..0147ae21b 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -549,11 +549,7 @@ class NetworkCommands(object): def create(self, fixed_range=None, num_networks=None, network_size=None, vlan_start=None, vpn_start=None, fixed_range_v6=None, gateway_v6=None, label='public'): - """Creates fixed ips for host by range - arguments: fixed_range=FLAG, [num_networks=FLAG], - [network_size=FLAG], [vlan_start=FLAG], - [vpn_start=FLAG], [fixed_range_v6=FLAG], - [gateway_v6=FLAG]""" + """Creates fixed ips for host by range""" if not fixed_range: msg = _('Fixed range in the form of 10.0.0.0/8 is ' 'required to create networks.') From 6970382a26feaa4a4dabda7a10639162b58af2bd Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Tue, 7 Jun 2011 14:33:01 -0400 Subject: [PATCH 137/164] Disabled pylint complaining about no 'self' parameter in a decorator function --- nova/auth/ldapdriver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index 183f7a985..7bcaa34b5 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -139,7 +139,7 @@ class LdapDriver(object): self.__cache = None return False - def __local_cache(key_fmt): + def __local_cache(key_fmt): #pylint: disable=E0213 """Wrap function to cache it's result in self.__cache. Works only with functions with one fixed argument. """ From da80da91c3d0833446b2de5bb4734d6d515ca20c Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 7 Jun 2011 15:36:43 -0300 Subject: [PATCH 138/164] Added illustrations for Distributed Scheduler and fixed up formatting --- doc/.autogenerated | 3276 +++++++++++++++++ doc/source/devref/distributed_scheduler.rst | 90 +- doc/source/images/costs_weights.png | Bin 0 -> 35723 bytes doc/source/images/dating_service.png | Bin 0 -> 31945 bytes doc/source/images/filtering.png | Bin 0 -> 18779 bytes doc/source/images/nova.compute.api.create.png | Bin 0 -> 50171 bytes .../nova.compute.api.create_all_at_once.png | Bin 0 -> 62263 bytes doc/source/images/zone_aware_overview.png | Bin 0 -> 56142 bytes doc/source/images/zone_aware_scheduler.png | Bin 0 -> 20902 bytes 9 files changed, 3329 insertions(+), 37 deletions(-) create mode 100644 doc/source/images/costs_weights.png create mode 100644 doc/source/images/dating_service.png create mode 100644 doc/source/images/filtering.png create mode 100755 doc/source/images/nova.compute.api.create.png create mode 100755 doc/source/images/nova.compute.api.create_all_at_once.png create mode 100755 doc/source/images/zone_aware_overview.png create mode 100644 doc/source/images/zone_aware_scheduler.png diff --git a/doc/.autogenerated b/doc/.autogenerated index 456c8ad1e..5f9630a57 100644 --- a/doc/.autogenerated +++ b/doc/.autogenerated @@ -281,3 +281,3279 @@ source/api/nova..volume.driver.rst source/api/nova..volume.manager.rst source/api/nova..volume.san.rst source/api/nova..wsgi.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst +source/api/nova.crypto.rst +source/api/nova.cloudpipe.pipelib.rst +source/api/nova.context.rst +source/api/nova.quota.rst +source/api/nova.tests.test_compute.rst +source/api/nova.tests.test_quota.rst +source/api/nova.tests.test_flags.rst +source/api/nova.tests.test_objectstore.rst +source/api/nova.tests.test_crypto.rst +source/api/nova.tests.runtime_flags.rst +source/api/nova.tests.test_exception.rst +source/api/nova.tests.vmwareapi.db_fakes.rst +source/api/nova.tests.vmwareapi.stubs.rst +source/api/nova.tests.test_host_filter.rst +source/api/nova.tests.test_network.rst +source/api/nova.tests.network.base.rst +source/api/nova.tests.declare_flags.rst +source/api/nova.tests.test_localization.rst +source/api/nova.tests.test_access.rst +source/api/nova.tests.test_libvirt.rst +source/api/nova.tests.image.test_glance.rst +source/api/nova.tests.test_direct.rst +source/api/nova.tests.fake_utils.rst +source/api/nova.tests.integrated.test_login.rst +source/api/nova.tests.integrated.test_extensions.rst +source/api/nova.tests.integrated.integrated_helpers.rst +source/api/nova.tests.integrated.test_servers.rst +source/api/nova.tests.integrated.test_xml.rst +source/api/nova.tests.integrated.api.client.rst +source/api/nova.tests.integrated.test_volumes.rst +source/api/nova.tests.test_rpc.rst +source/api/nova.tests.test_volume.rst +source/api/nova.tests.test_notifier.rst +source/api/nova.tests.fake_flags.rst +source/api/nova.tests.test_log.rst +source/api/nova.tests.test_service.rst +source/api/nova.tests.test_twistd.rst +source/api/nova.tests.test_misc.rst +source/api/nova.tests.test_cloud.rst +source/api/nova.tests.glance.stubs.rst +source/api/nova.tests.test_auth.rst +source/api/nova.tests.test_utils.rst +source/api/nova.tests.test_vmwareapi.rst +source/api/nova.tests.test_vlan_network.rst +source/api/nova.tests.test_zones.rst +source/api/nova.tests.test_middleware.rst +source/api/nova.tests.test_ipv6.rst +source/api/nova.tests.xenapi.stubs.rst +source/api/nova.tests.test_api.rst +source/api/nova.tests.scheduler.test_host_filter.rst +source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst +source/api/nova.tests.scheduler.test_least_cost_scheduler.rst +source/api/nova.tests.scheduler.test_scheduler.rst +source/api/nova.tests.db.fakes.rst +source/api/nova.tests.test_instance_types.rst +source/api/nova.tests.test_console.rst +source/api/nova.tests.api.test_wsgi.rst +source/api/nova.tests.api.openstack.test_users.rst +source/api/nova.tests.api.openstack.fakes.rst +source/api/nova.tests.api.openstack.common.rst +source/api/nova.tests.api.openstack.test_wsgi.rst +source/api/nova.tests.api.openstack.test_accounts.rst +source/api/nova.tests.api.openstack.test_flavors.rst +source/api/nova.tests.api.openstack.test_extensions.rst +source/api/nova.tests.api.openstack.test_adminapi.rst +source/api/nova.tests.api.openstack.test_versions.rst +source/api/nova.tests.api.openstack.test_image_metadata.rst +source/api/nova.tests.api.openstack.test_auth.rst +source/api/nova.tests.api.openstack.test_servers.rst +source/api/nova.tests.api.openstack.test_zones.rst +source/api/nova.tests.api.openstack.test_images.rst +source/api/nova.tests.api.openstack.test_api.rst +source/api/nova.tests.api.openstack.test_faults.rst +source/api/nova.tests.api.openstack.test_limits.rst +source/api/nova.tests.api.openstack.test_server_metadata.rst +source/api/nova.tests.api.openstack.test_shared_ip_groups.rst +source/api/nova.tests.api.openstack.test_common.rst +source/api/nova.tests.api.openstack.extensions.foxinsocks.rst +source/api/nova.tests.test_xenapi.rst +source/api/nova.tests.hyperv_unittest.rst +source/api/nova.tests.test_test.rst +source/api/nova.tests.test_flat_network.rst +source/api/nova.network.linux_net.rst +source/api/nova.network.api.rst +source/api/nova.network.manager.rst +source/api/nova.network.vmwareapi_net.rst +source/api/nova.network.xenapi_net.rst +source/api/nova.volume.driver.rst +source/api/nova.volume.api.rst +source/api/nova.volume.san.rst +source/api/nova.volume.manager.rst +source/api/nova.virt.images.rst +source/api/nova.virt.driver.rst +source/api/nova.virt.vmwareapi.io_util.rst +source/api/nova.virt.vmwareapi.error_util.rst +source/api/nova.virt.vmwareapi.vmops.rst +source/api/nova.virt.vmwareapi.fake.rst +source/api/nova.virt.vmwareapi.vim.rst +source/api/nova.virt.vmwareapi.read_write_util.rst +source/api/nova.virt.vmwareapi.vmware_images.rst +source/api/nova.virt.vmwareapi.network_utils.rst +source/api/nova.virt.vmwareapi.vim_util.rst +source/api/nova.virt.vmwareapi.vm_util.rst +source/api/nova.virt.xenapi_conn.rst +source/api/nova.virt.fake.rst +source/api/nova.virt.vmwareapi_conn.rst +source/api/nova.virt.connection.rst +source/api/nova.virt.disk.rst +source/api/nova.virt.libvirt.connection.rst +source/api/nova.virt.libvirt.firewall.rst +source/api/nova.virt.libvirt.netutils.rst +source/api/nova.virt.hyperv.rst +source/api/nova.virt.xenapi.vmops.rst +source/api/nova.virt.xenapi.fake.rst +source/api/nova.virt.xenapi.volume_utils.rst +source/api/nova.virt.xenapi.network_utils.rst +source/api/nova.virt.xenapi.vm_utils.rst +source/api/nova.virt.xenapi.volumeops.rst +source/api/nova.exception.rst +source/api/nova.image.fake.rst +source/api/nova.image.local.rst +source/api/nova.image.glance.rst +source/api/nova.image.service.rst +source/api/nova.image.s3.rst +source/api/nova.objectstore.s3server.rst +source/api/nova.ipv6.account_identifier.rst +source/api/nova.ipv6.api.rst +source/api/nova.ipv6.rfc2462.rst +source/api/nova.notifier.no_op_notifier.rst +source/api/nova.notifier.log_notifier.rst +source/api/nova.notifier.rabbit_notifier.rst +source/api/nova.notifier.api.rst +source/api/nova.vcsversion.rst +source/api/nova.compute.instance_types.rst +source/api/nova.compute.power_state.rst +source/api/nova.compute.api.rst +source/api/nova.compute.manager.rst +source/api/nova.compute.monitor.rst +source/api/nova.wsgi.rst +source/api/nova.console.vmrc_manager.rst +source/api/nova.console.fake.rst +source/api/nova.console.vmrc.rst +source/api/nova.console.api.rst +source/api/nova.console.manager.rst +source/api/nova.console.xvp.rst +source/api/nova.version.rst +source/api/nova.utils.rst +source/api/nova.auth.dbdriver.rst +source/api/nova.auth.fakeldap.rst +source/api/nova.auth.ldapdriver.rst +source/api/nova.auth.signer.rst +source/api/nova.auth.manager.rst +source/api/nova.manager.rst +source/api/nova.scheduler.driver.rst +source/api/nova.scheduler.host_filter.rst +source/api/nova.scheduler.zone.rst +source/api/nova.scheduler.simple.rst +source/api/nova.scheduler.zone_aware_scheduler.rst +source/api/nova.scheduler.zone_manager.rst +source/api/nova.scheduler.api.rst +source/api/nova.scheduler.least_cost.rst +source/api/nova.scheduler.manager.rst +source/api/nova.scheduler.chance.rst +source/api/nova.vnc.auth.rst +source/api/nova.vnc.proxy.rst +source/api/nova.db.base.rst +source/api/nova.db.migration.rst +source/api/nova.db.sqlalchemy.session.rst +source/api/nova.db.sqlalchemy.migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.manage.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst +source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst +source/api/nova.db.sqlalchemy.api.rst +source/api/nova.db.sqlalchemy.models.rst +source/api/nova.db.api.rst +source/api/nova.twistd.rst +source/api/nova.test.rst +source/api/nova.fakerabbit.rst +source/api/nova.service.rst +source/api/nova.flags.rst +source/api/nova.api.ec2.ec2utils.rst +source/api/nova.api.ec2.metadatarequesthandler.rst +source/api/nova.api.ec2.cloud.rst +source/api/nova.api.ec2.admin.rst +source/api/nova.api.ec2.apirequest.rst +source/api/nova.api.openstack.images.rst +source/api/nova.api.openstack.faults.rst +source/api/nova.api.openstack.shared_ip_groups.rst +source/api/nova.api.openstack.common.rst +source/api/nova.api.openstack.ips.rst +source/api/nova.api.openstack.extensions.rst +source/api/nova.api.openstack.servers.rst +source/api/nova.api.openstack.consoles.rst +source/api/nova.api.openstack.users.rst +source/api/nova.api.openstack.auth.rst +source/api/nova.api.openstack.versions.rst +source/api/nova.api.openstack.zones.rst +source/api/nova.api.openstack.limits.rst +source/api/nova.api.openstack.flavors.rst +source/api/nova.api.openstack.image_metadata.rst +source/api/nova.api.openstack.contrib.volumes.rst +source/api/nova.api.openstack.wsgi.rst +source/api/nova.api.openstack.accounts.rst +source/api/nova.api.openstack.views.images.rst +source/api/nova.api.openstack.views.addresses.rst +source/api/nova.api.openstack.views.servers.rst +source/api/nova.api.openstack.views.versions.rst +source/api/nova.api.openstack.views.limits.rst +source/api/nova.api.openstack.views.flavors.rst +source/api/nova.api.openstack.server_metadata.rst +source/api/nova.api.openstack.backup_schedules.rst +source/api/nova.api.direct.rst +source/api/nova.log.rst +source/api/nova.rpc.rst +source/api/nova.fakememcache.rst diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/distributed_scheduler.rst index eb6a1a03e..cc9e78916 100644 --- a/doc/source/devref/distributed_scheduler.rst +++ b/doc/source/devref/distributed_scheduler.rst @@ -15,10 +15,12 @@ under the License. Distributed Scheduler -===== +===================== The Scheduler is akin to a Dating Service. Requests for the creation of new instances come in and the most applicable Compute nodes are selected from a large pool of potential candidates. In a small deployment we may be happy with the currently available Change Scheduler which randomly selects a Host from the available pool. Or if you need something a little more fancy you may want to use the Availability Zone Scheduler, which selects Compute hosts from a logical partitioning of available hosts (within a single Zone). + .. image:: /images/dating_service.png + But for larger deployments a more complex scheduling algorithm is required. Additionally, if you are using Zones in your Nova setup, you'll need a scheduler that understand how to pass instance requests from Zone to Zone. This is the purpose of the Distributed Scheduler (DS). The DS utilizes the Capabilities of a Zone and its component services to make informed decisions on where a new instance should be created. When making this decision it consults not only all the Compute nodes in the current Zone, but the Compute nodes in each Child Zone. This continues recursively until the ideal host is found. @@ -27,70 +29,82 @@ So, how does this all work? This document will explain the strategy employed by the `ZoneAwareScheduler` and its derivations. You should read the Zones documentation before reading this. + .. image:: /images/zone_aware_scheduler.png + Costs & Weights ----------- +--------------- When deciding where to place an Instance, we compare a Weighted Cost for each Host. The Weighting, currently, is just the sum of each Cost. Costs are nothing more than integers from `0 - max_int`. Costs are computed by looking at the various Capabilities of the Host relative to the specs of the Instance being asked for. Trying to putting a plain vanilla instance on a high performance host should have a very high cost. But putting a vanilla instance on a vanilla Host should have a low cost. Some Costs are more esoteric. Consider a rule that says we should prefer Hosts that don't already have an instance on it that is owned by the user requesting it (to mitigate against machine failures). Here we have to look at all the other Instances on the host to compute our cost. An example of some other costs might include selecting: -* a GPU-based host over a standard CPU -* a host with fast ethernet over a 10mbps line -* a host that can run Windows instances -* a host in the EU vs North America -* etc + * a GPU-based host over a standard CPU + * a host with fast ethernet over a 10mbps line + * a host that can run Windows instances + * a host in the EU vs North America + * etc This Weight is computed for each Instance requested. If the customer asked for 1000 instances, the consumed resources on each Host are "virtually" depleted so the Cost can change accordingly. + .. image:: /images/costs_weights.png + nova.scheduler.zone_aware_scheduler.ZoneAwareScheduler ------------ +------------------------------------------------------ As we explained in the Zones documentation, each Scheduler has a `ZoneManager` object that collects "Capabilities" about child Zones and each of the services running in the current Zone. The `ZoneAwareScheduler` uses this information to make its decisions. Here is how it works: -1. The compute nodes are filtered and the nodes remaining are weighed. -1a. Filtering the hosts is a simple matter of ensuring the compute node has ample resources (CPU, RAM, Disk, etc) to fulfil the request. -1b. Weighing of the remaining compute nodes assigns a number based on their suitability for the request. -2. The same request is sent to each child Zone and step #1 is done there too. The resulting weighted list is returned to the parent. -3. The parent Zone sorts and aggregates all the weights and a final build plan is constructed. -4. The build plan is executed upon. Concurrently, instance create requests are sent to each of the selected hosts, be they local or in a child zone. Child Zones may forward the requests to their child Zones as needed. + 1. The compute nodes are filtered and the nodes remaining are weighed. + 2. Filtering the hosts is a simple matter of ensuring the compute node has ample resources (CPU, RAM, Disk, etc) to fulfil the request. + 3. Weighing of the remaining compute nodes assigns a number based on their suitability for the request. + 4. The same request is sent to each child Zone and step #1 is done there too. The resulting weighted list is returned to the parent. + 5. The parent Zone sorts and aggregates all the weights and a final build plan is constructed. + 6. The build plan is executed upon. Concurrently, instance create requests are sent to each of the selected hosts, be they local or in a child zone. Child Zones may forward the requests to their child Zones as needed. + + .. image:: /images/zone_aware_overview.png `ZoneAwareScheduler` by itself is not capable of handling all the provisioning itself. Derived classes are used to select which host filtering and weighing strategy will be used. Filtering and Weighing ------------- +---------------------- The filtering (excluding compute nodes incapable of fulfilling the request) and weighing (computing the relative "fitness" of a compute node to fulfill the request) rules used are very subjective operations ... Service Providers will probably have a very different set of filtering and weighing rules than private cloud administrators. The filtering and weighing aspects of the `ZoneAwareScheduler` are flexible and extensible. + .. image:: /images/filtering.png + Requesting a new instance ------------- +------------------------- Prior to the `ZoneAwareScheduler`, to request a new instance, a call was made to `nova.compute.api.create()`. The type of instance created depended on the value of the `InstanceType` record being passed in. The `InstanceType` determined the amount of disk, CPU, RAM and network required for the instance. Administrators can add new `InstanceType` records to suit their needs. For more complicated instance requests we need to go beyond the default fields in the `InstanceType` table. `nova.compute.api.create()` performed the following actions: -1. it validated all the fields passed into it. -2. it created an entry in the `Instance` table for each instance requested -3. it put one `run_instance` message in the scheduler queue for each instance requested -4. the schedulers picked off the messages and decided which compute node should handle the request. -5. the `run_instance` message was forwarded to the compute node for processing and the instance is created. -6. it returned a list of dicts representing each of the `Instance` records (even if the instance has not been activated yet). At least the `instance_id`s are valid. + 1. it validated all the fields passed into it. + 2. it created an entry in the `Instance` table for each instance requested + 3. it put one `run_instance` message in the scheduler queue for each instance requested + 4. the schedulers picked off the messages and decided which compute node should handle the request. + 5. the `run_instance` message was forwarded to the compute node for processing and the instance is created. + 6. it returned a list of dicts representing each of the `Instance` records (even if the instance has not been activated yet). At least the `instance_ids` are valid. + + .. image:: /images/nova.compute.api.create.png Generally, the standard schedulers (like `ChanceScheduler` and `AvailabilityZoneScheduler`) only operate in the current Zone. They have no concept of child Zones. The problem with this approach is each request is scattered amongst each of the schedulers. If we are asking for 1000 instances, each scheduler gets the requests one-at-a-time. There is no possability of optimizing the requests to take into account all 1000 instances as a group. We call this Single-Shot vs. All-at-Once. For the `ZoneAwareScheduler` we need to use the All-at-Once approach. We need to consider all the hosts across all the Zones before deciding where they should reside. In order to handle this we have a new method `nova.compute.api.create_all_at_once()`. This method does things a little differently: -1. it validates all the fields passed into it. -2. it creates a single `reservation_id` for all of instances created. This is a UUID. -3. it creates a single `run_instance` request in the scheduler queue -4. a scheduler picks the message off the queue and works on it. -5. the scheduler sends off an OS API `POST /zones/select` command to each child Zone. The `BODY` payload of the call contains the `request_spec`. -6. the child Zones use the `request_spec` to compute a weighted list for each instance requested. No attempt to actually create an instance is done at this point. We're only estimating the suitability of the Zones. -7. if the child Zone has its own child Zones, the `/zones/select` call will be sent down to them as well. -8. Finally, when all the estimates have bubbled back to the Zone that initiated the call, all the results are merged, sorted and processed. -9. Now the instances can be created. The initiating Zone either forwards the `run_instance` message to the local Compute node to do the work, or it issues a `POST /servers` call to the relevant child Zone. The parameters to the child Zone call are the same as what was passed in by the user. -10. The `reservation_id` is passed back to the caller. Later we explain how the user can check on the status of the command with this `reservation_id`. + 1. it validates all the fields passed into it. + 2. it creates a single `reservation_id` for all of instances created. This is a UUID. + 3. it creates a single `run_instance` request in the scheduler queue + 4. a scheduler picks the message off the queue and works on it. + 5. the scheduler sends off an OS API `POST /zones/select` command to each child Zone. The `BODY` payload of the call contains the `request_spec`. + 6. the child Zones use the `request_spec` to compute a weighted list for each instance requested. No attempt to actually create an instance is done at this point. We're only estimating the suitability of the Zones. + 7. if the child Zone has its own child Zones, the `/zones/select` call will be sent down to them as well. + 8. Finally, when all the estimates have bubbled back to the Zone that initiated the call, all the results are merged, sorted and processed. + 9. Now the instances can be created. The initiating Zone either forwards the `run_instance` message to the local Compute node to do the work, or it issues a `POST /servers` call to the relevant child Zone. The parameters to the child Zone call are the same as what was passed in by the user. + 10. The `reservation_id` is passed back to the caller. Later we explain how the user can check on the status of the command with this `reservation_id`. + + .. image:: /images/nova.compute.api.create_all_at_once.png The Catch -------------- +--------- This all seems pretty straightforward but, like most things, there's a catch. Zones are expected to operate in complete isolation from each other. Each Zone has its own AMQP service, database and set of Nova services. But, for security reasons Zones should never leak information about the architectural layout internally. That means Zones cannot leak information about hostnames or service IP addresses outside of its world. When `POST /zones/select` is called to estimate which compute node to use, time passes until the `POST /servers` call is issued. If we only passed the weight back from the `select` we would have to re-compute the appropriate compute node for the create command ... and we could end up with a different host. Somehow we need to remember the results of our computations and pass them outside of the Zone. Now, we could store this information in the local database and return a reference to it, but remember that the vast majority of weights are going be ignored. Storing them in the database would result in a flood of disk access and then we have to clean up all these entries periodically. Recall that there are going to be many many `select` calls issued to child Zones asking for estimates. @@ -117,7 +131,7 @@ Finally, we need to give the user a way to get information on each of the instan `python-novaclient` will be extended to support both of these changes. Host Filter --------------- +----------- As we mentioned earlier, filtering hosts is a very deployment-specific process. Service Providers may have a different set of criteria for filtering Compute nodes than a University. To faciliate this the `nova.scheduler.host_filter` module supports a variety of filtering strategies as well as an easy means for plugging in your own algorithms. @@ -130,21 +144,22 @@ The filter used is determined by the `--default_host_filter` flag, which points To create your own `HostFilter` the user simply has to derive from `nova.scheduler.host_filter.HostFilter` and implement two methods: `instance_type_to_filter` and `filter_hosts`. Since Nova is currently dependent on the `InstanceType` structure, the `instance_type_to_filter` method should take an `InstanceType` and turn it into an internal data structure usable by your filter. This is for backward compatibility with existing OpenStack and EC2 API calls. If you decide to create your own call for creating instances not based on `Flavors` or `InstanceTypes` you can ignore this method. The real work is done in `filter_hosts` which must return a list of host tuples for each appropriate host. The set of all available hosts is in the `ZoneManager` object passed into the call as well as the filter query. The host tuple contains (``, ``) where `` is whatever you want it to be. Cost Scheduler Weighing --------------- +----------------------- Every `ZoneAwareScheduler` derivation must also override the `weigh_hosts` method. This takes the list of filtered hosts (generated by the `filter_hosts` method) and returns a list of weight dicts. The weight dicts must contain two keys: `weight` and `hostname` where `weight` is simply an integer (lower is better) and `hostname` is the name of the host. The list does not need to be sorted, this will be done by the `ZoneAwareScheduler` base class when all the results have been assembled. Simple Zone Aware Scheduling --------------- +---------------------------- The easiest way to get started with the `ZoneAwareScheduler` is to use the `nova.scheduler.host_filter.HostFilterScheduler`. This scheduler uses the default Host Filter as and the `weight_hosts` method simply returns a weight of 1 for all hosts. But, from this, you can see calls being routed from Zone to Zone and follow the flow of things. The `--scheduler_driver` flag is how you specify the scheduler class name. Flags --------------- +----- All this Zone and Distributed Scheduler stuff can seem a little daunting to configure, but it's actually not too bad. Here are some of the main flags you should set in your `nova.conf` file: :: + --allow_admin_api=true --enable_zone_routing=true --zone_name=zone1 @@ -162,6 +177,7 @@ All this Zone and Distributed Scheduler stuff can seem a little daunting to conf Some optional flags which are handy for debugging are: :: + --connection_type=fake --verbose diff --git a/doc/source/images/costs_weights.png b/doc/source/images/costs_weights.png new file mode 100644 index 0000000000000000000000000000000000000000..b65e98b0c5d1f1bf6d24b6ab28a95f94fb149421 GIT binary patch literal 35723 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 literal 0 HcmV?d00001 diff --git a/doc/source/images/dating_service.png b/doc/source/images/dating_service.png new file mode 100644 index 0000000000000000000000000000000000000000..49f1bd86a30d678f282832c265a7f028a847d827 GIT binary patch literal 31945 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 literal 0 HcmV?d00001 diff --git a/doc/source/images/nova.compute.api.create.png b/doc/source/images/nova.compute.api.create.png new file mode 100755 index 0000000000000000000000000000000000000000..999f39ed95afdb067f9ec47c988eb9a2bb28c35f GIT binary patch literal 50171 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 hA-KT&KiUu^&Y literal 0 HcmV?d00001 diff --git a/doc/source/images/nova.compute.api.create_all_at_once.png b/doc/source/images/nova.compute.api.create_all_at_once.png new file mode 100755 index 0000000000000000000000000000000000000000..c3ce86d039f0b9f3811d21a0f2db168ef598fa8a GIT binary patch literal 62263 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 VR4vBX8~OtH$Vw{0Dxiiz{|~vaTf+bV literal 0 HcmV?d00001 diff --git a/doc/source/images/zone_aware_overview.png b/doc/source/images/zone_aware_overview.png new file mode 100755 index 0000000000000000000000000000000000000000..470e78138971caa8a404585e21cdda46693eb6db GIT binary patch literal 56142 zcmX{7byOTr*R~Dg?(QVGYjB4UTnBe|cS7($fZ*;L+1Yrf!x{ zs;0J19&F0e8lSwl*?8Fa`GkTDp`cc~<-SU2_!ylT!W-ZjVvRVRfrl|9p{1qa;LgCk zU^cvjWN-6s zn z_djXHEh+i{W;J^mW+_IFpC7O9GB#`FB}UrJ0J`KDYJ9e(qy6Q71tM<5ut+SqcWPcd zd|B=A9gQUo8MLnkKM%p;;r;gb0a#tTQK`|Bm8hpKCwBhoz!I;yH0KB}g^ z`haQFlx(WU#8`dyHQ{Mh-e-0Oq!r2tP%}hK;a$`m@VAxLB>k4`VDA_no2E7Yg=f)} ziNVqCxGcY$B#Ll}=Zks!tX`x?O;uZUbp`(+-8e#&?)Y8T&O6$l>ISsq?{die9CFbV}ji(HW-!@-}9PYIJ!P9lgq0;UJfgC>MRf!T-!FAF|dGl+P@EQ&{-#aAW zRL4i2(~ESD81=#@2t{V76fmq#=1UVg6jR7>3J+k=0*hv;CDXrLf^Owxon#F#hfq%I z%2sK4mX61+YjQ(JIcH8j`P2NZ<9%SpJ(^tX2v_kDdF&uo)jqGw-cDK}r6A;-z8 z+Uu@KUstmc8eize`}x(0YkD}2*e~%J`Hm#skPG62GKr z4@fy^Ek(8V@G!q9w?>B79Fow>G0&*a6r^gc`NFz);QDmM;b=Y#7V>0fDXMTDc2K%* zHQi_j7Kt&pGOUK1aqS|4i)|$iA&&i8T#g%D6!_2KsV&#W-*6L@O(@vb$&y#n5UP0o zZQgUCu76dWYVOeaaz4QM128loCnM1Y=9xyVke=Hrg(tOjlx&PQ*2{uDZ@zcX3#$Hs zc*FRvVG->~n~_J6{bx|4DL8liGYhI!VRhU6WF$Fvsx#))alGCi3JM}A&Jmtd%Fp4^ zi)^d-$uO_#P%18^`8u-R{mX+7ua*QlM8ERJU{m*`*PJuNJP%$b%}x-W>^Au(i?Rj1 ze=pQdM0srHD3que)w8$ZrOH%7PYXoVCtb*|{#+TY&EyH)UllS3%;7enG7c-@G(~_H zN5ym4aff5pM?FX8=eMpR{pU*957fMEZ7W{C=a`ZWCGUFsD#oBwWUq=Pn9Uw9T{p9m zZ;5)|3+fu;ZV1T~IPcO=2TahHQoWenC%banvM=(sn)T(FoxwdNVWKIaJJo@S_`-KG zgM9Ukw~P!a51axlmbjvhZ#I9wf5dl8eNq;;FU(vUp?L72HAE$yOM64K#D4npCe$Wv z+F04&V0!-cRq4PL4^PIpEaWyeNCLK zl{flYdU^&#s843s2fsO37~vCu=oO6_3rzQLhyd9;ZH{lZ=pG|H=t|PYhB;gTXNGF} zz2z@9Yt_H4oXy*uOzghDKPW>@W$oPG(Gq7;O$R|Sr?cq@0+Y2~0=zsR7GwC5W9{Ea zaO|y=S0+53y`?TlQc~L!A%vI{26aZVatekociE%6!?oLkXSiGNU`M8lsi|yENLyV) zP1N!*d=kUK1;%u>4bwPpqAw!3KJf5QSPlSL(b~EE3$@Mrs_vXs^&?BQQw6h1huPc1 zs6wF6uy>G9Crm4u>KreY|91+bS5oEfFg>@xm8v`u%YQAQc7oq_oNH7_gySY`LD80x`tA|xk!AZ$^MKNSM28%PUnWaULdYGgRdRx`kAD7c$iqa zx8r746IbJqjk5k9ZA&RM^=gxOO+U0{t?;$n#2%FqbKf!eGUO!cbFZvECznTTc9^jZ zCBi<&OzODgbtST~V3xPgEtpS&%9D6qG@E!KY;D?nO?(TYTg!@^*7)BJjh?Ue*ifR{ zaK7Ce85!M&?_9>zLGB?=E;^a`lsS4(B>4KxkWYQwx!7fouwcd3ZgZMREt#;xpl8Bv zl9t=gZS)-s)0tmV!I=!TkS9olnesYzEeCr0Qj0wDzG#Au64R7 zyYt3?y6~ILxI(P_6svs&>l^`)J0)c20iYCA)xaT@KigstqslKd=iQwX_7`aWEArvnSx`Gti`>YGJG#=aj`+3wQKl1t4Xjq?$+SRnk{~KcvJCGeR@$I%6|1p4cD=GEfNzQL&*FPx3 zUbtbbZk|QX-B3xQet(Nw{0a|3c~cTwEchn4V2G?WHPt8_)Ov^CGpQLC%kl4GqXD7F z_!t>1aQ53Oj#MQyIIib7t&L${CkmInN$|3%`stMMdz9{7Oq9W&yS(Sjne*Y$O>;-v9m$UBtE>hm+M(D&4 zUvFfNATwv#!T*Fjp&|8{gE{rSNx};ffZiX54c(Y7nDdV)PhqH(N*$aG1R#~J`99Tr zwQUT));CqfKXT5F_O?}SoSLG2iYguMHx|(d74*Q77Y%Vd9mBb0T^y|hf0oF_TboTx z@9EjOIrc16!~9QZpx?99Lt>y{`9=1DiW(P0h+YBeGXn#`DPoDK-|{L}EAh|QJ8M+I zUjOb`%KK7}cH~`aR*P}lT6|$t=~SW@#t>GW)ZMObp#=sfq*W{6*ns)e(pU~&Swu^w zfagm%ZtYV(@)J=plr8|u*kuz>FTCt)N08rZTBDG}Ctjq{K8!Ei;?@N4@OMMbb=wQ8 zIxenDW>KT|&e@hELbmPEu*>Z{$2UfK99~o+r^u!}s3~dIez1@bT>FD)@>c$`2g=oA zU?oi5j3GgN2ns7+1^3kls=L`aY12w(W}Vz3n=hW3e81LRol-@^ z>O=*`3A`$!3gx;eaQ1?CFPbu+p&%T%1;^%$80#tEVIduto;UJ;T~M?OdE~I8x7FFY z)`4c`0MfNJ7>~!2Xv$X4iv-B#LX71`5V(sTNZ(%0N~9v;y)#*xJ~ewal=2s~-nxP< z!g7T_&h2frvDLT@j-O+ym3pyPlI&Q=^CfC)UIyYDp<%b>@jo zTK0L-(4SJIt1!V@Nv*&8&V5)(ulf`haSR0$HbEM9*vaCMt;%+Y95kYwaicqcjfYu{bTqPd>%$&XMC7eMfi@wG zg7bQt!(oMgez!po9u=Mu73(CO_IQGuA}b+3tuhMO|+UzkcT=06EL?o1n`V zI?~bsq6J(+OaGJY;`}fVA}jTx#>UF zn#$}7P*K$*PG98DtQ>g<54<5JKU{fL#I9D$_uL)>hTUQPSHY*eaUJ zzx;Ejr|Nu%1y>3fdFc?|wb&E}j!kCDN;E^<93(vb%&(SyPh37;iVxq%O?`BzR`^UL zMMQz!lf#D9l8R0auaoABK{V9y-?iuZJf0g&BDFL&^nXWt*|F8WrATLnzS$kpc27;d ze&KsO#%071i>JEbiT1)Q7O%zo1Osg4P4n+@^?(^lx8-JFv{oeLcDi0Ey~YnjTRpjk z<(putgYMn*z*omP{+TcrsQ z?cFl^0%w-@$G|L@<2HQjYR;Hm6Tl$NqW`8hjz=R9B503zQ|b0ozFKs((?p7kSPD=_ ztLuLxuVpL6=i*$$`s#Mmn_j8cWRg79Nki70{UlvrMc6#iTZ+(;Q+q94+TT z*d5f~NhjvB`z5M=mtL)=^hSmCZsti+z*6`NbXN|C(*(hyeTF5uSLM1-aRJvU)ug(E z6o8(6^=q@o*~8--d^~C``a){lNO@5DTnRuqPtY58K@Y34`GsT7kfPC7(8Gah|0Jj8 zinhzmPTxLe_}3|baab`2gFIK%Ya$)?@G&YOjach&0~fTWZ?7P_DF|~DHDkSsrwX0> zSU5Mkn7UWoWB0ZfnN$knt(3{(HTCVOZlWSQilqb}kGa+O@B2;om0BR5Ez1z%fD4|G zDoXTMlr0Q!a|@SQe`mv^Nyqx)VmxK(^?6p*;&l7L!F@%={o>+;>e7XA4@%(68AWWp zWM!p&?RlN8yB03i<1i(pgQDScMpl+ow#UyNe*l2bv0@Z}g`KL&XQ8ic4{ge$AWI8p1LX{PX&9W+)bx=eD4iKW?A)}ca|4vrbd{eupl-bUah@h zSyUvXK&+^7w!0QB`~v_Bi-Z?;<|)%{aW_)no5NY;V|y)Iy%t{ZVwf~7)vnuG78LSH z_7}V`u?S1ePrIxUE+M(HjAaBG8f#1n{Sntpr_dm4K(s#{80*5GmgQ4^iH*@xh}z+o z6rzA2H&rUG9$eVqlK84F zoVTjhZ_WT#Q`4}o6S?kwer=183-yNK9Iu?d*wu8L{#aAu9EGNK2K)>%S*CA1I-!fH zPtMx+O1hH!YXvR#Nk2S%CV<6#L$G;JM^yw}5{%-ac)i4+z*oDpB>S{fClv+z)>db2 zRU2)9{q(5q(wr1{aw6VOcg4&1(aRfhpPueTOuQEr>jb&|O3^Q3QCBCh>PogbUW}@6 zeFV`K{v;SpOG_4km37ZZ3bw7a-gbJ-4$Fs5R>IYH{4w$JGFA%*cP%F;0WB&@){2^X zkK!%NkCt|CW3-(7T0AfxpJD&-*DbEz=$PcmPc&6Ai}02$iq$Z`2mJ3l=P|b^@)DT4 zyMUhc0C~>gy*+ap*k~B8fru@NZ-@{Mbt3i_{Cubx=rt5ogdx-*va7QODv{fG!E)`Vk<cN3$NqvA}Z8Kgf#+gMyc}>MqgO6v>){UDzzk>vBlpGX8a4=Cl zlEXhwY@|>P)gVw>8a1T89x2@nR~%oQmlv8BnqLy;5s&LIWUPZ6S_n8ITXJ4daK5-m zo&ik;?NyJ=1w|&s#3Tt;;2dVTB$-(n$&}31t?xmBBG1~ggpEf>?&ki)EzbMr%wdlr zS3Jb{GbXPDqfeMgQn#o&Jxv)Umy~{dVq(0XL&%$WZQbbV>N(S?PgFf7+<8122Z}5Q z6>vm;Ga=!xPdzdNlt(XJK3eLTIP+gLk5ITTKmDq`5tQm_oDP4NjcGy3&f64kl4 zArv1ZgNR`Fr)Tpww|S265Btnj_r(63AN_U8Br`wNO=#4&0^z{auHR=wi~b*b4&wMA z%F0CRGwT22&7bW5vlr(=y)gdAu79dQ!F%@~g{MmXKW_bB+79pCkW10z{(lb9FbqK4 zZ+uO7|0CUhGe7L4yW9L6ssA~ceh}mwj`o7$|FLcH#sBQ8Qp9tz|2ZHPL7{+u{zGRC z`@rHKWV@l{!?q9+u{r!d2ci$kO&{%K!}vb{9?$cieR?b*^y_~P{R}}NLZ%*43jbs4 zK~;<&wyp~1s=)sou)aa#fsl(x^-%s-BMYSud-VJFnW_JC;6T|z22Up0?@9UKZ)NjJ5*R;QxP zskLSc{To7Yz6r!OcksOhaf@7pb(GQ9d0$^|5|8I@gumq*nZoe&Q=;L zWxhuefe1`kgx#kE4}Fkcv)zB3Gu`|}IkPbg>=bfS!wO!w_rgT|XQ)8HZUA&SuDCPa zKR=DP9*RpZ+eBi{vs#6j_NM5@Bg(^6akR)&%;PehZOT|v7Oi%6*b!}zADcf#xp_j~ z9huA&ikt4;Gy?CpX^$hAxp6Ip6!S>VQaTPtS#^6XSykBS&0lej^{x@iFPFdxX-IB@O&ef%=?#E@N{) zKLz)snd)_VF`I=iUz(eF^9pjA%@#>r;S5ufw@^j8nz#Y9YoH>E~xhgdji>_k0v z7zbTqjN`{aY}cVe%>umMg#Shr(&)mijU-RfZo@zN4TnGEO?h6l61M&BURWJTMpgXV_zE!@Q7$W#vGZx91pxtv3s%D zvw>g(5$ih)1Yc?yLi^CPxEl6!NeNE#$Qo@NE9m6B72#j{{TNWKR6^IwxeG)twSH6G z!MiyK4#6#7G&2>tvgJ8t7AfGozOv3$?y=p)C!8+CmGE+e4IY82i|nt>AWpiDIN6WZ z84HFb88RLAwLg_S-ci|UXME<`V_=wuHv-iy-0nXuG3k*NLmA=qVuMyxjQA&AiL~+Z z*8;&4oO&b%jkvUw-FCzzdhPCM&SaJwzZ_qo#yPB8Y6++k@U7gNY!_`kYQ!5@f}lZqMBr(X*MOY2ywri}zfk z@6v%=PtD`c_cJ?d+X2_O=%C~n|~$%ieYmxPRQN& z{n@$%Vi6j8(S5hGQ@)6vnAVQHon>YNXP=eb{1V*odhqI4dKrZCMl0eg88%UO_@S$0 zF0B^c-%3blB&V}HsiYEQ?1nO4DSxfbjZ&AD=}UZd$-yRCRNmFhAjB#{i6O#sNJCGc zNmYR>dzT^|Il7`luHffxs4i)sDES>=udgM~!mHxw3q2qI*nzetpWQsutxpA;zSzoh z_=nEaZ#84qtzM7%%SR8ULfJwED^`_Ku6O--x;CVs$hG!n`)4}nUW3}YJ>eo~Kpya{TX-GU`hSHWDc*NhbB?xxf^sGbPTX8LU)w_acq zobz+75|Sq+MqwZn^NL|A>UH(FKEBLmxEFvTW+*T;_If6Q$c+H%5$<|NL%81l!i@WB z%7%}+`C_vq!>7E<59h#371EJb^QmRc4>QN*w=!N^U^g?+J-Z9}HSqO?jk?7Y4Y=9u zbBBvL-9hLrWCc@O1Np1y;X+xc`Oljhz4H*l0Q}^H{E-s{P5cLk^8#p$3{oixwk)lz zlI}Znk}fcw@8WccudJ-BM7NPC5H>#|fz$hU8H4Nsmj6(%E2FT$=G?!Du|6I#_N2pm zSGxmy;xJ!iPHZbHg3njPeJv=@_Z*}84ixU=DSAPi%Xx^{=E`P0-;&L~Qb-&Vqpp@-tQ5!^e2=DfOkd zrnIGhSKbg6=so(xb5~GAI5_x#$*peeOPhpa0%J!U%N$qSEm~SsTvA{;dnf-T?R!X& zpJnk@PEo`kpA>V(ywo+gkZqML;c<=eLlpPdDkivFFv?N z2%+*tC?M=K?&@mC_v}RSmEV--uSX?N&|A4groS~;M6tib)@kR9eII3~t8D51Oh09O zJI?)`BvaX?bYPnB;Jvt9ukPy$g=t7=^nCM1YE4un?1k%B#lBD8L?zk>|xqrLo zHIuQey}P5em>tgaE4262cx@4NC-Ciu8jxBWT7yN-nn;9E zr-w+#rfv5(6iN`%;?AaF2e|BjGcy zGSXn8YDbT%v}n> zkP#q}CJq9ah5ll2??A>copRXe6GdktKre;(5K2I6@T zMK0+5G!Sl-P}9yuIGw$%*<4j_e})fg>pA}OOiUp*7DC96qjpH)Q0+!g7I-j`lBEKh z$d$aYc{bmskp7GIG0QNxK#us&$oD+a{-7W~*XGvp`L;%D-(oa%T-YgclCzohFXpPO^g@5d1MkcX)P|pmV?QmN8xZP*eCB-t#`cApGdu?1MMK%Nl>YbmWq7|-c zNn&EdezrTIUX7iao+h_4>)E3q*tMnMVc80}iBYsDB{$LlHq7`%4~J<^58aI(OU)z3 zRuBpHUqCyhwkkJLiCAp5Z@{9OKvf~|Xr_xJ67(c_C3qW0%tr;;oGU68NJABVo3b>)*j-bHKA z>d8#X*trd?pY(S<=55P5!nnV~1LTTW3-Nl@KiZt~MUdVT{b#U{Y1gXz12D4q{8iy^ z0QK__pYM>IwW~V$_B=^FjdwN)wJV)jh@Z4kVMYWrad@huS#2|=x8!*%KQIV5%P0LCwhaB|B zk6GVZVR?wp5;&17JVJwpy25%u<;_b8G}KtCxJ*3#3k&bFSA1_ne%hFMPhda#E6sO4 z^3aZAh&dU?=RZmzc^MNcCp*W+%q=1+D$2vC9C?BLIptOj0UlzM&OfH+d7A2YSYssS zneN4Wcuoel#k^5>w(1|Wk0o?it>4;Gt?wfPB9lKDT6Qq(5~3p9ZR_fKy(!LFdZ_AH z(9uk!eSJLE)yj;Vvvywd6*rI;qpR$RP+mCh*5`Hdj$xnjNXiw=V?2x_5!ul6+$IVC zxyd7DN#SS$G+bGwc}~8&1U$~(iZ2crY_GV;5-2gihsXTKQXp*FIQvDK9Ztr@+4e*5xqTdd_I-{j zpDURXeNFEHwxoS5unk#mk0yqec8WbCfE3oWGx(snm%B8lWzw{`PD4HY%#)K7lFUrh z9fORFSo%XN0}H)r*Spabsg8T2_t?VcnSPR063O6+3B`T2gn+jf0jA*sG*dy)`nt@B zjn{~Z~$G&&oB5rj&ZJK=mj~C(3H6= zI!d4!cmug_IS?!_E$t?LqV=<_S#jkrYAX2L=d{}7=t{0fh3BD)f<_MiGc4>^4X1j` z7dr%XW8=+tQ5wc_*}ZmJ8k)?^r!NY9_@Gm_kXCm6isRo`N3*Lekod6I6r2xrzZ+mb zC_ALYV;iktbqs%SII`-f)3U(cOy;|4;2UhEtm4v|x_g)qkFI<^ouq9kv8Vea@)Dl^ zewLg4jn!42TthboP;N2Mi{^)J!SGX1zBec>mPNF}TU8=N3 z6kM?xIiY9c2@5cpH`ys8MnVCLw6$!Hbd1{*v-=?YdenK>Y4nQGL?Y__v?c2O_?^@7 z*WbTeX{BYy%01!!i|vJfiaN9nztiJV5SNd=`)q^CMf&`EE&nYp4!S#yG!<(Qw$t2* z@0}OkZSN(^HOA$(^}5D~yFJ;l);>(F>SZyB8JPlHqJ!ztdy0s>oZ~s&7PfmDqqpyS zBs38nC?|u|gOKouc+&ap5JE!y*d5jl01j0TDUZExp%e6I{`EdlLC^b`IJLFpn>~T= zuMl-#{AK5#i^-p!QAc#Q3WAJ#n8LD}Xw{E-jXRpO!LYo%TPNKR)@_P4s z$`w48rV|_R;wmxWD}+FZtzSD%TpU9VM|9ff*VU1S z)K^rrghtVeb{l^EvyOAG#;mC0wL;dj5R2ab0m#{yQ1oTbH8sysP|mNf&r?#)b#>3p z%+B@nq`E3*?p0CZq2a@!Z~>u8n^9Tu->d!*$tw7VWn8xoM8_|GF$n0xTFoRih@sgY z-QFcU|AF(2J|eXh;TPifJs*C}ly3M20?zr`eodd_q4MHbdoTTWrl*qin}UCF0@<|0 zw{MF#-mq_j7gfyDZ*MOoc*23FQXUv)p0gUc1CR$4;kJ88{;qtn7?=2z=(5in4eVZ* zga6uEg@js{mRi$NCH>DogpZ-f$a5;=o@)K;um8%|*U5vQL7@B8R4*whxE1I{=pB6g zwY$5utgN-0n>9;IGeWZ_+NV`c$J}N}0bV)d*Qnr!Bmb2jM3LnN;rpkc*~+<>rejQ(c6ez&9R~376t;elP9HYk9h~>^2%VL)# z?Vo|Uhnjr0*V!G6PD}V8*ysn$oc3Kxg7f^T9;?G4l)8E+``PU_uRYMOts|QZzS49y z|0+8NfN!7Ic9*2bEqlgcTHHp;$$-%x#u-V+wWxCK!O#5UpCe_rHvHy13AiMOja+}; zqOyj5Fmv($YCykIVRlZu%r18$Mwzj-u~R{BdYl(ctbB@EgKo@fep;!3I$jZv=$TrLpHt2;+Gk=gU`&s&JawDOvI1u`q}6~9*`NazrD!#vtvyT-^H(x|BB z=;!HcYD+tOS;J*@nkbdAl~Py!^e9K?%Dgwe3t?xjc%?^SB2_?XuqVOh#`G~f7rRFJ z3Mq*K)nZOn8MP(mp6bbS?qD$AmvW5{(QoGFP^-ASQ&uT^L@>Z3NI)ls_~|PE9Q^^= z)q{WGAUzh24AF(U-D9jByV(lawL_sdWNDk@TD(~A9`YaRwO!e(OYF(-T*`;sL65SP ztsCFik=fHL}n)txQLjPwd&N#9OWWHi>$v`?FnBYDxIhu$6v>3EV}H0?f9r~7;~a!MEdf{uye%8! zEr0#0e45qZU1e=i3tOIo0&YGy{q`TQc(%P*hSZU@IlA#^5xiVyXWpAQNVxmihn6qz zPTm@XgoG@`ab|y~1;n`8EX?W@P*Xn~y!pmfI-}T+QBW=yZzn}|qVzgyrTIu%AcA|$ zLET6;eTM)giNv6M+3&W_G76?-=+a!Bl)^iL4APfR^2klTtF-VX=Axigz2CD%@M53E zhy;Hv@Vz&CIy>4dP~izLL6_|U5* zT$HCNlE{H0D^YA~KG4bP`?kSnGI26{nzzaaCl)36H#C7%_rF7B9iNP+74tgMPgJ<# z#0{eH>HKEdb9!tZ?JCgiOO&$TR3}hQTe^yCG`0t-b(4nK_39Dy&F-6A_3zh}Yd;I- zp_wV#{Ch|IK&Thixi>qY*ctAMwO_CGQMNZPS3fqDMBxbZNs>2mdg!gBZpDROL;QY! zp5E8*x61KHa48kND(vj8ZZ2N@8kBV&*@Q4%{=0KEf@VeI`HE_nZ|?7E;xep;{)A*> zfrh6S(Qbdp%NQcpKUaGTe@>n3VY&34dZX+OiFJGUNRIr(PM>Zb{oM%w3>dB zW>quqx5!Y1M#=#rZOhY}3QSbp)A4T~TYtAFed%0JdzAk|gZTcP9}4x|BY{(0`Pq4( zZ>KOl!x~t=7hPRl%#vxf{R97^>Y!axnQ6?ucA?$Yw2(a6MrjyI}K60k|OIOoo?eoWICE@dp=T_{sSj(6(Raug#%j|fi@budDHPB^F%&4 zSP3B8YUAvbt!*#`$uHNPYkGWZ`e7?iAJcL+#k-iV6TdP~nM0*QnNJhu(&ezbZHZbt zXka0!ByXh8E$-`g$VhH8_?zukp9w$;I3QkiN7TP8_DnC$ek*pOtZOqfs(_(s1+9x~ zS*8yFq9JBp5qA3Zw)4BqH@(C{N!Eq1Sa&jAVdwk%^E(1f{0eD6haUp+H#LTqntU;O?#CM4he8&gBM zm51Ij-{HXi{*j%C6s+ciq7LOH6Qs4ucL$PcO6SrbXgqspsBc*p)8Aw zwR&4%zqtjnerosa)8h}jW4C#q`)aP4&~WrC39+TdO4#tSmN320;=PnFFTDevRszM- ze6{=KT6=eO_NNH*;rpfHBS2wcQslRh9lX{XS1!MO0szKp1fQ%1A>(Yl1v<-XmO_Q@ zEg`~G&(5Zi`X@{g0BHyJxv?hxob^)^xo_j0o{Iz5_|X*DBWM zJ?p9&(+$3{FVj;ufX5N-3E0st-f8Qh`L;}=Bx+gdQRqA)u}}{P*?7~6keTX8JT)Ay zj1r#=I$dmLaQ@bYzbkEfB`e5-qv(%$AT{X0ozDevZSvrtqlhPJZsIRS2T!~vIHqrHv1NgnYS9Vvvbw;zFOK!nYRu(ReG}C&}XwI@6h+ z>ShTr=gk{4RdXP(hJMy>wlf3I+hVRoy?SnVp^h|64+PdJP2ZsqOA_UT;^N}RND0Ii z)^7HFB)_tf&6){AS;rGXz>`qQ;aCFvDZksPc=0B|d0~^qj>S_EUjV|O1h%a5x2Uw0 zvO|`FxQm&^=ua-<9fBc@P$QZY!akownP&eL$;b@x4{qb`JzVV;nX?!e7<`5D)-jbJ zz_DL)0($&@KG9Vk7MWjP;5uIj(H7tZn*qHqHtv{9TQ3Tm;RmMKO5)`x?8XmjIgyXo zOG@+b(VUk5Y~&VY3uCtcMwBvJ-X9t_J^!K>)UfQ+%}quAWn&(i@YSCuqZV{<)XVz8 zI#1NfnkDQ?c1;RDbSr>L46J$lR?tyJO~fGcp(n)fntw!z=J;)Qa+EriVs!L`K`4{^ zuH)HjA6HpHL+?gkJrKd(cbQe$?)fUNv1kI>7Tx`XbS8clFD^*&KyoI6!{<^)rWk~f%gBcU7k5uV4LKU zVT$7ZzhI#BuS6rqmJc?~hl=E^XJw`v+}PL{pzqAZ3ubM{iiU%=Rf<6in({6=(il|I z0XUYoatphU*M54t(kRP=a&fL?bGd(9m`m(vVVLae+ZY{!s2sK4kA-~sb8%lo>q3X0 zv~@-=?0S#V`yHxgLLr1IXH9~8RfXF>~}m{ z4BM1-aeaFKy*EqembyY~5JzcNaGCvEU{lCQ%WeB+9RAo7*L8OiobklN$^Y11T(`UvA8GRPu$dK;sXCntt?pJ1aw zriR8efgT5<4E{m{$URBh)&{|W9dX9Z^m79fz4|wGMFUB$f;wYkbABa{=He(x9R%bh zSmiEp?if3i_>Y}r70hGx8%kqyut!80g>I4ThhEAU#|Y{25apnxjrjoDWmr)#aXu`>=^2iy)06Be64__^2(r40tYMCd$`(BjDaP@WH zuc^PpXit}FT)mxQGcqrGyjC3pN|bYWJ+G6GnbBXk5csxz>9yG6J>^IZXl-miPL8Ps zd899|F!BF;{{AZ|YsuvDT3L+x^SZcVn3J1mf>VEI@oJ`hF$Gx$mm|V{w5^a1CEn{l z1Kfns_FzAWpLb5FjXe^Tvs%_=47s{1xi}W)2iVZ8yo-eED?O4RQRrU(v9s#W@DcDP zmfxX7VBLKp)+%_ic>i7O9}+&eyuU0`r@2=O29b2acDy~*?e-Qmw6vJ`Z%F&a%9If9 z(;~W@=?o562k|gZyjpfz3h5u@Zw?K>f-TG6)_5J=5I0Q?0p`sq37U2iYSeHPXF@!D z^XcXOIy~-+gXP?BA%6Dz)CcH77$T#!&UWRaz7z6Y8IP`UxV1i4A3L9X5>O`F*2 zMJ{h>5L$P2{n)zJA8o)$3;XGTlg33uBCBr*CML1Fi7-&4Tz$FgRwZxGG%{E-(tbLo z8*gS0pA5xw@{6t}1ckXa%(Z_aLJH^!?A9zuD||Q|5{NaJ0F!gtS6NqB>P(M) zZFv~cC)_;wl<22lxmuY7DkR4dVH><)#;ot{l0Uy8HD6L~zHoL10k0$siXNtoyrf;j zK}&>}mj{6EBZt8vXLnER_c`}Q>nRH%&psxGUFYc&`MhlNbbf!{kqm_~s~X)$+Ad{- z?4nsOI%Pjf$^)LjzAjN_o12DWl5X-4FQfE-4bu8B4X5(l14cJUU*S7Me0>Pp^LOzy zbyKUUZlRxUbmeQ|u1NHl-fp+2^Lfnv5b|PRJ-eI^$E>+MDdRVP z94tcr%!UAQqK3s$t7l=lp#D2=asbEr+*1G*$$_oVQ_(-DU*!?^_%WB#cvAfnN1=A` zYRG1;8fF`{im|o^N9dZ5;5adU3p@+psh2AAgoRjOdJY%0j-OyNF#VNdudQyy@0j*_ zZEk6?{ienS>Bj#!5!Mz93v=?>kVQ_o0TM4`uy=({I#HCc%i}n?a4|)$<|^kCS+$ZRAF(f5Nc`GC=FKg0bs^_8Vp;?|IBco4TCXkOcTh+{ zTlxLA5^7wJ7W7pI)eYfcceOReRffJ^#qS>7hJZ?GRV#b*n4<2%D9iC~Mw_9-WbgAp zDbIw;oc)n!dT%GAMwk5q+)|2%Qg1O+4NX1urTN)a^?7^{DwU&lHHhH0w56hdYtlU} z{nz^xa;r|83kK`6Ex8l`{i>9kZlcIqXreaXyrNRR$My<6AgSb@Y!SXu%W>sSLVfP5 z@y*Osahgvv=VlNRklna-zd60VJb`T_ccFBnvNu&37&bT-^Q>_j!^+B1!{H3_)3o7e zkq^xhYPyXm{qJu`r9DCDy|@fth_FKBw*RHv(O78WpbyGCqaLEWqBT+RXKejxGCLH7 z^_#}3%^Sf~7fY=_Kd7^~MEi#hB8}ROo4vsL*MxpmU$D~jkGt96?uxkOm!!BFPkk$C z+5|yE6toManByYgb8|eF@mq)W3R@tPy+bozSJ&aoc>b1&H+QiJqRKGA!t$7~eoxZe z;y9+zX8~FsMsS5bF~)#R70=I>e{RzIRL>|%VQ*Qf9M+z`lza=xFHs71wvMnJqY-~t z{?5&+;*t{ThsMk=c~j8=^Ipm#U*)goezg5~Uf8+U;!eo=QYxD4&0prsjSU3u!m!_# zc{eMj8EIL`AO*bEdGB_95=7IRGj~!MC0pbKO;KnqPUlt}z z<@jcq55jR_jto;23P)}7~l@4fQ}?9V=D z@3Us%yM9X;G)Zq@AMrOdy|QEb2Ol*s@GXq&!KA2d`Q^S@G7|$I1M+dtsYR%0=c94G z-7?C{Hk0l0nHAnCyqp@Tv?>&bypJKdiVJ?G#u^pO1!9>{aqTx|q(pUrsOI#Zbkz>(QYQzD@N{k<*&GQ8+?VC#d zdoDU&8hM>ut# z@b32BYs^-6{v&}HC*VC!jiL2JoKvG(%vp8DuruvJWxdh!I@F_F5_1W^J!~IjYBi_n zihfMlVV2!5?Yi>?KX+vp>-=pxrXEMMfmeXJXLanOs2dUTkvuTk6Qxksa5B%M8U>1y z00|1@T1U8g#REQ2wn^#2+9)kGt}??XpaZ}5^03~Ly6I*;|ee*-2S=LVf2I3?M&flo4MWV zcr&2$Y!h=V;B5QpEivJ!x8Go}4|=oOwfK0smIn<^QKsJjP&@cb$H8R2H$kDL=hrbg zuSJAhjG9zED92=rJLn$mu|#YjXioszy7iM2_S^r9b=(B0gdWL&+m?);ZoKy$;=~9J zFK;W_mjO|%KgDV-;%n!T;$GX*PH@3JBFyB}%UoUy%tT$f6F>w|I&6HyQshRgx`SYj zDoVhY{&$`vz6U+Vzh6Uaq0QVSTjtNyS9(uPP@7K2=O1e`8BIv<#lO+JABPq7R{)08 zxG``xU0@y`A{)}vuzNA*aL*U=Av&PDRsGq!0bV1OS<5JJ;P&}_@18kLHVfVif)w&Gfw+QAMrb4x)zmn?jxbB5WXBKNRJ#P)K^1Y`Ei!@&=P)w?})YdL*E75Ts`bv-rFcb(Hd1|%?5g8!>LWX^TtXxdpI#zew~yY&-ZE=Se(RcrGULNA&+f)~@AX-(+7* z+WPbVQrQr&qePpsj z6p6BpdGl!%IrpmwOrBr$l|Tdnx91nNkt=%}T1qSH>L5{8_4KmNPKkj=`#ug1<;ZQV z%ZHtvFU#U|pafKp1f@@30Xw_e>Os7hY@%$x$Ivu{;!!tmdIwzbQKK3`JxbXb$+1HA8hI{tK`aL^=pMJBX*2oC z*G|6Ghudc;?$D2iks_`4zgHZ$^?RK$S3}Dw)_n?pfGvCZp_uh5~B&TK3IX_p@xaWIKuI9_A4`ZiJ+FT5E0dyME4#u?jnI zds+461qb@p0Pv4!Xrr%qJT8J5z3g|2SOwrS#BP?e2#4SYQZRDJ{{B822q_B0$H-V& zb~v;4WvCt3P*1#sj zOuV<<$!v`KK#ba2do}D27)Eh9vsR2uHU#uA01|AMd@bDY?GFGUhVgdgF&lqTWiff6 z{{#Qcl_8;_&1h+*Jv`zH`!qD-mlm6Kb>R?-CDCBO+;j1Th1R7&mew5R?P-#@*B92N z+$`?$BC`sY<>yy25T`M!vL*R#RIGSQ+DcR-vH3$tP%z`fnR|B@%9KP07i=Qc`Pw`h{BO?(T$i zbW%Gz(PpVPYzA;QC65AcXCIiMI*mQQXOX#_-!4|VB zyYDpHrWOSVXg9nyrsfIyNO?JrMA7tASbzhIuq%&mS;!)#_fx3Dl}G6IL!o{O2G!|S@@+8nQHwz;{EgUb_BmjH=3*M!o$L-Gv~_u zyqsaZ7_@#K`{h|Y{`(q-X_rZFP-C&|*cA}zHatIkYgHduYp$^qPC(V#vY4&VquuSi z{ckuwJ~aHC{E&N z&|ECS`cW0>O@%>KQ6T^BCNaGrnB7$~Rlm88M-<)%biPhUyR;qIz{St&z|T_=7PYiA^?g2pO&N9TeDk_c z9^BdJU|_)9YDv?ww6e_O6%)6;sEw|)#LLs#!V^LoXeBlTL4Km66hLiDABH|W*UbPs zngo@W#%E~gGMIP{_GE@|Dyyne$bWr2AZR%|t!Nk<3LRmMgbl1*B3Vq zQ6YM%s5=NJGgcuyUWkcZprT&v^ie-nRu*JQIRa_r+Xc&ZU0d+7|{$gDqjH zgrQ+xXee4Hg>Wmet!-H)g!_J$GdN%H@Y^{FS*EoJWtJ3PleC@8z9%d4C(^mzmKv<4PqcXHfGGy0`*hOcBW0i(XqOu z#MQ#$vYb82OH9p~-0-Ei_P@>{4hUF#hYL}WqA^wb5l==D5j{P9p-9RqX{QONq0x5m7oUpX@g#m-Ani?ftnQZGQ8Yy&>EGuhVNr|~@ zHb1y8$KjjocK*;1jgk_wt0C+D8o%GGgqIh3GPs|ozYjhW4BH+iTu3|y&?^I1?rCQ3{C8@}*iD}2QUuw+k^-n=AlYbKV#Ka6`MzT;c3$4=a z?fnD%{i9NKw}`<=e@$7~e(v=nIuHLN31)Q!itx!M+Rala}Aj0qy5p!2>| zWX^1pf{qRaU*)f*X(lAlXK|{Ax;j`)37%;Hvq5*XDMeo1S4U^_J6mrcZ~1EOJUK^X|Ke2Dd1kg% zO;?wRz8tcOgKIw|u(PD5Mn&v05N9(g%_^$CB{>;OPOjxwi^gbEo3HPKnwqsS1Xd## zLSJMgouuT+{uspj9n$pdKo|KNR?1Hy0j-2k;pq~hUBZL?-^MCIL$!EZ=N#U&IQZ#d zwI`UoA2Y`;VGjHeFfx_ScdEeL?}s|M$w z=ceRj%5FlC(5e1dCfIf+X}^*%@-ep3R8*`hGnl6#dU$vVr6M<>;-&SOl!V03j*gM&Lw=PR0z116lY9d3!v!G8ZbSYNa&{$>uMXog z`*nnj&vxR=DELPA&owo`$761Q_KW~jj-rmEM4+It=;Yy{l&rG-Src-4YRkxYaDGll zTLwnNA5;VZBzhQ1xm$dm=J5xMp8hWL8qwR1iL%{OE)@>)TARS|c zz@HTmVc=?<9@8Q7ap52R7Vh&glcG#AGb!5b33`K#`>T{$yQ{{@qJY0q5gO{KtPEnX zDkvl+BXECyrbXS$!Kyyl-kVI0x;>zw_kh6N2BFc3nkVB2}7_FS_eSD?s*sKuyC4Qz~)sErM8azZiNX zn>BWUc_O_ zXBCTR@0BTUuMH_>6KnVqYx}c5YZb~HL{wKK`U6^RWX%E%2UpxC-F|>>P-Hh$TFjUK zO^qlUiVgc(Pi7#Zf9Vm47MsP ziVKOfzkDeP0nC^HHNOWwcXWOe5D-AaMO15PG=j>+3>7nK47fOiWBr{9HYH-%!u^3Dwfj{S%LmwZRbG&y3g}jik`m z*@c{aR;eo@jv$iOrQ{Vn+&r{I$xcI;u~ljfhZs(uE0J?8%4Ik@)&>Cv27Y80jkPqK zS790!er9~1ygUu8_{ENWl;fd8ZCKj<7@stZ zj4}J_!bHTX>I?C)Ql6&Y&Qde93rkAG?o7JD_P}8RRt$o&$jsY&+S-6=Uyx0^KQ>le zHH!O*t^D}d8XDTqy9Jx0R&84h+$7=MrSB;=B*eU8TvxSFYAI)TDcKWPQw#pDdb^^X zrnoHzipfGH8(f1mm;?nKpwf_Z&41!>@OmI4AyEoPQtY9jaAm`)A2$KuZ=xDyUp8p(n*5t9eGQhuTl3O=mWO zX5WqEQ2S-q2zlvZW4$iLf^MWX**lREJ79$cMSbZGPspzBuFw1)jf5kpd_@FeF@fhV z=b+mzl|H{ursqc<5-1S!@${E+s_~*l=cEW6oE()vlt=|=sPFL!Q<1J#xUi3yEvj&* z_SV)J4Gp)(+8C_D1W4XK!@4@CeIpeitLCyneZKchqbpHpq%R-ue&*)p+etoyhlu+&;CV7z`*`B%_s3E_W1VT z*e)sqvPpMiQxsb~J`zZJ{Fug}rm#@*%NO6(2Q`_?NCHCzT`8&3=H~bkY^9IX!9z*` zUM6N{XxiQTvlU^7a`3T$n=411sX?xQW`{Jtl&$zgQj$RAExJlVmB?ZWR(?Y5fZEkLUct{*Uj+veOQZC`| zUs+UyROiN*dpMRbgRaK>-%#FMfd+euYhOLC?3}!fy|PLFUN#yt_7g4CWV@jAHyP(J8)bmWOTM z!0+?Bm$dSrO?PK(aF-J${#KR^clxD?x#f_)3M^@-I~?RAEb(LYX*&UNm$iJ%RIXU! zLyq$ykcL2DhJ}qSF7#FQ@MZT{*nfX~JW1kDYIXnd$6H`@Pouh>XY$S#8T{4)veSLJA?Q~aX77zL$=?|DMk-NLQqoSf}XlT$b zmcTeo{p}7=U;w1p6%VKg+K}AVUNY(gl?$woc|R<=Z_@#$;*#V zPO|Xu;NXlDcmQ02tE#HV#RJ2?1FL)V#3_p+%B`Y=B7y~b8iK@zGdOS4>-72pu^;~7 zxs1-R1-Zn!oQK=kEj#IU8b8Eq-r@B|L{Ik+w@0=45LHcOb9&6(v@oZ$

33JIJoM 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 Date: Tue, 7 Jun 2011 15:17:34 -0400 Subject: [PATCH 139/164] pep8 --- nova/utils.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nova/utils.py b/nova/utils.py index e77c80262..691134ada 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -142,7 +142,7 @@ def execute(*cmd, **kwargs): env = os.environ.copy() if addl_env: env.update(addl_env) - _PIPE = subprocess.PIPE #pylint: disable=E1101 + _PIPE = subprocess.PIPE # pylint: disable=E1101 obj = subprocess.Popen(cmd, stdin=_PIPE, stdout=_PIPE, @@ -153,8 +153,8 @@ def execute(*cmd, **kwargs): result = obj.communicate(process_input) else: result = obj.communicate() - obj.stdin.close() #pylint: disable=E1101 - _returncode = obj.returncode #pylint: disable=E1101 + obj.stdin.close() # pylint: disable=E1101 + _returncode = obj.returncode # pylint: disable=E1101 if _returncode: LOG.debug(_('Result was %s') % _returncode) if type(check_exit_code) == types.IntType \ From c0cc03f8484212e1c87515b99df6949557353d2b Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Tue, 7 Jun 2011 16:05:03 -0400 Subject: [PATCH 140/164] Added test_run_instances_image_status_active to test_cloud. --- nova/tests/test_cloud.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index a58e8bc39..ba133c860 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -487,6 +487,21 @@ class CloudTestCase(test.TestCase): self.assertRaises(exception.ApiError, run_instances, self.context, **kwargs) + def test_run_instances_image_status_active(self): + kwargs = {'image_id': FLAGS.default_image, + 'instance_type': FLAGS.default_instance_type, + 'max_count': 1} + run_instances = self.cloud.run_instances + + def fake_show_stat_active(self, context, id): + return {'id': 1, 'properties': {'kernel_id': 1, 'ramdisk_id': 1, + 'type': 'machine'}, 'status': 'active'} + + self.stubs.Set(local.LocalImageService, 'show', fake_show_stat_active) + + result = run_instances(self.context, **kwargs) + self.assertEqual(len(result['instancesSet']), 1) + def test_terminate_instances(self): inst1 = db.instance_create(self.context, {'reservation_id': 'a', 'image_ref': 1, From 6f000cd69708d1b5d6137392490dddd01cd942f7 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Tue, 7 Jun 2011 16:08:25 -0400 Subject: [PATCH 141/164] Added virtual environment to PEP8 tests --- run_tests.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/run_tests.sh b/run_tests.sh index 9aa555484..c7bcd5d67 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -67,14 +67,11 @@ function run_pep8 { srcfiles=`find bin -type f ! -name "nova.conf*"` srcfiles+=" `find tools/*`" srcfiles+=" nova setup.py plugins/xenserver/xenapi/etc/xapi.d/plugins/glance" - pep8 --repeat --show-pep8 --show-source --exclude=vcsversion.py ${srcfiles} + # Just run PEP8 in current environment + ${wrapper} pep8 --repeat --show-pep8 --show-source \ + --exclude=vcsversion.py ${srcfiles} } -if [ $just_pep8 -eq 1 ]; then - run_pep8 - exit -fi - NOSETESTS="python run_tests.py $noseargs" if [ $never_venv -eq 0 ] @@ -103,6 +100,11 @@ then fi fi +if [ $just_pep8 -eq 1 ]; then + run_pep8 + exit +fi + run_tests || exit # Also run pep8 if no options were provided. From 16ab16dc9589fbebe66dff1b60ded7765733559a Mon Sep 17 00:00:00 2001 From: Lvov Maxim Date: Wed, 8 Jun 2011 13:52:02 +0400 Subject: [PATCH 142/164] added field NOVA_PROJECT_ID to template for future using --- nova/auth/novarc.template | 1 + 1 file changed, 1 insertion(+) diff --git a/nova/auth/novarc.template b/nova/auth/novarc.template index 8170fcafe..28a3696a2 100644 --- a/nova/auth/novarc.template +++ b/nova/auth/novarc.template @@ -12,4 +12,5 @@ alias ec2-bundle-image="ec2-bundle-image --cert ${EC2_CERT} --privatekey ${EC2_P alias ec2-upload-bundle="ec2-upload-bundle -a ${EC2_ACCESS_KEY} -s ${EC2_SECRET_KEY} --url ${S3_URL} --ec2cert ${NOVA_CERT}" export NOVA_API_KEY="%(access)s" export NOVA_USERNAME="%(user)s" +export NOVA_PROJECT_ID="%(project)s" export NOVA_URL="%(os)s" From 15869c51d47361d4effd8ecf233962e75cd4144d Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Wed, 8 Jun 2011 08:59:28 -0300 Subject: [PATCH 143/164] removed autogen file --- doc/.autogenerated | 3559 -------------------------------------------- 1 file changed, 3559 deletions(-) delete mode 100644 doc/.autogenerated diff --git a/doc/.autogenerated b/doc/.autogenerated deleted file mode 100644 index 5f9630a57..000000000 --- a/doc/.autogenerated +++ /dev/null @@ -1,3559 +0,0 @@ -source/api/nova..adminclient.rst -source/api/nova..api.direct.rst -source/api/nova..api.ec2.admin.rst -source/api/nova..api.ec2.apirequest.rst -source/api/nova..api.ec2.cloud.rst -source/api/nova..api.ec2.metadatarequesthandler.rst -source/api/nova..api.openstack.auth.rst -source/api/nova..api.openstack.backup_schedules.rst -source/api/nova..api.openstack.common.rst -source/api/nova..api.openstack.consoles.rst -source/api/nova..api.openstack.faults.rst -source/api/nova..api.openstack.flavors.rst -source/api/nova..api.openstack.images.rst -source/api/nova..api.openstack.servers.rst -source/api/nova..api.openstack.shared_ip_groups.rst -source/api/nova..api.openstack.zones.rst -source/api/nova..auth.dbdriver.rst -source/api/nova..auth.fakeldap.rst -source/api/nova..auth.ldapdriver.rst -source/api/nova..auth.manager.rst -source/api/nova..auth.signer.rst -source/api/nova..cloudpipe.pipelib.rst -source/api/nova..compute.api.rst -source/api/nova..compute.instance_types.rst -source/api/nova..compute.manager.rst -source/api/nova..compute.monitor.rst -source/api/nova..compute.power_state.rst -source/api/nova..console.api.rst -source/api/nova..console.fake.rst -source/api/nova..console.manager.rst -source/api/nova..console.xvp.rst -source/api/nova..context.rst -source/api/nova..crypto.rst -source/api/nova..db.api.rst -source/api/nova..db.base.rst -source/api/nova..db.migration.rst -source/api/nova..db.sqlalchemy.api.rst -source/api/nova..db.sqlalchemy.migrate_repo.manage.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.007_add_instance_types.rst -source/api/nova..db.sqlalchemy.migration.rst -source/api/nova..db.sqlalchemy.models.rst -source/api/nova..db.sqlalchemy.session.rst -source/api/nova..exception.rst -source/api/nova..fakememcache.rst -source/api/nova..fakerabbit.rst -source/api/nova..flags.rst -source/api/nova..image.glance.rst -source/api/nova..image.local.rst -source/api/nova..image.s3.rst -source/api/nova..image.service.rst -source/api/nova..log.rst -source/api/nova..manager.rst -source/api/nova..network.api.rst -source/api/nova..network.linux_net.rst -source/api/nova..network.manager.rst -source/api/nova..objectstore.bucket.rst -source/api/nova..objectstore.handler.rst -source/api/nova..objectstore.image.rst -source/api/nova..objectstore.stored.rst -source/api/nova..quota.rst -source/api/nova..rpc.rst -source/api/nova..scheduler.chance.rst -source/api/nova..scheduler.driver.rst -source/api/nova..scheduler.manager.rst -source/api/nova..scheduler.simple.rst -source/api/nova..scheduler.zone.rst -source/api/nova..service.rst -source/api/nova..test.rst -source/api/nova..tests.api.openstack.fakes.rst -source/api/nova..tests.api.openstack.test_adminapi.rst -source/api/nova..tests.api.openstack.test_api.rst -source/api/nova..tests.api.openstack.test_auth.rst -source/api/nova..tests.api.openstack.test_common.rst -source/api/nova..tests.api.openstack.test_faults.rst -source/api/nova..tests.api.openstack.test_flavors.rst -source/api/nova..tests.api.openstack.test_images.rst -source/api/nova..tests.api.openstack.test_ratelimiting.rst -source/api/nova..tests.api.openstack.test_servers.rst -source/api/nova..tests.api.openstack.test_shared_ip_groups.rst -source/api/nova..tests.api.openstack.test_zones.rst -source/api/nova..tests.api.test_wsgi.rst -source/api/nova..tests.db.fakes.rst -source/api/nova..tests.declare_flags.rst -source/api/nova..tests.fake_flags.rst -source/api/nova..tests.glance.stubs.rst -source/api/nova..tests.hyperv_unittest.rst -source/api/nova..tests.objectstore_unittest.rst -source/api/nova..tests.real_flags.rst -source/api/nova..tests.runtime_flags.rst -source/api/nova..tests.test_access.rst -source/api/nova..tests.test_api.rst -source/api/nova..tests.test_auth.rst -source/api/nova..tests.test_cloud.rst -source/api/nova..tests.test_compute.rst -source/api/nova..tests.test_console.rst -source/api/nova..tests.test_direct.rst -source/api/nova..tests.test_flags.rst -source/api/nova..tests.test_instance_types.rst -source/api/nova..tests.test_localization.rst -source/api/nova..tests.test_log.rst -source/api/nova..tests.test_middleware.rst -source/api/nova..tests.test_misc.rst -source/api/nova..tests.test_network.rst -source/api/nova..tests.test_quota.rst -source/api/nova..tests.test_rpc.rst -source/api/nova..tests.test_scheduler.rst -source/api/nova..tests.test_service.rst -source/api/nova..tests.test_test.rst -source/api/nova..tests.test_twistd.rst -source/api/nova..tests.test_utils.rst -source/api/nova..tests.test_virt.rst -source/api/nova..tests.test_volume.rst -source/api/nova..tests.test_xenapi.rst -source/api/nova..tests.xenapi.stubs.rst -source/api/nova..twistd.rst -source/api/nova..utils.rst -source/api/nova..version.rst -source/api/nova..virt.connection.rst -source/api/nova..virt.disk.rst -source/api/nova..virt.fake.rst -source/api/nova..virt.hyperv.rst -source/api/nova..virt.images.rst -source/api/nova..virt.libvirt_conn.rst -source/api/nova..virt.xenapi.fake.rst -source/api/nova..virt.xenapi.network_utils.rst -source/api/nova..virt.xenapi.vm_utils.rst -source/api/nova..virt.xenapi.vmops.rst -source/api/nova..virt.xenapi.volume_utils.rst -source/api/nova..virt.xenapi.volumeops.rst -source/api/nova..virt.xenapi_conn.rst -source/api/nova..volume.api.rst -source/api/nova..volume.driver.rst -source/api/nova..volume.manager.rst -source/api/nova..volume.san.rst -source/api/nova..wsgi.rst -source/api/autoindex.rst -source/api/nova..adminclient.rst -source/api/nova..api.direct.rst -source/api/nova..api.ec2.admin.rst -source/api/nova..api.ec2.apirequest.rst -source/api/nova..api.ec2.cloud.rst -source/api/nova..api.ec2.metadatarequesthandler.rst -source/api/nova..api.openstack.auth.rst -source/api/nova..api.openstack.backup_schedules.rst -source/api/nova..api.openstack.common.rst -source/api/nova..api.openstack.consoles.rst -source/api/nova..api.openstack.faults.rst -source/api/nova..api.openstack.flavors.rst -source/api/nova..api.openstack.images.rst -source/api/nova..api.openstack.servers.rst -source/api/nova..api.openstack.shared_ip_groups.rst -source/api/nova..api.openstack.zones.rst -source/api/nova..auth.dbdriver.rst -source/api/nova..auth.fakeldap.rst -source/api/nova..auth.ldapdriver.rst -source/api/nova..auth.manager.rst -source/api/nova..auth.signer.rst -source/api/nova..cloudpipe.pipelib.rst -source/api/nova..compute.api.rst -source/api/nova..compute.instance_types.rst -source/api/nova..compute.manager.rst -source/api/nova..compute.monitor.rst -source/api/nova..compute.power_state.rst -source/api/nova..console.api.rst -source/api/nova..console.fake.rst -source/api/nova..console.manager.rst -source/api/nova..console.xvp.rst -source/api/nova..context.rst -source/api/nova..crypto.rst -source/api/nova..db.api.rst -source/api/nova..db.base.rst -source/api/nova..db.migration.rst -source/api/nova..db.sqlalchemy.api.rst -source/api/nova..db.sqlalchemy.migrate_repo.manage.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova..db.sqlalchemy.migrate_repo.versions.007_add_instance_types.rst -source/api/nova..db.sqlalchemy.migration.rst -source/api/nova..db.sqlalchemy.models.rst -source/api/nova..db.sqlalchemy.session.rst -source/api/nova..exception.rst -source/api/nova..fakememcache.rst -source/api/nova..fakerabbit.rst -source/api/nova..flags.rst -source/api/nova..image.glance.rst -source/api/nova..image.local.rst -source/api/nova..image.s3.rst -source/api/nova..image.service.rst -source/api/nova..log.rst -source/api/nova..manager.rst -source/api/nova..network.api.rst -source/api/nova..network.linux_net.rst -source/api/nova..network.manager.rst -source/api/nova..objectstore.bucket.rst -source/api/nova..objectstore.handler.rst -source/api/nova..objectstore.image.rst -source/api/nova..objectstore.stored.rst -source/api/nova..quota.rst -source/api/nova..rpc.rst -source/api/nova..scheduler.chance.rst -source/api/nova..scheduler.driver.rst -source/api/nova..scheduler.manager.rst -source/api/nova..scheduler.simple.rst -source/api/nova..scheduler.zone.rst -source/api/nova..service.rst -source/api/nova..test.rst -source/api/nova..tests.api.openstack.fakes.rst -source/api/nova..tests.api.openstack.test_adminapi.rst -source/api/nova..tests.api.openstack.test_api.rst -source/api/nova..tests.api.openstack.test_auth.rst -source/api/nova..tests.api.openstack.test_common.rst -source/api/nova..tests.api.openstack.test_faults.rst -source/api/nova..tests.api.openstack.test_flavors.rst -source/api/nova..tests.api.openstack.test_images.rst -source/api/nova..tests.api.openstack.test_ratelimiting.rst -source/api/nova..tests.api.openstack.test_servers.rst -source/api/nova..tests.api.openstack.test_shared_ip_groups.rst -source/api/nova..tests.api.openstack.test_zones.rst -source/api/nova..tests.api.test_wsgi.rst -source/api/nova..tests.db.fakes.rst -source/api/nova..tests.declare_flags.rst -source/api/nova..tests.fake_flags.rst -source/api/nova..tests.glance.stubs.rst -source/api/nova..tests.hyperv_unittest.rst -source/api/nova..tests.objectstore_unittest.rst -source/api/nova..tests.real_flags.rst -source/api/nova..tests.runtime_flags.rst -source/api/nova..tests.test_access.rst -source/api/nova..tests.test_api.rst -source/api/nova..tests.test_auth.rst -source/api/nova..tests.test_cloud.rst -source/api/nova..tests.test_compute.rst -source/api/nova..tests.test_console.rst -source/api/nova..tests.test_direct.rst -source/api/nova..tests.test_flags.rst -source/api/nova..tests.test_instance_types.rst -source/api/nova..tests.test_localization.rst -source/api/nova..tests.test_log.rst -source/api/nova..tests.test_middleware.rst -source/api/nova..tests.test_misc.rst -source/api/nova..tests.test_network.rst -source/api/nova..tests.test_quota.rst -source/api/nova..tests.test_rpc.rst -source/api/nova..tests.test_scheduler.rst -source/api/nova..tests.test_service.rst -source/api/nova..tests.test_test.rst -source/api/nova..tests.test_twistd.rst -source/api/nova..tests.test_utils.rst -source/api/nova..tests.test_virt.rst -source/api/nova..tests.test_volume.rst -source/api/nova..tests.test_xenapi.rst -source/api/nova..tests.xenapi.stubs.rst -source/api/nova..twistd.rst -source/api/nova..utils.rst -source/api/nova..version.rst -source/api/nova..virt.connection.rst -source/api/nova..virt.disk.rst -source/api/nova..virt.fake.rst -source/api/nova..virt.hyperv.rst -source/api/nova..virt.images.rst -source/api/nova..virt.libvirt_conn.rst -source/api/nova..virt.xenapi.fake.rst -source/api/nova..virt.xenapi.network_utils.rst -source/api/nova..virt.xenapi.vm_utils.rst -source/api/nova..virt.xenapi.vmops.rst -source/api/nova..virt.xenapi.volume_utils.rst -source/api/nova..virt.xenapi.volumeops.rst -source/api/nova..virt.xenapi_conn.rst -source/api/nova..volume.api.rst -source/api/nova..volume.driver.rst -source/api/nova..volume.manager.rst -source/api/nova..volume.san.rst -source/api/nova..wsgi.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst -source/api/nova.crypto.rst -source/api/nova.cloudpipe.pipelib.rst -source/api/nova.context.rst -source/api/nova.quota.rst -source/api/nova.tests.test_compute.rst -source/api/nova.tests.test_quota.rst -source/api/nova.tests.test_flags.rst -source/api/nova.tests.test_objectstore.rst -source/api/nova.tests.test_crypto.rst -source/api/nova.tests.runtime_flags.rst -source/api/nova.tests.test_exception.rst -source/api/nova.tests.vmwareapi.db_fakes.rst -source/api/nova.tests.vmwareapi.stubs.rst -source/api/nova.tests.test_host_filter.rst -source/api/nova.tests.test_network.rst -source/api/nova.tests.network.base.rst -source/api/nova.tests.declare_flags.rst -source/api/nova.tests.test_localization.rst -source/api/nova.tests.test_access.rst -source/api/nova.tests.test_libvirt.rst -source/api/nova.tests.image.test_glance.rst -source/api/nova.tests.test_direct.rst -source/api/nova.tests.fake_utils.rst -source/api/nova.tests.integrated.test_login.rst -source/api/nova.tests.integrated.test_extensions.rst -source/api/nova.tests.integrated.integrated_helpers.rst -source/api/nova.tests.integrated.test_servers.rst -source/api/nova.tests.integrated.test_xml.rst -source/api/nova.tests.integrated.api.client.rst -source/api/nova.tests.integrated.test_volumes.rst -source/api/nova.tests.test_rpc.rst -source/api/nova.tests.test_volume.rst -source/api/nova.tests.test_notifier.rst -source/api/nova.tests.fake_flags.rst -source/api/nova.tests.test_log.rst -source/api/nova.tests.test_service.rst -source/api/nova.tests.test_twistd.rst -source/api/nova.tests.test_misc.rst -source/api/nova.tests.test_cloud.rst -source/api/nova.tests.glance.stubs.rst -source/api/nova.tests.test_auth.rst -source/api/nova.tests.test_utils.rst -source/api/nova.tests.test_vmwareapi.rst -source/api/nova.tests.test_vlan_network.rst -source/api/nova.tests.test_zones.rst -source/api/nova.tests.test_middleware.rst -source/api/nova.tests.test_ipv6.rst -source/api/nova.tests.xenapi.stubs.rst -source/api/nova.tests.test_api.rst -source/api/nova.tests.scheduler.test_host_filter.rst -source/api/nova.tests.scheduler.test_zone_aware_scheduler.rst -source/api/nova.tests.scheduler.test_least_cost_scheduler.rst -source/api/nova.tests.scheduler.test_scheduler.rst -source/api/nova.tests.db.fakes.rst -source/api/nova.tests.test_instance_types.rst -source/api/nova.tests.test_console.rst -source/api/nova.tests.api.test_wsgi.rst -source/api/nova.tests.api.openstack.test_users.rst -source/api/nova.tests.api.openstack.fakes.rst -source/api/nova.tests.api.openstack.common.rst -source/api/nova.tests.api.openstack.test_wsgi.rst -source/api/nova.tests.api.openstack.test_accounts.rst -source/api/nova.tests.api.openstack.test_flavors.rst -source/api/nova.tests.api.openstack.test_extensions.rst -source/api/nova.tests.api.openstack.test_adminapi.rst -source/api/nova.tests.api.openstack.test_versions.rst -source/api/nova.tests.api.openstack.test_image_metadata.rst -source/api/nova.tests.api.openstack.test_auth.rst -source/api/nova.tests.api.openstack.test_servers.rst -source/api/nova.tests.api.openstack.test_zones.rst -source/api/nova.tests.api.openstack.test_images.rst -source/api/nova.tests.api.openstack.test_api.rst -source/api/nova.tests.api.openstack.test_faults.rst -source/api/nova.tests.api.openstack.test_limits.rst -source/api/nova.tests.api.openstack.test_server_metadata.rst -source/api/nova.tests.api.openstack.test_shared_ip_groups.rst -source/api/nova.tests.api.openstack.test_common.rst -source/api/nova.tests.api.openstack.extensions.foxinsocks.rst -source/api/nova.tests.test_xenapi.rst -source/api/nova.tests.hyperv_unittest.rst -source/api/nova.tests.test_test.rst -source/api/nova.tests.test_flat_network.rst -source/api/nova.network.linux_net.rst -source/api/nova.network.api.rst -source/api/nova.network.manager.rst -source/api/nova.network.vmwareapi_net.rst -source/api/nova.network.xenapi_net.rst -source/api/nova.volume.driver.rst -source/api/nova.volume.api.rst -source/api/nova.volume.san.rst -source/api/nova.volume.manager.rst -source/api/nova.virt.images.rst -source/api/nova.virt.driver.rst -source/api/nova.virt.vmwareapi.io_util.rst -source/api/nova.virt.vmwareapi.error_util.rst -source/api/nova.virt.vmwareapi.vmops.rst -source/api/nova.virt.vmwareapi.fake.rst -source/api/nova.virt.vmwareapi.vim.rst -source/api/nova.virt.vmwareapi.read_write_util.rst -source/api/nova.virt.vmwareapi.vmware_images.rst -source/api/nova.virt.vmwareapi.network_utils.rst -source/api/nova.virt.vmwareapi.vim_util.rst -source/api/nova.virt.vmwareapi.vm_util.rst -source/api/nova.virt.xenapi_conn.rst -source/api/nova.virt.fake.rst -source/api/nova.virt.vmwareapi_conn.rst -source/api/nova.virt.connection.rst -source/api/nova.virt.disk.rst -source/api/nova.virt.libvirt.connection.rst -source/api/nova.virt.libvirt.firewall.rst -source/api/nova.virt.libvirt.netutils.rst -source/api/nova.virt.hyperv.rst -source/api/nova.virt.xenapi.vmops.rst -source/api/nova.virt.xenapi.fake.rst -source/api/nova.virt.xenapi.volume_utils.rst -source/api/nova.virt.xenapi.network_utils.rst -source/api/nova.virt.xenapi.vm_utils.rst -source/api/nova.virt.xenapi.volumeops.rst -source/api/nova.exception.rst -source/api/nova.image.fake.rst -source/api/nova.image.local.rst -source/api/nova.image.glance.rst -source/api/nova.image.service.rst -source/api/nova.image.s3.rst -source/api/nova.objectstore.s3server.rst -source/api/nova.ipv6.account_identifier.rst -source/api/nova.ipv6.api.rst -source/api/nova.ipv6.rfc2462.rst -source/api/nova.notifier.no_op_notifier.rst -source/api/nova.notifier.log_notifier.rst -source/api/nova.notifier.rabbit_notifier.rst -source/api/nova.notifier.api.rst -source/api/nova.vcsversion.rst -source/api/nova.compute.instance_types.rst -source/api/nova.compute.power_state.rst -source/api/nova.compute.api.rst -source/api/nova.compute.manager.rst -source/api/nova.compute.monitor.rst -source/api/nova.wsgi.rst -source/api/nova.console.vmrc_manager.rst -source/api/nova.console.fake.rst -source/api/nova.console.vmrc.rst -source/api/nova.console.api.rst -source/api/nova.console.manager.rst -source/api/nova.console.xvp.rst -source/api/nova.version.rst -source/api/nova.utils.rst -source/api/nova.auth.dbdriver.rst -source/api/nova.auth.fakeldap.rst -source/api/nova.auth.ldapdriver.rst -source/api/nova.auth.signer.rst -source/api/nova.auth.manager.rst -source/api/nova.manager.rst -source/api/nova.scheduler.driver.rst -source/api/nova.scheduler.host_filter.rst -source/api/nova.scheduler.zone.rst -source/api/nova.scheduler.simple.rst -source/api/nova.scheduler.zone_aware_scheduler.rst -source/api/nova.scheduler.zone_manager.rst -source/api/nova.scheduler.api.rst -source/api/nova.scheduler.least_cost.rst -source/api/nova.scheduler.manager.rst -source/api/nova.scheduler.chance.rst -source/api/nova.vnc.auth.rst -source/api/nova.vnc.proxy.rst -source/api/nova.db.base.rst -source/api/nova.db.migration.rst -source/api/nova.db.sqlalchemy.session.rst -source/api/nova.db.sqlalchemy.migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.manage.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.018_rename_server_management_url.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.017_make_instance_type_id_an_integer.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.010_add_os_type_to_instances.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.013_add_flavors_to_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.009_add_instance_migrations.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.002_bexar.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.020_add_snapshot_id_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.016_make_quotas_key_and_value.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.003_add_label_to_networks.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.021_rename_image_ids.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.006_add_provider_data_to_volumes.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.008_add_instance_types.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.019_add_volume_snapshot_support.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.001_austin.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.011_live_migration.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.005_add_instance_metadata.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.004_add_zone_tables.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.012_add_ipv6_flatmanager.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.015_add_auto_assign_to_floating_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.007_add_ipv6_to_fixed_ips.rst -source/api/nova.db.sqlalchemy.migrate_repo.versions.014_add_instance_type_id_to_instances.rst -source/api/nova.db.sqlalchemy.api.rst -source/api/nova.db.sqlalchemy.models.rst -source/api/nova.db.api.rst -source/api/nova.twistd.rst -source/api/nova.test.rst -source/api/nova.fakerabbit.rst -source/api/nova.service.rst -source/api/nova.flags.rst -source/api/nova.api.ec2.ec2utils.rst -source/api/nova.api.ec2.metadatarequesthandler.rst -source/api/nova.api.ec2.cloud.rst -source/api/nova.api.ec2.admin.rst -source/api/nova.api.ec2.apirequest.rst -source/api/nova.api.openstack.images.rst -source/api/nova.api.openstack.faults.rst -source/api/nova.api.openstack.shared_ip_groups.rst -source/api/nova.api.openstack.common.rst -source/api/nova.api.openstack.ips.rst -source/api/nova.api.openstack.extensions.rst -source/api/nova.api.openstack.servers.rst -source/api/nova.api.openstack.consoles.rst -source/api/nova.api.openstack.users.rst -source/api/nova.api.openstack.auth.rst -source/api/nova.api.openstack.versions.rst -source/api/nova.api.openstack.zones.rst -source/api/nova.api.openstack.limits.rst -source/api/nova.api.openstack.flavors.rst -source/api/nova.api.openstack.image_metadata.rst -source/api/nova.api.openstack.contrib.volumes.rst -source/api/nova.api.openstack.wsgi.rst -source/api/nova.api.openstack.accounts.rst -source/api/nova.api.openstack.views.images.rst -source/api/nova.api.openstack.views.addresses.rst -source/api/nova.api.openstack.views.servers.rst -source/api/nova.api.openstack.views.versions.rst -source/api/nova.api.openstack.views.limits.rst -source/api/nova.api.openstack.views.flavors.rst -source/api/nova.api.openstack.server_metadata.rst -source/api/nova.api.openstack.backup_schedules.rst -source/api/nova.api.direct.rst -source/api/nova.log.rst -source/api/nova.rpc.rst -source/api/nova.fakememcache.rst From 111b9503020b83ba62c5fb28f762cb2f84f89cc5 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Wed, 8 Jun 2011 09:21:38 -0400 Subject: [PATCH 144/164] pep8 --- nova/auth/ldapdriver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index 7bcaa34b5..e9532473d 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -139,7 +139,7 @@ class LdapDriver(object): self.__cache = None return False - def __local_cache(key_fmt): #pylint: disable=E0213 + def __local_cache(key_fmt): # pylint: disable=E0213 """Wrap function to cache it's result in self.__cache. Works only with functions with one fixed argument. """ From b40abd3145df4cb732b43261bb1608375eb3b0b7 Mon Sep 17 00:00:00 2001 From: John Tran Date: Wed, 8 Jun 2011 15:23:33 -0700 Subject: [PATCH 146/164] added a test for allocate_address & added error handling for api instead of returning 'UnknownError', will give information 'AllocateAddressError: NoMoreAddresses --- nova/tests/test_cloud.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index ba133c860..d6d90e873 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -115,6 +115,16 @@ class CloudTestCase(test.TestCase): public_ip=address) db.floating_ip_destroy(self.context, address) + def test_allocate_address(self): + address = "10.10.10.10" + allocate = self.cloud.allocate_address + db.floating_ip_create(self.context, + {'address': address, + 'host': self.network.host}) + self.assertEqual(allocate(self.context)['publicIp'], address) + db.floating_ip_destroy(self.context, address) + self.assertRaises(rpc.RemoteError, allocate, self.context) + def test_associate_disassociate_address(self): """Verifies associate runs cleanly without raising an exception""" address = "10.10.10.10" From 1a9620b4a4d5fe947f0e9f38fbfff2fa79c44531 Mon Sep 17 00:00:00 2001 From: John Tran Date: Wed, 8 Jun 2011 17:15:35 -0700 Subject: [PATCH 147/164] raises exception.NoFloatingIpsDefined instead of UnknownError --- nova/tests/test_cloud.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index d6d90e873..7cb13c919 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -123,7 +123,8 @@ class CloudTestCase(test.TestCase): 'host': self.network.host}) self.assertEqual(allocate(self.context)['publicIp'], address) db.floating_ip_destroy(self.context, address) - self.assertRaises(rpc.RemoteError, allocate, self.context) + self.assertRaises(exception.NoFloatingIpsDefined, allocate, + self.context) def test_associate_disassociate_address(self): """Verifies associate runs cleanly without raising an exception""" From 126a95c22dc3c27ad0e224f81e86a076beb1d955 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Thu, 9 Jun 2011 03:35:59 +0000 Subject: [PATCH 148/164] Support multiple glance-api servers --- nova/flags.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nova/flags.py b/nova/flags.py index d5090edba..51f0536e8 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -270,8 +270,10 @@ DEFINE_list('region_list', DEFINE_string('connection_type', 'libvirt', 'libvirt, xenapi or fake') DEFINE_string('aws_access_key_id', 'admin', 'AWS Access ID') DEFINE_string('aws_secret_access_key', 'admin', 'AWS Access Key') -DEFINE_integer('glance_port', 9292, 'glance port') -DEFINE_string('glance_host', '$my_ip', 'glance host') +# NOTE(sirp): my_ip interpolation doesn't work within nested structures +DEFINE_list('glance_api_servers', + [('127.0.0.1', 9292)], + 'list of glance servers available to nova') DEFINE_integer('s3_port', 3333, 's3 port') DEFINE_string('s3_host', '$my_ip', 's3 host (for infrastructure)') DEFINE_string('s3_dmz', '$my_ip', 's3 dmz ip (for instances)') From 2351f8f305679017602d4445f4131d109b53c907 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Thu, 9 Jun 2011 21:36:20 +0000 Subject: [PATCH 149/164] Fixing code per review comments --- nova/flags.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nova/flags.py b/nova/flags.py index 545cf90fe..acfcf8d68 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -272,8 +272,8 @@ DEFINE_string('aws_access_key_id', 'admin', 'AWS Access ID') DEFINE_string('aws_secret_access_key', 'admin', 'AWS Access Key') # NOTE(sirp): my_ip interpolation doesn't work within nested structures DEFINE_list('glance_api_servers', - [('127.0.0.1', 9292)], - 'list of glance servers available to nova') + ['127.0.0.1:9292'], + 'list of glance api servers available to nova (host:port)') DEFINE_integer('s3_port', 3333, 's3 port') DEFINE_string('s3_host', '$my_ip', 's3 host (for infrastructure)') DEFINE_string('s3_dmz', '$my_ip', 's3 dmz ip (for instances)') From 37fb2ba96a23f929fff4c04ed85209b182aafa3f Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Fri, 10 Jun 2011 05:27:05 -0700 Subject: [PATCH 150/164] fixed reraise in trap_error --- nova/scheduler/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/scheduler/api.py b/nova/scheduler/api.py index 789993890..ffe59d2c1 100644 --- a/nova/scheduler/api.py +++ b/nova/scheduler/api.py @@ -141,7 +141,7 @@ def call_zone_method(context, method_name, errors_to_ignore=None, except Exception as e: if type(e) in errors_to_ignore: return None - raise e + raise res = pool.spawn(_error_trap, *args, **kwargs) results.append((zone, res)) From 522fc376738d67927ecd98072048caa6e3702ed5 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Fri, 10 Jun 2011 09:48:17 -0300 Subject: [PATCH 151/164] source illustrations added & spelling/grammar based on comstud's feedback --- doc/source/devref/distributed_scheduler.rst | 16 ++++++++++------ doc/source/devref/zone.rst | 4 ++-- .../zones_distsched_illustrations.odp | Bin 0 -> 182810 bytes 3 files changed, 12 insertions(+), 8 deletions(-) create mode 100755 doc/source/image_src/zones_distsched_illustrations.odp diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/distributed_scheduler.rst index cc9e78916..e33fda4d2 100644 --- a/doc/source/devref/distributed_scheduler.rst +++ b/doc/source/devref/distributed_scheduler.rst @@ -14,10 +14,14 @@ License for the specific language governing permissions and limitations under the License. + Source for illustrations in doc/source/image_src/zone_distsched_illustrations.odp + (OpenOffice Impress format) Illustrations are "exported" to png and then scaled + to 400x300 or 640x480 as needed and placed in the doc/source/images directory. + Distributed Scheduler ===================== -The Scheduler is akin to a Dating Service. Requests for the creation of new instances come in and the most applicable Compute nodes are selected from a large pool of potential candidates. In a small deployment we may be happy with the currently available Change Scheduler which randomly selects a Host from the available pool. Or if you need something a little more fancy you may want to use the Availability Zone Scheduler, which selects Compute hosts from a logical partitioning of available hosts (within a single Zone). +The Scheduler is akin to a Dating Service. Requests for the creation of new instances come in and the most applicable Compute nodes are selected from a large pool of potential candidates. In a small deployment we may be happy with the currently available Chance Scheduler which randomly selects a Host from the available pool. Or if you need something a little more fancy you may want to use the Availability Zone Scheduler, which selects Compute hosts from a logical partitioning of available hosts (within a single Zone). .. image:: /images/dating_service.png @@ -27,13 +31,13 @@ This is the purpose of the Distributed Scheduler (DS). The DS utilizes the Capab So, how does this all work? -This document will explain the strategy employed by the `ZoneAwareScheduler` and its derivations. You should read the Zones documentation before reading this. +This document will explain the strategy employed by the `ZoneAwareScheduler` and its derivations. You should read the :doc:`devguide/zones` documentation before reading this. .. image:: /images/zone_aware_scheduler.png Costs & Weights --------------- -When deciding where to place an Instance, we compare a Weighted Cost for each Host. The Weighting, currently, is just the sum of each Cost. Costs are nothing more than integers from `0 - max_int`. Costs are computed by looking at the various Capabilities of the Host relative to the specs of the Instance being asked for. Trying to putting a plain vanilla instance on a high performance host should have a very high cost. But putting a vanilla instance on a vanilla Host should have a low cost. +When deciding where to place an Instance, we compare a Weighted Cost for each Host. The Weighting, currently, is just the sum of each Cost. Costs are nothing more than integers from `0 - max_int`. Costs are computed by looking at the various Capabilities of the Host relative to the specs of the Instance being asked for. Trying to put a plain vanilla instance on a high performance host should have a very high cost. But putting a vanilla instance on a vanilla Host should have a low cost. Some Costs are more esoteric. Consider a rule that says we should prefer Hosts that don't already have an instance on it that is owned by the user requesting it (to mitigate against machine failures). Here we have to look at all the other Instances on the host to compute our cost. @@ -107,7 +111,7 @@ The Catch --------- This all seems pretty straightforward but, like most things, there's a catch. Zones are expected to operate in complete isolation from each other. Each Zone has its own AMQP service, database and set of Nova services. But, for security reasons Zones should never leak information about the architectural layout internally. That means Zones cannot leak information about hostnames or service IP addresses outside of its world. -When `POST /zones/select` is called to estimate which compute node to use, time passes until the `POST /servers` call is issued. If we only passed the weight back from the `select` we would have to re-compute the appropriate compute node for the create command ... and we could end up with a different host. Somehow we need to remember the results of our computations and pass them outside of the Zone. Now, we could store this information in the local database and return a reference to it, but remember that the vast majority of weights are going be ignored. Storing them in the database would result in a flood of disk access and then we have to clean up all these entries periodically. Recall that there are going to be many many `select` calls issued to child Zones asking for estimates. +When `POST /zones/select` is called to estimate which compute node to use, time passes until the `POST /servers` call is issued. If we only passed the weight back from the `select` we would have to re-compute the appropriate compute node for the create command ... and we could end up with a different host. Somehow we need to remember the results of our computations and pass them outside of the Zone. Now, we could store this information in the local database and return a reference to it, but remember that the vast majority of weights are going to be ignored. Storing them in the database would result in a flood of disk access and then we have to clean up all these entries periodically. Recall that there are going to be many many `select` calls issued to child Zones asking for estimates. Instead, we take a rather innovative approach to the problem. We encrypt all the child zone internal details and pass them back the to parent Zone. If the parent zone decides to use a child Zone for the instance it simply passes the encrypted data back to the child during the `POST /servers` call as an extra parameter. The child Zone can then decrypt the hint and go directly to the Compute node previously selected. If the estimate isn't used, it is simply discarded by the parent. It's for this reason that it is so important that each Zone defines a unique encryption key via `--build_plan_encryption_key` @@ -122,7 +126,7 @@ NOTE: The features described in this section are related to the up-coming 'merge The OpenStack API allows a user to list all the instances they own via the `GET /servers/` command or the details on a particular instance via `GET /servers/###`. This mechanism is usually sufficient since OS API only allows for creating one instance at a time, unlike the EC2 API which allows you to specify a quantity of instances to be created. -NOTE: currently the `GET /servers` command is not Zone-aware since all operations done in child Zones are done via a single administrative account. Therefore, asking a child Zone to `GET /servers` would return all the active instances ... and that would be what the user intended. Later, when the Keystone Auth system is integrated with Nova, this functionality will be enabled. +NOTE: currently the `GET /servers` command is not Zone-aware since all operations done in child Zones are done via a single administrative account. Therefore, asking a child Zone to `GET /servers` would return all the active instances ... and that would not be what the user intended. Later, when the Keystone Auth system is integrated with Nova, this functionality will be enabled. We could use the OS API 1.1 Extensions mechanism to accept a `num_instances` parameter, but this would result in a different return code. Instead of getting back an `Instance` record, we would be getting back a `reservation_id`. So, instead, we've implemented a new command `POST /zones/boot` command which is nearly identical to `POST /servers` except that it takes a `num_instances` parameter and returns a `reservation_id`. Perhaps in OS API 2.x we can unify these approaches. @@ -149,7 +153,7 @@ Every `ZoneAwareScheduler` derivation must also override the `weigh_hosts` metho Simple Zone Aware Scheduling ---------------------------- -The easiest way to get started with the `ZoneAwareScheduler` is to use the `nova.scheduler.host_filter.HostFilterScheduler`. This scheduler uses the default Host Filter as and the `weight_hosts` method simply returns a weight of 1 for all hosts. But, from this, you can see calls being routed from Zone to Zone and follow the flow of things. +The easiest way to get started with the `ZoneAwareScheduler` is to use the `nova.scheduler.host_filter.HostFilterScheduler`. This scheduler uses the default Host Filter and the `weight_hosts` method simply returns a weight of 1 for all hosts. But, from this, you can see calls being routed from Zone to Zone and follow the flow of things. The `--scheduler_driver` flag is how you specify the scheduler class name. diff --git a/doc/source/devref/zone.rst b/doc/source/devref/zone.rst index 263560ee2..3dc0f80fd 100644 --- a/doc/source/devref/zone.rst +++ b/doc/source/devref/zone.rst @@ -21,7 +21,7 @@ A Nova deployment is called a Zone. A Zone allows you to partition your deployme The idea behind Zones is, if a particular deployment is not capable of servicing a particular request, the request may be forwarded to (child) Zones for possible processing. Zones may be nested in a tree fashion. -Zones only know about their immediate children, they do not know about their parent Zones and may in fact have more than one parent. Likewise, a Zone's children may themselves have child Zones. +Zones only know about their immediate children, they do not know about their parent Zones and may in fact have more than one parent. Likewise, a Zone's children may themselves have child Zones and, in those cases, the grandchild's internal structure would not be known to the grand-parent. Zones share nothing. They communicate via the public OpenStack API only. No database, queue, user or project definition is shared between Zones. @@ -99,7 +99,7 @@ You can get the `child zone api url`, `nova api key` and `username` from the `no export NOVA_URL="http://192.168.2.120:8774/v1.0/" -This equates to a POST operation to `.../zones/` to add a new zone. No connection attempt to the child zone is done when this command. It only puts an entry in the db at this point. After about 30 seconds the `ZoneManager` in the Scheduler services will attempt to talk to the child zone and get its information. +This equates to a POST operation to `.../zones/` to add a new zone. No connection attempt to the child zone is done with this command. It only puts an entry in the db at this point. After about 30 seconds the `ZoneManager` in the Scheduler services will attempt to talk to the child zone and get its information. Getting a list of child Zones ----------------------------- diff --git a/doc/source/image_src/zones_distsched_illustrations.odp b/doc/source/image_src/zones_distsched_illustrations.odp new file mode 100755 index 0000000000000000000000000000000000000000..8762a183b4ab5e3aee7d340656087b21be248164 GIT binary patch literal 182810 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�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

%1XZ^1GbB^RnHS9q(ld;7eM%){`%q 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

bYh*uo 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 Date: Fri, 10 Jun 2011 10:24:24 -0700 Subject: [PATCH 152/164] style change --- nova/tests/test_cloud.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 7cb13c919..c8313a5d3 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -123,7 +123,8 @@ class CloudTestCase(test.TestCase): 'host': self.network.host}) self.assertEqual(allocate(self.context)['publicIp'], address) db.floating_ip_destroy(self.context, address) - self.assertRaises(exception.NoFloatingIpsDefined, allocate, + self.assertRaises(exception.NoFloatingIpsDefined, + allocate, self.context) def test_associate_disassociate_address(self): From e520170fec412d0f5e79c771a5ff2babe3c47356 Mon Sep 17 00:00:00 2001 From: John Tran Date: Fri, 10 Jun 2011 11:10:58 -0700 Subject: [PATCH 153/164] added new exception more descriptive of not having available floating addresses avail for allocation --- nova/exception.py | 4 ++++ nova/tests/test_cloud.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/nova/exception.py b/nova/exception.py index 69b3e0359..1571dd032 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -376,6 +376,10 @@ class NoFloatingIpsDefinedForInstance(NoFloatingIpsDefined): message = _("Zero floating ips defined for instance %(instance_id)s.") +class NoMoreFloatingIps(NotFound): + message = _("Zero floating ips available.") + + class KeypairNotFound(NotFound): message = _("Keypair %(keypair_name)s not found for user %(user_id)s") diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index c8313a5d3..13046f861 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -123,7 +123,7 @@ class CloudTestCase(test.TestCase): 'host': self.network.host}) self.assertEqual(allocate(self.context)['publicIp'], address) db.floating_ip_destroy(self.context, address) - self.assertRaises(exception.NoFloatingIpsDefined, + self.assertRaises(exception.NoMoreFloatingIps, allocate, self.context) From 027f13c535ef80a293c3565a4b6abf526f329387 Mon Sep 17 00:00:00 2001 From: Josh Kearney Date: Mon, 13 Jun 2011 15:20:43 -0500 Subject: [PATCH 155/164] Removed clocksource=jiffies from PV_args. --- nova/tests/test_xenapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py index 3a175b106..d1c88287a 100644 --- a/nova/tests/test_xenapi.py +++ b/nova/tests/test_xenapi.py @@ -331,7 +331,7 @@ class XenAPIVMTestCase(test.TestCase): def check_vm_params_for_linux(self): self.assertEquals(self.vm['platform']['nx'], 'false') - self.assertEquals(self.vm['PV_args'], 'clocksource=jiffies') + self.assertEquals(self.vm['PV_args'], '') self.assertEquals(self.vm['PV_bootloader'], 'pygrub') # check that these are not set From 685a1c800e27a73ddf722450b7ca28923fe254dc Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Mon, 13 Jun 2011 21:14:26 -0400 Subject: [PATCH 156/164] pep8 --- nova/tests/scheduler/test_host_filter.py | 8 ++++---- nova/tests/scheduler/test_least_cost_scheduler.py | 8 ++++---- nova/tests/scheduler/test_zone_aware_scheduler.py | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nova/tests/scheduler/test_host_filter.py b/nova/tests/scheduler/test_host_filter.py index 07817cc5a..10eafde08 100644 --- a/nova/tests/scheduler/test_host_filter.py +++ b/nova/tests/scheduler/test_host_filter.py @@ -133,11 +133,11 @@ class HostFilterTestCase(test.TestCase): raw = ['or', ['and', ['<', '$compute.host_memory_free', 30], - ['<', '$compute.disk_available', 300] + ['<', '$compute.disk_available', 300], ], ['and', ['>', '$compute.host_memory_free', 70], - ['>', '$compute.disk_available', 700] + ['>', '$compute.disk_available', 700], ] ] cooked = json.dumps(raw) @@ -183,12 +183,12 @@ class HostFilterTestCase(test.TestCase): self.assertTrue(hf.filter_hosts(self.zone_manager, json.dumps([]))) self.assertTrue(hf.filter_hosts(self.zone_manager, json.dumps({}))) self.assertTrue(hf.filter_hosts(self.zone_manager, json.dumps( - ['not', True, False, True, False] + ['not', True, False, True, False], ))) try: hf.filter_hosts(self.zone_manager, json.dumps( - 'not', True, False, True, False + 'not', True, False, True, False, )) self.fail("Should give KeyError") except KeyError, e: diff --git a/nova/tests/scheduler/test_least_cost_scheduler.py b/nova/tests/scheduler/test_least_cost_scheduler.py index 506fa62fb..9a5318aee 100644 --- a/nova/tests/scheduler/test_least_cost_scheduler.py +++ b/nova/tests/scheduler/test_least_cost_scheduler.py @@ -44,7 +44,7 @@ class WeightedSumTestCase(test.TestCase): hosts = [ FakeHost(1, 512 * MB, 100), FakeHost(2, 256 * MB, 400), - FakeHost(3, 512 * MB, 100) + FakeHost(3, 512 * MB, 100), ] weighted_fns = [ @@ -96,7 +96,7 @@ class LeastCostSchedulerTestCase(test.TestCase): def test_noop_cost_fn(self): FLAGS.least_cost_scheduler_cost_functions = [ - 'nova.scheduler.least_cost.noop_cost_fn' + 'nova.scheduler.least_cost.noop_cost_fn', ] FLAGS.noop_cost_fn_weight = 1 @@ -110,7 +110,7 @@ class LeastCostSchedulerTestCase(test.TestCase): def test_cost_fn_weights(self): FLAGS.least_cost_scheduler_cost_functions = [ - 'nova.scheduler.least_cost.noop_cost_fn' + 'nova.scheduler.least_cost.noop_cost_fn', ] FLAGS.noop_cost_fn_weight = 2 @@ -124,7 +124,7 @@ class LeastCostSchedulerTestCase(test.TestCase): def test_fill_first_cost_fn(self): FLAGS.least_cost_scheduler_cost_functions = [ - 'nova.scheduler.least_cost.fill_first_cost_fn' + 'nova.scheduler.least_cost.fill_first_cost_fn', ] FLAGS.fill_first_cost_fn_weight = 1 diff --git a/nova/tests/scheduler/test_zone_aware_scheduler.py b/nova/tests/scheduler/test_zone_aware_scheduler.py index 9f70b9dbc..37c6488cc 100644 --- a/nova/tests/scheduler/test_zone_aware_scheduler.py +++ b/nova/tests/scheduler/test_zone_aware_scheduler.py @@ -201,7 +201,7 @@ class ZoneAwareSchedulerTestCase(test.TestCase): 'instance_properties': {}, 'instance_type': {}, 'filter_driver': 'nova.scheduler.host_filter.AllHostsFilter', - 'blob': "Non-None blob data" + 'blob': "Non-None blob data", } result = sched.schedule_run_instance(None, 1, request_spec) From 4c19f715610e7685541bb469698be27035539656 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 14 Jun 2011 01:21:08 +0000 Subject: [PATCH 157/164] Adds --show-elapsed option for run_tests --- run_tests.py | 82 ++++++++++++++++++++++++++++++++++++++++------------ run_tests.sh | 1 + 2 files changed, 64 insertions(+), 19 deletions(-) diff --git a/run_tests.py b/run_tests.py index d5d8acd16..ace916535 100644 --- a/run_tests.py +++ b/run_tests.py @@ -56,9 +56,11 @@ To run a single test module: """ import gettext +import heapq import os import unittest import sys +import time gettext.install('nova', unicode=1) @@ -185,7 +187,10 @@ class _NullColorizer(object): class NovaTestResult(result.TextTestResult): def __init__(self, *args, **kw): + self.show_elapsed = kw.pop('show_elapsed') result.TextTestResult.__init__(self, *args, **kw) + self.num_slow_tests = 5 + self.slow_tests = [] # this is a fixed-sized heap self._last_case = None self.colorizer = None # NOTE(vish): reset stdout for the terminal check @@ -200,25 +205,48 @@ class NovaTestResult(result.TextTestResult): def getDescription(self, test): return str(test) + def _handleElapsedTime(self, test): + self.elapsed_time = time.time() - self.start_time + item = (self.elapsed_time, test) + # Record only the n-slowest tests using heap + if len(self.slow_tests) >= self.num_slow_tests: + heapq.heappushpop(self.slow_tests, item) + else: + heapq.heappush(self.slow_tests, item) + + def _writeElapsedTime(self, test): + if self.elapsed_time >= 3.0: + color = 'red' + elif self.elapsed_time >= 1.0: + color = 'yellow' + else: + color = 'green' + + self.stream.write(' ' * 10) + self.colorizer.write("%.2f" % self.elapsed_time, color) + self.stream.write(' secs') + + def _writeResult(self, test, long_result, color, short_result): + if self.showAll: + self.colorizer.write(long_result, color) + if self.show_elapsed: + self._writeElapsedTime(test) + self.stream.writeln() + elif self.dots: + self.stream.write(short_result) + self.stream.flush() + # NOTE(vish): copied from unittest with edit to add color def addSuccess(self, test): unittest.TestResult.addSuccess(self, test) - if self.showAll: - self.colorizer.write("OK", 'green') - self.stream.writeln() - elif self.dots: - self.stream.write('.') - self.stream.flush() + self._handleElapsedTime(test) + self._writeResult(test, 'OK', 'green', '.') # NOTE(vish): copied from unittest with edit to add color def addFailure(self, test, err): unittest.TestResult.addFailure(self, test, err) - if self.showAll: - self.colorizer.write("FAIL", 'red') - self.stream.writeln() - elif self.dots: - self.stream.write('F') - self.stream.flush() + self._handleElapsedTime(test) + self._writeResult(test, 'FAIL', 'red', 'F') # NOTE(vish): copied from nose with edit to add color def addError(self, test, err): @@ -226,6 +254,7 @@ class NovaTestResult(result.TextTestResult): errorClasses. If the exception is a registered class, the error will be added to the list for that class, not errors. """ + self._handleElapsedTime(test) stream = getattr(self, 'stream', None) ec, ev, tb = err try: @@ -252,14 +281,11 @@ class NovaTestResult(result.TextTestResult): self.errors.append((test, exc_info)) test.passed = False if stream is not None: - if self.showAll: - self.colorizer.write("ERROR", 'red') - self.stream.writeln() - elif self.dots: - stream.write('E') + self._writeResult(test, 'ERROR', 'red', 'E') def startTest(self, test): unittest.TestResult.startTest(self, test) + self.start_time = time.time() current_case = test.test.__class__.__name__ if self.showAll: @@ -273,21 +299,38 @@ class NovaTestResult(result.TextTestResult): class NovaTestRunner(core.TextTestRunner): + def __init__(self, *args, **kwargs): + self.show_elapsed = kwargs.pop('show_elapsed') + core.TextTestRunner.__init__(self, *args, **kwargs) + def _makeResult(self): return NovaTestResult(self.stream, self.descriptions, self.verbosity, - self.config) + self.config, + show_elapsed=self.show_elapsed) + + def run(self, test): + result_ = core.TextTestRunner.run(self, test) + if self.show_elapsed: + self.stream.writeln("Slowest %i tests:" % result_.num_slow_tests) + for elapsed_time, test in reversed(sorted(result_.slow_tests)): + time_str = "%.2f secs" % elapsed_time + self.stream.writeln(" %s %s" % (time_str.ljust(10), test)) + return result_ if __name__ == '__main__': logging.setup() # If any argument looks like a test name but doesn't have "nova.tests" in # front of it, automatically add that so we don't have to type as much + show_elapsed = False argv = [] for x in sys.argv: if x.startswith('test_'): argv.append('nova.tests.%s' % x) + elif x.startswith('--show-elapsed'): + show_elapsed = True else: argv.append(x) @@ -300,5 +343,6 @@ if __name__ == '__main__': runner = NovaTestRunner(stream=c.stream, verbosity=c.verbosity, - config=c) + config=c, + show_elapsed=show_elapsed) sys.exit(not core.run(config=c, testRunner=runner, argv=argv)) diff --git a/run_tests.sh b/run_tests.sh index c7bcd5d67..5fc406035 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -10,6 +10,7 @@ function usage { echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added." echo " -p, --pep8 Just run pep8" echo " -h, --help Print this usage message" + echo " --show-elapsed Print elapsed time for tests along with slowest tests" echo "" echo "Note: with no options specified, the script will try to run the tests in a virtual environment," echo " If no virtualenv is found, the script will ask if you would like to create one. If you " From 582927683367e788efd29c54a88efd683c812aea Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Tue, 14 Jun 2011 10:16:51 -0400 Subject: [PATCH 158/164] Created new exception for handling malformed requests Wrote tests Raise httpBadRequest on malformed request bodies --- nova/exception.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nova/exception.py b/nova/exception.py index 1571dd032..ffd88fbe7 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -585,3 +585,7 @@ class InstanceExists(Duplicate): class MigrationError(NovaException): message = _("Migration error") + ": %(reason)s" + + +class MalformedRequestBody(NovaException): + message = _("Malformed message body") + ": %(reason)s" From 61a4bb002e4d161e89fcee5571f572316b465e75 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 14 Jun 2011 16:39:37 +0000 Subject: [PATCH 159/164] Making timing points stricter, only show slow/sluggish tests in summary --- run_tests.py | 44 +++++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/run_tests.py b/run_tests.py index ace916535..3ecc146fd 100644 --- a/run_tests.py +++ b/run_tests.py @@ -185,6 +185,22 @@ class _NullColorizer(object): self.stream.write(text) +def classify_test_speed(elapsed_time): + if elapsed_time > 1.0: + return 'slow' + elif elapsed_time > 0.25: + return 'sluggish' + else: + return 'fast' + + +def get_elapsed_time_color(elapsed_time): + color_map = {'slow': 'red', 'sluggish': 'yellow', 'fast': 'green'} + slowness = classify_test_speed(elapsed_time) + color = color_map[slowness] + return color + + class NovaTestResult(result.TextTestResult): def __init__(self, *args, **kw): self.show_elapsed = kw.pop('show_elapsed') @@ -215,15 +231,8 @@ class NovaTestResult(result.TextTestResult): heapq.heappush(self.slow_tests, item) def _writeElapsedTime(self, test): - if self.elapsed_time >= 3.0: - color = 'red' - elif self.elapsed_time >= 1.0: - color = 'yellow' - else: - color = 'green' - - self.stream.write(' ' * 10) - self.colorizer.write("%.2f" % self.elapsed_time, color) + color = get_elapsed_time_color(self.elapsed_time) + self.colorizer.write(" %.2f" % self.elapsed_time, color) self.stream.write(' secs') def _writeResult(self, test, long_result, color, short_result): @@ -310,13 +319,22 @@ class NovaTestRunner(core.TextTestRunner): self.config, show_elapsed=self.show_elapsed) + def _writeSlowTests(self, result_): + # Pare out 'fast' tests + slow_tests = [item for item in result_.slow_tests + if classify_test_speed(item[0]) != 'fast'] + + slow_total_time = sum(item[0] for item in slow_tests) + self.stream.writeln("Slowest %i tests took %.2f secs:" + % (len(slow_tests), slow_total_time)) + for elapsed_time, test in sorted(slow_tests, reverse=True): + time_str = "%.2f secs" % elapsed_time + self.stream.writeln(" %s %s" % (time_str.ljust(10), test)) + def run(self, test): result_ = core.TextTestRunner.run(self, test) if self.show_elapsed: - self.stream.writeln("Slowest %i tests:" % result_.num_slow_tests) - for elapsed_time, test in reversed(sorted(result_.slow_tests)): - time_str = "%.2f secs" % elapsed_time - self.stream.writeln(" %s %s" % (time_str.ljust(10), test)) + self._writeSlowTests(result_) return result_ From 4bfd1f49a867a0bd96d79f4d8809fb4c2e0978c9 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Tue, 14 Jun 2011 13:27:28 -0400 Subject: [PATCH 160/164] mp fixes --- nova/exception.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/exception.py b/nova/exception.py index ffd88fbe7..f3a452228 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -588,4 +588,4 @@ class MigrationError(NovaException): class MalformedRequestBody(NovaException): - message = _("Malformed message body") + ": %(reason)s" + message = _("Malformed message body: %(reason)s") From c6db23f8c125fb419778358de2d45df346981af0 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 15 Jun 2011 00:08:19 +0000 Subject: [PATCH 161/164] Removing seconds unit --- run_tests.py | 24 ++++++++---------------- run_tests.sh | 2 +- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/run_tests.py b/run_tests.py index 3ecc146fd..c29a3da43 100644 --- a/run_tests.py +++ b/run_tests.py @@ -185,20 +185,13 @@ class _NullColorizer(object): self.stream.write(text) -def classify_test_speed(elapsed_time): - if elapsed_time > 1.0: - return 'slow' - elif elapsed_time > 0.25: - return 'sluggish' - else: - return 'fast' - - def get_elapsed_time_color(elapsed_time): - color_map = {'slow': 'red', 'sluggish': 'yellow', 'fast': 'green'} - slowness = classify_test_speed(elapsed_time) - color = color_map[slowness] - return color + if elapsed_time > 1.0: + return 'red' + elif elapsed_time > 0.25: + return 'yellow' + else: + return 'green' class NovaTestResult(result.TextTestResult): @@ -233,7 +226,6 @@ class NovaTestResult(result.TextTestResult): def _writeElapsedTime(self, test): color = get_elapsed_time_color(self.elapsed_time) self.colorizer.write(" %.2f" % self.elapsed_time, color) - self.stream.write(' secs') def _writeResult(self, test, long_result, color, short_result): if self.showAll: @@ -322,13 +314,13 @@ class NovaTestRunner(core.TextTestRunner): def _writeSlowTests(self, result_): # Pare out 'fast' tests slow_tests = [item for item in result_.slow_tests - if classify_test_speed(item[0]) != 'fast'] + if get_elapsed_time_color(item[0]) != 'green'] slow_total_time = sum(item[0] for item in slow_tests) self.stream.writeln("Slowest %i tests took %.2f secs:" % (len(slow_tests), slow_total_time)) for elapsed_time, test in sorted(slow_tests, reverse=True): - time_str = "%.2f secs" % elapsed_time + time_str = "%.2f" % elapsed_time self.stream.writeln(" %s %s" % (time_str.ljust(10), test)) def run(self, test): diff --git a/run_tests.sh b/run_tests.sh index 5fc406035..90af35579 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -10,7 +10,7 @@ function usage { echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added." echo " -p, --pep8 Just run pep8" echo " -h, --help Print this usage message" - echo " --show-elapsed Print elapsed time for tests along with slowest tests" + echo " --show-elapsed Print elapsed time in seconds for tests along with slowest tests" echo "" echo "Note: with no options specified, the script will try to run the tests in a virtual environment," echo " If no virtualenv is found, the script will ask if you would like to create one. If you " From 92a679b5fb53eb8c38254f59e873a703d03c7271 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 15 Jun 2011 01:16:53 +0000 Subject: [PATCH 162/164] Ensuring pep8 runs even when nose optons are passed --- run_tests.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/run_tests.sh b/run_tests.sh index 90af35579..b90e1e837 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -25,6 +25,7 @@ function process_option { -N|--no-virtual-env) let always_venv=0; let never_venv=1;; -f|--force) let force=1;; -p|--pep8) let just_pep8=1;; + -*) noseopts="$noseopts $1";; *) noseargs="$noseargs $1" esac } @@ -35,6 +36,7 @@ always_venv=0 never_venv=0 force=0 noseargs= +noseopts= wrapper="" just_pep8=0 @@ -73,7 +75,7 @@ function run_pep8 { --exclude=vcsversion.py ${srcfiles} } -NOSETESTS="python run_tests.py $noseargs" +NOSETESTS="python run_tests.py $noseopts $noseargs" if [ $never_venv -eq 0 ] then @@ -108,7 +110,10 @@ fi run_tests || exit -# Also run pep8 if no options were provided. +# NOTE(sirp): we only want to run pep8 when we're running the full-test suite, +# not when we're running tests individually. To handle this, we need to +# distinguish between options (noseopts), which begin with a '-', and +# arguments (noseargs). if [ -z "$noseargs" ]; then run_pep8 fi From 730ff7cb9c279bfb9a5fd17cd59212db7e790313 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 15 Jun 2011 01:21:11 +0000 Subject: [PATCH 163/164] Showing elapsed time is now default --- run_tests.py | 6 +++--- run_tests.sh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/run_tests.py b/run_tests.py index c29a3da43..601c41e40 100644 --- a/run_tests.py +++ b/run_tests.py @@ -334,13 +334,13 @@ if __name__ == '__main__': logging.setup() # If any argument looks like a test name but doesn't have "nova.tests" in # front of it, automatically add that so we don't have to type as much - show_elapsed = False + show_elapsed = True argv = [] for x in sys.argv: if x.startswith('test_'): argv.append('nova.tests.%s' % x) - elif x.startswith('--show-elapsed'): - show_elapsed = True + elif x.startswith('--hide-elapsed'): + show_elapsed = False else: argv.append(x) diff --git a/run_tests.sh b/run_tests.sh index b90e1e837..c3f06f837 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -10,7 +10,7 @@ function usage { echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added." echo " -p, --pep8 Just run pep8" echo " -h, --help Print this usage message" - echo " --show-elapsed Print elapsed time in seconds for tests along with slowest tests" + echo " --hide-elapsed Don't print the elapsed time for each test along with slow test list" echo "" echo "Note: with no options specified, the script will try to run the tests in a virtual environment," echo " If no virtualenv is found, the script will ask if you would like to create one. If you " From 6f6d3c4f4e2b54bc15013d91116d6214d0063dbb Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 15 Jun 2011 04:05:37 +0000 Subject: [PATCH 164/164] Show only if we have slow tests, elapsed only if test success --- run_tests.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/run_tests.py b/run_tests.py index 601c41e40..0944bb585 100644 --- a/run_tests.py +++ b/run_tests.py @@ -227,10 +227,10 @@ class NovaTestResult(result.TextTestResult): color = get_elapsed_time_color(self.elapsed_time) self.colorizer.write(" %.2f" % self.elapsed_time, color) - def _writeResult(self, test, long_result, color, short_result): + def _writeResult(self, test, long_result, color, short_result, success): if self.showAll: self.colorizer.write(long_result, color) - if self.show_elapsed: + if self.show_elapsed and success: self._writeElapsedTime(test) self.stream.writeln() elif self.dots: @@ -241,13 +241,13 @@ class NovaTestResult(result.TextTestResult): def addSuccess(self, test): unittest.TestResult.addSuccess(self, test) self._handleElapsedTime(test) - self._writeResult(test, 'OK', 'green', '.') + self._writeResult(test, 'OK', 'green', '.', True) # NOTE(vish): copied from unittest with edit to add color def addFailure(self, test, err): unittest.TestResult.addFailure(self, test, err) self._handleElapsedTime(test) - self._writeResult(test, 'FAIL', 'red', 'F') + self._writeResult(test, 'FAIL', 'red', 'F', False) # NOTE(vish): copied from nose with edit to add color def addError(self, test, err): @@ -282,7 +282,7 @@ class NovaTestResult(result.TextTestResult): self.errors.append((test, exc_info)) test.passed = False if stream is not None: - self._writeResult(test, 'ERROR', 'red', 'E') + self._writeResult(test, 'ERROR', 'red', 'E', False) def startTest(self, test): unittest.TestResult.startTest(self, test) @@ -315,13 +315,13 @@ class NovaTestRunner(core.TextTestRunner): # Pare out 'fast' tests slow_tests = [item for item in result_.slow_tests if get_elapsed_time_color(item[0]) != 'green'] - - slow_total_time = sum(item[0] for item in slow_tests) - self.stream.writeln("Slowest %i tests took %.2f secs:" - % (len(slow_tests), slow_total_time)) - for elapsed_time, test in sorted(slow_tests, reverse=True): - time_str = "%.2f" % elapsed_time - self.stream.writeln(" %s %s" % (time_str.ljust(10), test)) + if slow_tests: + slow_total_time = sum(item[0] for item in slow_tests) + self.stream.writeln("Slowest %i tests took %.2f secs:" + % (len(slow_tests), slow_total_time)) + for elapsed_time, test in sorted(slow_tests, reverse=True): + time_str = "%.2f" % elapsed_time + self.stream.writeln(" %s %s" % (time_str.ljust(10), test)) def run(self, test): result_ = core.TextTestRunner.run(self, test)

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�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

Mt?h!|K_P5|RE}YNrLX*9_#JMk`&Q9(V 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