summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2019-06-17 11:37:07 +0200
committerDmitry Tantsur <dtantsur@protonmail.com>2019-06-18 05:46:13 +0000
commitd0d47ce08f0cebed9eeb7e8d4d61219b267c06f7 (patch)
treee8c6d7b5bc135c8969954c666c57633fabcdb21a
parentbf705dba9964c230890bdf2dd1ded79c5d3e7152 (diff)
downloadironic-python-agent-d0d47ce08f0cebed9eeb7e8d4d61219b267c06f7.tar.gz
Stop logging lshw output, collect it with other logs instead
The lshw output is huge even on virtual machines, and it pollutes the debug logging. This change silences it. Instead, the lshw output is collected as part of the ramdisk logs. Depends-On: https://review.opendev.org/#/c/665635/ Change-Id: I6a3015b2d8d09f6f48b5cbd39dc84bd75b72f909 (cherry picked from commit 94048fe97e93af3ad6902c3c1aa4ec5d92b41747)
-rw-r--r--ironic_python_agent/hardware.py2
-rw-r--r--ironic_python_agent/tests/unit/test_utils.py10
-rw-r--r--ironic_python_agent/utils.py1
-rw-r--r--releasenotes/notes/lshw-cb89894be057bdc9.yaml5
4 files changed, 13 insertions, 5 deletions
diff --git a/ironic_python_agent/hardware.py b/ironic_python_agent/hardware.py
index 61c3a68d..b16ff35b 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 8fe8ee53..32933f65 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 2bc2bfa1..de46c6ce 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 00000000..94a97a3f
--- /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.