From d35fccc579812faa5c8d1338744d24e59c426dd6 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Thu, 17 Jan 2013 20:42:27 +0000 Subject: 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 --- nova/compute/manager.py | 8 ++++---- nova/compute/utils.py | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'nova/compute') 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) -- cgit