summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorTodd Willey <todd@ansolabs.com>2011-05-31 16:20:35 -0400
committerTodd Willey <todd@ansolabs.com>2011-05-31 16:20:35 -0400
commiteca6c3098144c1bf917725d906a50141a5aaef4e (patch)
tree2ee52158c2c6ca49f6675359b1977bc53ca72621 /nova/compute
parent4d7dbdc96e30afbd19ab525e9667f6e3aaaafbe9 (diff)
parent0b7104a8c6b2b2e3fed4a09b239439964aeb2774 (diff)
Merge Trunk.
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/api.py13
-rw-r--r--nova/compute/manager.py5
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)