From b8fa188a29481b11b2f3117cdeecfd920a8f5a0e Mon Sep 17 00:00:00 2001 From: Riccardo Pittau Date: Wed, 25 Sep 2019 14:38:30 +0200 Subject: [PATCH] Change log level based on node status While the status node change message is purely informational, it can contain also failed states transitions. Moving the level from INFO to ERROR if the provision_state is 'failed' can help in detecting the transition message when troubleshooting issues. Change-Id: I79ff7cb8b9d33bc2837d41126fba269a5d4b1cda --- ironic/conductor/task_manager.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/ironic/conductor/task_manager.py b/ironic/conductor/task_manager.py index 804d8e4a2c..b99cd10842 100644 --- a/ironic/conductor/task_manager.py +++ b/ironic/conductor/task_manager.py @@ -486,12 +486,20 @@ class TaskManager(object): # publish the state transition by saving the Node self.node.save() - LOG.info('Node %(node)s moved to provision state "%(state)s" from ' - 'state "%(previous)s"; target provision state is ' - '"%(target)s"', - {'node': self.node.uuid, 'state': self.node.provision_state, - 'target': self.node.target_provision_state, - 'previous': self._prev_provision_state}) + + log_message = ('Node %(node)s moved to provision state "%(state)s" ' + 'from state "%(previous)s"; target provision state is ' + '"%(target)s"' % + {'node': self.node.uuid, + 'state': self.node.provision_state, + 'target': self.node.target_provision_state, + 'previous': self._prev_provision_state}) + + if (self.node.provision_state.endswith('failed') or + self.node.provision_state == 'error'): + LOG.error(log_message) + else: + LOG.info(log_message) if callback is None: self._notify_provision_state_change()