summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorRick Harris <rconradharris@gmail.com>2013-01-17 20:42:27 +0000
committerRick Harris <rconradharris@gmail.com>2013-01-17 21:44:57 +0000
commitd35fccc579812faa5c8d1338744d24e59c426dd6 (patch)
tree9f544f909d59a24d7567e46daff31dc9976e6572 /nova/compute
parent52fe25a5281a50a5e4c1ff093ce9ed966241a3d7 (diff)
Add host to instance_faults table.
Instances can be rescheduled or migrated to different hosts; so, to make troubleshooting easier, it's convenient to store the host in which the failure occured with the instance fault record. Change-Id: Ib2b9a5bab5d95739b730f0eab15884c2db33a782
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/manager.py8
-rw-r--r--nova/compute/utils.py5
2 files changed, 7 insertions, 6 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index fa1746b92..384866cbe 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -230,7 +230,7 @@ def wrap_instance_fault(function):
with excutils.save_and_reraise_exception():
compute_utils.add_instance_fault_from_exc(context,
- kwargs['instance']['uuid'], e, sys.exc_info())
+ kwargs['instance'], e, sys.exc_info())
return decorated_function
@@ -730,7 +730,7 @@ class ComputeManager(manager.SchedulerDependentManager):
instance_uuid = instance['uuid']
rescheduled = False
- compute_utils.add_instance_fault_from_exc(context, instance_uuid,
+ compute_utils.add_instance_fault_from_exc(context, instance,
exc_info[1], exc_info=exc_info)
try:
@@ -1464,7 +1464,7 @@ class ComputeManager(manager.SchedulerDependentManager):
LOG.error(_('Cannot reboot instance: %(exc)s'), locals(),
context=context, instance=instance)
compute_utils.add_instance_fault_from_exc(context,
- instance['uuid'], exc, sys.exc_info())
+ instance, exc, sys.exc_info())
# Fall through and reset task_state to None
current_power_state = self._get_power_state(context, instance)
@@ -1995,7 +1995,7 @@ class ComputeManager(manager.SchedulerDependentManager):
rescheduled = False
instance_uuid = instance['uuid']
- compute_utils.add_instance_fault_from_exc(context, instance_uuid,
+ compute_utils.add_instance_fault_from_exc(context, instance,
exc_info[0], exc_info=exc_info)
try:
diff --git a/nova/compute/utils.py b/nova/compute/utils.py
index 0c475d082..f07346c6b 100644
--- a/nova/compute/utils.py
+++ b/nova/compute/utils.py
@@ -44,7 +44,7 @@ def metadata_to_dict(metadata):
return result
-def add_instance_fault_from_exc(context, instance_uuid, fault, exc_info=None):
+def add_instance_fault_from_exc(context, instance, fault, exc_info=None):
"""Adds the specified fault to the database."""
code = 500
@@ -62,10 +62,11 @@ def add_instance_fault_from_exc(context, instance_uuid, fault, exc_info=None):
details += '\n' + ''.join(traceback.format_tb(tb))
values = {
- 'instance_uuid': instance_uuid,
+ 'instance_uuid': instance['uuid'],
'code': code,
'message': unicode(message),
'details': unicode(details),
+ 'host': CONF.host
}
db.instance_fault_create(context, values)