Beispiel #1
0
 def schedule_start_instance(self, context, instance_id, *_args, **_kwargs):
     instance_ref = db.instance_get(context, instance_id)
     host = self._schedule_instance(context, instance_ref, *_args,
                                    **_kwargs)
     driver.cast_to_compute_host(context,
                                 host,
                                 'start_instance',
                                 instance_id=instance_id,
                                 **_kwargs)
 def _provision_resource_locally(self, context, weighted_host, request_spec,
                                 kwargs):
     """Create the requested resource in this Zone."""
     instance = self.create_instance_db_entry(context, request_spec)
     driver.cast_to_compute_host(context, weighted_host.host,
             'run_instance', instance_uuid=instance['uuid'], **kwargs)
     inst = driver.encode_instance(instance, local=True)
     # So if another instance is created, 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 inst
 def _provision_resource_locally(self, context, weighted_host, request_spec,
                                 kwargs):
     """Create the requested resource in this Zone."""
     instance = self.create_instance_db_entry(context, request_spec)
     driver.cast_to_compute_host(context,
                                 weighted_host.host,
                                 'run_instance',
                                 instance_uuid=instance['uuid'],
                                 **kwargs)
     inst = driver.encode_instance(instance, local=True)
     # So if another instance is created, 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 inst
Beispiel #4
0
 def schedule_run_instance(self, context, request_spec, *_args, **_kwargs):
     num_instances = request_spec.get('num_instances', 1)
     instances = []
     for num in xrange(num_instances):
         host = self._schedule_instance(context,
                 request_spec['instance_properties'], *_args, **_kwargs)
         instance_ref = self.create_instance_db_entry(context,
                 request_spec)
         driver.cast_to_compute_host(context, host, 'run_instance',
                 instance_uuid=instance_ref['uuid'], **_kwargs)
         instances.append(driver.encode_instance(instance_ref))
         # 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
Beispiel #5
0
 def schedule_run_instance(self, context, request_spec, *_args, **kwargs):
     """Create and run an instance or instances"""
     elevated = context.elevated()
     num_instances = request_spec.get('num_instances', 1)
     instances = []
     for num in xrange(num_instances):
         host = self._schedule(context, 'compute', request_spec, **kwargs)
         instance = self.create_instance_db_entry(elevated, 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
Beispiel #6
0
 def schedule_start_instance(self, context, instance_id, *_args, **_kwargs):
     instance_ref = db.instance_get(context, instance_id)
     host = self._schedule_instance(context, instance_ref,
             *_args, **_kwargs)
     driver.cast_to_compute_host(context, host, 'start_instance',
             instance_id=instance_id, **_kwargs)