Silence warning when running in a container with overlayfs
When running in a container using overlayfs we may see the following warning: WARNING os_brick.initiator.connectors.nvmeof process execution error in _get_host_uuid: Unexpected error while running command. Command: blkid overlay -s UUID -o value Exit code: 2 Stdout: '' Stderr: '': oslo_concurrency.processutils.ProcessExecutionError: Unexpected error while running command. This change fixes the issue by not running the command when the file system source is overlay. Closes-Bug: #2045557 Change-Id: I3abc5bee7f474a9a40d396c559a42edff86334e0
This commit is contained in:
parent
7e9f8a666f
commit
bd07c571da
@ -792,8 +792,13 @@ class NVMeOFConnector(base.BaseLinuxConnector):
|
||||
try:
|
||||
lines, err = self._execute(
|
||||
*cmd, run_as_root=True, root_helper=self._root_helper)
|
||||
source = lines.split('\n')[0]
|
||||
# In a container this could be 'overlay', which causes the blkid
|
||||
# command to fail.
|
||||
if source == "overlay":
|
||||
return None
|
||||
blkid_cmd = (
|
||||
'blkid', lines.split('\n')[0], '-s', 'UUID', '-o', 'value')
|
||||
'blkid', source, '-s', 'UUID', '-o', 'value')
|
||||
lines, _err = self._execute(
|
||||
*blkid_cmd, run_as_root=True, root_helper=self._root_helper)
|
||||
return lines.split('\n')[0]
|
||||
|
@ -909,8 +909,10 @@ class NVMeOFConnectorTestCase(test_connector.ConnectorTestCase):
|
||||
|
||||
@mock.patch.object(nvmeof.NVMeOFConnector, '_execute', autospec=True)
|
||||
def test_get_sysuuid_without_newline(self, mock_execute):
|
||||
mock_execute.return_value = (
|
||||
"9126E942-396D-11E7-B0B7-A81E84C186D1\n", "")
|
||||
mock_execute.side_effect = [
|
||||
("/dev/sda1", ""),
|
||||
("9126E942-396D-11E7-B0B7-A81E84C186D1\n", "")
|
||||
]
|
||||
uuid = self.connector._get_host_uuid()
|
||||
expected_uuid = "9126E942-396D-11E7-B0B7-A81E84C186D1"
|
||||
self.assertEqual(expected_uuid, uuid)
|
||||
@ -921,6 +923,12 @@ class NVMeOFConnectorTestCase(test_connector.ConnectorTestCase):
|
||||
uuid = self.connector._get_host_uuid()
|
||||
self.assertIsNone(uuid)
|
||||
|
||||
@mock.patch.object(nvmeof.NVMeOFConnector, '_execute', autospec=True)
|
||||
def test_get_sysuuid_overlay(self, mock_execute):
|
||||
mock_execute.return_value = ("overlay\n", "")
|
||||
uuid = self.connector._get_host_uuid()
|
||||
self.assertIsNone(uuid)
|
||||
|
||||
@mock.patch.object(utils, 'get_nvme_host_id',
|
||||
return_value=SYS_UUID)
|
||||
@mock.patch.object(nvmeof.NVMeOFConnector,
|
||||
|
@ -0,0 +1,4 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
Fixes an warning seen when running in a container using ``overlayfs``.
|
Loading…
Reference in New Issue
Block a user