接着上篇文章谈到的,这篇文章我们继续,来分析ComputeManager类下的_spawn方法。
class ComputeManager(manager.SchedulerDependentManager):
def _spawn(self, context, instance, image_meta, network_info,
block_device_info, injected_files, admin_password,
set_access_ip=False):
instance = self._instance_update(context, instance['uuid'],
vm_state=vm_states.BUILDING,
task_state=task_states.SPAWNING,
expected_task_state=task_states.BLOCK_DEVICE_MAPPING)
try:
self.driver.spawn(context, instance, image_meta,
injected_files, admin_password,
self._legacy_nw_info(network_info),
block_device_info)
except Exception:
...
current_power_state = self._get_power_state(context, instance)
...
这个方法调用了