diff options
| author | Todd Willey <todd@ansolabs.com> | 2011-05-31 16:20:35 -0400 |
|---|---|---|
| committer | Todd Willey <todd@ansolabs.com> | 2011-05-31 16:20:35 -0400 |
| commit | eca6c3098144c1bf917725d906a50141a5aaef4e (patch) | |
| tree | 2ee52158c2c6ca49f6675359b1977bc53ca72621 /nova/compute | |
| parent | 4d7dbdc96e30afbd19ab525e9667f6e3aaaafbe9 (diff) | |
| parent | 0b7104a8c6b2b2e3fed4a09b239439964aeb2774 (diff) | |
Merge Trunk.
Diffstat (limited to 'nova/compute')
| -rw-r--r-- | nova/compute/api.py | 13 | ||||
| -rw-r--r-- | nova/compute/manager.py | 5 |
2 files changed, 11 insertions, 7 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py index 660c7666f..1455e2de9 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -540,7 +540,7 @@ class API(base.Base): """Reboot the given instance.""" self._cast_compute_message('reboot_instance', context, instance_id) - def rebuild(self, context, instance_id, image_id, metadata=None, + def rebuild(self, context, instance_id, image_id, name=None, metadata=None, files_to_inject=None): """Rebuild the given instance with the provided metadata.""" instance = db.api.instance_get(context, instance_id) @@ -549,13 +549,16 @@ class API(base.Base): msg = _("Instance already building") raise exception.BuildInProgress(msg) - metadata = metadata or {} - self._check_metadata_properties_quota(context, metadata) - files_to_inject = files_to_inject or [] self._check_injected_file_quota(context, files_to_inject) - self.db.instance_update(context, instance_id, {"metadata": metadata}) + values = {} + if metadata is not None: + self._check_metadata_properties_quota(context, metadata) + values['metadata'] = metadata + if name is not None: + values['display_name'] = name + self.db.instance_update(context, instance_id, values) rebuild_params = { "image_id": image_id, diff --git a/nova/compute/manager.py b/nova/compute/manager.py index ff7aeb053..a2c66a957 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -336,7 +336,7 @@ class ComputeManager(manager.SchedulerDependentManager): @exception.wrap_exception @checks_instance_lock - def rebuild_instance(self, context, instance_id, image_id): + def rebuild_instance(self, context, instance_id, **kwargs): """Destroy and re-make this instance. A 'rebuild' effectively purges all existing data from the system and @@ -354,7 +354,8 @@ class ComputeManager(manager.SchedulerDependentManager): self._update_state(context, instance_id, power_state.BUILDING) self.driver.destroy(instance_ref) - instance_ref.image_id = image_id + instance_ref.image_id = kwargs.get('image_id') + instance_ref.injected_files = kwargs.get('injected_files', []) self.driver.spawn(instance_ref) self._update_image_id(context, instance_id, image_id) |
