summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorDan Prince <dan.prince@rackspace.com>2011-08-26 09:54:53 -0400
committerDan Prince <dan.prince@rackspace.com>2011-08-26 09:54:53 -0400
commit5dc7956eed749c33b6cfaaaf122e829feec62ea9 (patch)
tree46b19ae4254e6e78c1f759eca212e62a0ec69f69 /nova/compute
parente38ba3a6066de8499ea5cc8d1fb2e5daefbf336a (diff)
Update compute API and manager so that the image_ref is set before
spawning the rebuilt instance. Fixes issue where rebuild didn't actually change the image_id.
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/api.py3
-rw-r--r--nova/compute/manager.py14
2 files changed, 4 insertions, 13 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 60a13631a..3b4bde8ea 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -1035,7 +1035,7 @@ class API(base.Base):
files_to_inject = files_to_inject or []
self._check_injected_file_quota(context, files_to_inject)
- values = {}
+ values = {"image_ref": image_href}
if metadata is not None:
self._check_metadata_properties_quota(context, metadata)
values['metadata'] = metadata
@@ -1045,7 +1045,6 @@ class API(base.Base):
rebuild_params = {
"new_pass": admin_password,
- "image_ref": image_href,
"injected_files": files_to_inject,
}
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index ade15e310..6fcb3786c 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -201,11 +201,6 @@ class ComputeManager(manager.SchedulerDependentManager):
data = {'launched_at': launched_at or utils.utcnow()}
self.db.instance_update(context, instance_id, data)
- def _update_image_ref(self, context, instance_id, image_ref):
- """Update the image_id for the given instance."""
- data = {'image_ref': image_ref}
- self.db.instance_update(context, instance_id, data)
-
def get_console_topic(self, context, **kwargs):
"""Retrieves the console host for a project on this host.
@@ -526,7 +521,7 @@ class ComputeManager(manager.SchedulerDependentManager):
:param context: `nova.RequestContext` object
:param instance_id: Instance identifier (integer)
- :param image_ref: Image identifier (href or integer)
+ :param injected_files: Files to inject
:param new_pass: password to set on rebuilt instance
"""
context = context.elevated()
@@ -539,8 +534,6 @@ class ComputeManager(manager.SchedulerDependentManager):
network_info = self._get_instance_nw_info(context, instance_ref)
self.driver.destroy(instance_ref, network_info)
- image_ref = kwargs.get('image_ref')
- instance_ref.image_ref = image_ref
instance_ref.injected_files = kwargs.get('injected_files', [])
network_info = self.network_api.get_instance_nw_info(context,
instance_ref)
@@ -552,11 +545,10 @@ class ComputeManager(manager.SchedulerDependentManager):
self.driver.spawn(context, instance_ref, network_info, bd_mapping)
- self._update_image_ref(context, instance_id, image_ref)
self._update_launched_at(context, instance_id)
self._update_state(context, instance_id)
- usage_info = utils.usage_from_instance(instance_ref,
- image_ref=image_ref)
+ usage_info = utils.usage_from_instance(instance_ref)
+
notifier.notify('compute.%s' % self.host,
'compute.instance.rebuild',
notifier.INFO,