diff --git a/ironic_python_agent/hardware.py b/ironic_python_agent/hardware.py index c4a16f086..16ae5115e 100644 --- a/ironic_python_agent/hardware.py +++ b/ironic_python_agent/hardware.py @@ -72,7 +72,7 @@ def _get_system_lshw_dict(): :return: A python dict from the lshw json output """ - out, _e = utils.execute('lshw', '-quiet', '-json') + out, _e = utils.execute('lshw', '-quiet', '-json', log_stdout=False) return json.loads(out) diff --git a/ironic_python_agent/tests/unit/test_utils.py b/ironic_python_agent/tests/unit/test_utils.py index 8fe8ee534..32933f656 100644 --- a/ironic_python_agent/tests/unit/test_utils.py +++ b/ironic_python_agent/tests/unit/test_utils.py @@ -436,12 +436,13 @@ class TestUtils(testtools.TestCase): self.assertEqual(ret, logs_string) mock_logs.assert_called_once_with(lines=None) calls = [mock.call(['ps', 'au']), mock.call(['df', '-a']), - mock.call(['iptables', '-L']), mock.call(['ip', 'addr'])] + mock.call(['iptables', '-L']), mock.call(['ip', 'addr']), + mock.call(['lshw', '-quiet', '-json'])] mock_outputs.assert_has_calls(calls, any_order=True) mock_gzip_b64.assert_called_once_with( file_list=[], io_dict={'journal': mock.ANY, 'ip_addr': mock.ANY, 'ps': mock.ANY, - 'df': mock.ANY, 'iptables': mock.ANY}) + 'df': mock.ANY, 'iptables': mock.ANY, 'lshw': mock.ANY}) @mock.patch.object(utils, 'gzip_and_b64encode', autospec=True) @mock.patch.object(utils, 'is_journalctl_present', autospec=True) @@ -456,12 +457,13 @@ class TestUtils(testtools.TestCase): self.assertEqual(ret, logs_string) calls = [mock.call(['dmesg']), mock.call(['ps', 'au']), mock.call(['df', '-a']), mock.call(['iptables', '-L']), - mock.call(['ip', 'addr'])] + mock.call(['ip', 'addr']), + mock.call(['lshw', '-quiet', '-json'])] mock_outputs.assert_has_calls(calls, any_order=True) mock_gzip_b64.assert_called_once_with( file_list=['/var/log'], io_dict={'iptables': mock.ANY, 'ip_addr': mock.ANY, 'ps': mock.ANY, - 'dmesg': mock.ANY, 'df': mock.ANY}) + 'dmesg': mock.ANY, 'df': mock.ANY, 'lshw': mock.ANY}) def test_get_ssl_client_options(self): # defaults diff --git a/ironic_python_agent/utils.py b/ironic_python_agent/utils.py index 2bc2bfa11..de46c6ce2 100644 --- a/ironic_python_agent/utils.py +++ b/ironic_python_agent/utils.py @@ -56,6 +56,7 @@ COLLECT_LOGS_COMMANDS = { 'df': ['df', '-a'], 'iptables': ['iptables', '-L'], 'ip_addr': ['ip', 'addr'], + 'lshw': ['lshw', '-quiet', '-json'], } diff --git a/releasenotes/notes/lshw-cb89894be057bdc9.yaml b/releasenotes/notes/lshw-cb89894be057bdc9.yaml new file mode 100644 index 000000000..94a97a3f9 --- /dev/null +++ b/releasenotes/notes/lshw-cb89894be057bdc9.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + The ``lshw`` output no longer pollutes the debug logging. Instead, it's + stored as part of the ramdisk logs.