summaryrefslogtreecommitdiffstats
path: root/nova/scheduler/filter_scheduler.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/scheduler/filter_scheduler.py')
-rw-r--r--nova/scheduler/filter_scheduler.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/nova/scheduler/filter_scheduler.py b/nova/scheduler/filter_scheduler.py
index 4e5662e65..103aec940 100644
--- a/nova/scheduler/filter_scheduler.py
+++ b/nova/scheduler/filter_scheduler.py
@@ -161,6 +161,22 @@ class FilterScheduler(driver.Scheduler):
raise exception.NoValidHost(reason="")
return hosts
+ def select_destinations(self, context, request_spec, filter_properties):
+ """Selects a filtered set of hosts and nodes."""
+ num_instances = request_spec['num_instances']
+ instance_uuids = request_spec.get('instance_uuids')
+ selected_hosts = self._schedule(context, request_spec,
+ filter_properties, instance_uuids)
+
+ # Couldn't fulfill the request_spec
+ if len(selected_hosts) < num_instances:
+ raise exception.NoValidHost(reason='')
+
+ dests = []
+ for host in selected_hosts:
+ dests.append((host.obj.host, host.obj.nodename))
+ return dests
+
def _provision_resource(self, context, weighed_host, request_spec,
filter_properties, requested_networks, injected_files,
admin_password, is_first_time, instance_uuid=None):