def schedule_run_instance(self, context, request_spec, *_args, **kwargs): """Create and run an instance or instances""" num_instances = request_spec.get('num_instances', 1) instances = [] for num in xrange(num_instances): host = self._schedule(context, 'compute', request_spec, **kwargs) request_spec['instance_properties']['launch_index'] = num instance = self.create_instance_db_entry(context, request_spec) driver.cast_to_compute_host(context, host, 'run_instance', instance_uuid=instance['uuid'], **kwargs) instances.append(driver.encode_instance(instance)) # So if we loop around, create_instance_db_entry will actually # create a new entry, instead of assume it's been created # already del request_spec['instance_properties']['uuid'] return instances
def schedule_prep_resize(self, context, request_spec, *args, **kwargs): """Select a target for resize.""" host = self._schedule(context, 'compute', request_spec, **kwargs) driver.cast_to_compute_host(context, host, 'prep_resize', **kwargs)