summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorChris Behrens <cbehrens@codestud.com>2012-01-20 10:36:00 -0800
committerChris Behrens <cbehrens@codestud.com>2012-01-20 14:41:46 -0800
commit1bf066c59bbfe40a30e498f2b24fdddd82fb2508 (patch)
tree3428a589a6b6dda3c63e1dce4f2f7c10c0ec2d31 /nova/compute
parentfd1aa4613b9a644ad2d702ac2d15cf12cef589c5 (diff)
pass filter_properties into scheduling requests for run_instance
Cleans up the resize stuff for avoiding a host Allows for user-specified or compute-specified filters. Change-Id: I0c6066240f602788eff1e0b5856ac52c03a4ebf0
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/api.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 244930402..9cc9744b8 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -525,11 +525,12 @@ class API(base.Base):
LOG.debug(_("Sending create to scheduler for %(pid)s/%(uid)s's") %
locals())
+ filter_properties = {}
+
request_spec = {
'image': image,
'instance_properties': base_options,
'instance_type': instance_type,
- 'filter': None,
'blob': zone_blob,
'num_instances': num_instances,
'block_device_mapping': block_device_mapping,
@@ -543,7 +544,8 @@ class API(base.Base):
"request_spec": request_spec,
"admin_password": admin_password,
"injected_files": injected_files,
- "requested_networks": requested_networks}})
+ "requested_networks": requested_networks,
+ "filter_properties": filter_properties}})
def create(self, context, instance_type,
image_href, kernel_id=None, ramdisk_id=None,
@@ -1391,13 +1393,14 @@ class API(base.Base):
**kwargs)
request_spec = {
- 'instance_type': new_instance_type,
- 'filter': None,
- 'num_instances': 1,
- 'instance_properties': instance,
- 'avoid_original_host': not FLAGS.allow_resize_to_same_host,
- 'local_zone': True,
- }
+ 'instance_type': new_instance_type,
+ 'num_instances': 1,
+ 'instance_properties': instance}
+
+ filter_properties = {'local_zone_only': True, 'ignore_hosts': []}
+
+ if not FLAGS.allow_resize_to_same_host:
+ filter_properties['ignore_hosts'].append(instance['host'])
self._cast_scheduler_message(context,
{"method": "prep_resize",
@@ -1405,7 +1408,8 @@ class API(base.Base):
"instance_uuid": instance['uuid'],
"update_db": False,
"instance_type_id": new_instance_type['id'],
- "request_spec": request_spec}})
+ "request_spec": request_spec,
+ "filter_properties": filter_properties}})
@wrap_check_policy
@scheduler_api.reroute_compute("add_fixed_ip")