Adopt the scheduler during creating instance
Change-Id: Ibee51e777bc94e7c8bc4f767a323fb29216b3b2c
This commit is contained in:
@@ -36,7 +36,7 @@ class BaseEngineManager(periodic_task.PeriodicTasks):
|
||||
self.node_cache = {}
|
||||
self.node_cache_time = 0
|
||||
scheduler_driver = CONF.scheduler.scheduler_driver
|
||||
self.scheduler_driver = importutils.import_object(scheduler_driver)
|
||||
self.scheduler = importutils.import_object(scheduler_driver)
|
||||
self.notifier = rpc.get_notifier()
|
||||
self._started = False
|
||||
|
||||
|
||||
@@ -110,8 +110,24 @@ class EngineManager(base_manager.BaseEngineManager):
|
||||
LOG.debug("Strating instance...")
|
||||
instance.status = 'building'
|
||||
|
||||
# Scheduling...
|
||||
# instance.node_uuid = '8d22309b-b47a-41a7-80e3-e758fae9dedd'
|
||||
# Populate request spec
|
||||
instance_type_id = instance.instance_type_id
|
||||
instance_type = instance.instance_type
|
||||
request_spec = {
|
||||
'instance_id': instance.id,
|
||||
'instance_properties': {
|
||||
'availability_zone': instance.availability_zone,
|
||||
'instance_type_id': instance_type_id,
|
||||
},
|
||||
'instance_type': dict(instance_type),
|
||||
}
|
||||
|
||||
# TODO(zhenguo): Add retry
|
||||
top_node = self.scheduler.schedule(context,
|
||||
request_spec,
|
||||
self.node_cache)
|
||||
instance.node_uuid = top_node.to_dict()['node']
|
||||
|
||||
instance.save()
|
||||
|
||||
self._build_networks(context, instance)
|
||||
|
||||
@@ -24,7 +24,7 @@ class AvailabilityZoneFilter(filters.BaseNodeFilter):
|
||||
|
||||
def node_passes(self, node_state, filter_properties):
|
||||
spec = filter_properties.get('request_spec', {})
|
||||
props = spec.get('resource_properties', {})
|
||||
props = spec.get('instance_properties', {})
|
||||
availability_zone = props.get('availability_zone')
|
||||
|
||||
if availability_zone:
|
||||
|
||||
Reference in New Issue
Block a user