Move ipmi logging to a separate option

The IPMI verbose output being turned on by the debug option
is confusing and misleading, and since many operators run
ironic in debug mode anyway, it doesn't make much sense
to spam logs with errors and information that can be
misleading to a less experienced operator.

Also... less logging output.

Change-Id: I0fae7bad5613865dfd4d1c663be08d40debe157a
This commit is contained in:
Julia Kreger 2020-03-12 07:19:44 -07:00
parent 55a29c31fa
commit 1e514b6440
4 changed files with 25 additions and 5 deletions

View File

@ -53,6 +53,12 @@ opts = [
default=[],
help=_('Additional errors ipmitool may encounter, '
'specific to the environment it is run in.')),
cfg.BoolOpt('debug',
default=False,
help=_('Enables all ipmi commands to be executed with an '
'additional debugging output. This is a separate '
'option as ipmitool can log a substantial amount '
'of misleading text when in this mode.')),
]

View File

@ -446,7 +446,7 @@ def _get_ipmitool_args(driver_info, pw_file=None):
args.append('-f')
args.append(pw_file)
if CONF.debug:
if CONF.ipmi.debug:
args.append('-v')
# ensure all arguments are strings

View File

@ -459,6 +459,7 @@ class Base(db_base.DbTestCase):
enabled_console_interfaces=['fake', 'ipmitool-socat',
'ipmitool-shellinabox',
'no-console'])
self.config(debug=True, group="ipmi")
self.node = obj_utils.create_test_node(
self.context,
console_interface='ipmitool-socat',
@ -2622,7 +2623,7 @@ class IPMIToolShellinaboxTestCase(db_base.DbTestCase):
ipmi_cmd = self.console._get_ipmi_cmd(driver_info, 'pw_file')
expected_ipmi_cmd = ("/:%(uid)s:%(gid)s:HOME:ipmitool "
"-I lanplus -H %(address)s -L ADMINISTRATOR "
"-U %(user)s -f pw_file -v" %
"-U %(user)s -f pw_file" %
{'uid': os.getuid(), 'gid': os.getgid(),
'address': driver_info['address'],
'user': driver_info['username']})
@ -2636,7 +2637,7 @@ class IPMIToolShellinaboxTestCase(db_base.DbTestCase):
ipmi_cmd = self.console._get_ipmi_cmd(driver_info, 'pw_file')
expected_ipmi_cmd = ("/:%(uid)s:%(gid)s:HOME:ipmitool "
"-I lanplus -H %(address)s -L ADMINISTRATOR "
"-f pw_file -v" %
"-f pw_file" %
{'uid': os.getuid(), 'gid': os.getgid(),
'address': driver_info['address']})
self.assertEqual(expected_ipmi_cmd, ipmi_cmd)
@ -2806,7 +2807,7 @@ class IPMIToolSocatDriverTestCase(IPMIToolShellinaboxTestCase):
ipmi_cmd = self.console._get_ipmi_cmd(driver_info, 'pw_file')
expected_ipmi_cmd = ("ipmitool -I lanplus -H %(address)s "
"-L ADMINISTRATOR -U %(user)s "
"-f pw_file -v" %
"-f pw_file" %
{'address': driver_info['address'],
'user': driver_info['username']})
self.assertEqual(expected_ipmi_cmd, ipmi_cmd)
@ -2819,7 +2820,7 @@ class IPMIToolSocatDriverTestCase(IPMIToolShellinaboxTestCase):
ipmi_cmd = self.console._get_ipmi_cmd(driver_info, 'pw_file')
expected_ipmi_cmd = ("ipmitool -I lanplus -H %(address)s "
"-L ADMINISTRATOR "
"-f pw_file -v" %
"-f pw_file" %
{'address': driver_info['address']})
self.assertEqual(expected_ipmi_cmd, ipmi_cmd)

View File

@ -0,0 +1,13 @@
---
features:
- |
Adds a new ``[ipmi]debug`` option that allows users to explicitly turn
IPMI command debugging on, as opposed to relying upon the system debug
setting ``[DEFAULT]debug``. Users wishing to continue to log this output
should set ``[ipmi]debug`` to ``True`` in their ironic.conf.
upgrade:
- Debug logging control has been moved to the ``[ipmi]debug`` configuration
setting as opposed to the "conductor" ``[DEFAULT]debug`` setting as
the existing ``ipmitool`` output can be extremely misleading for users.
Operators who wish to continue to log ``ipmitool`` verbose output in their
logs should explicitly set the ``[ipmi]debug`` command to True.