This commit is contained in:
Thomas Phipps 2023-04-26 00:21:49 +00:00 committed by Pedro Algarvio
parent 47a54696db
commit 196023a086
3 changed files with 40 additions and 1 deletions

1
changelog/64082.fixed.md Normal file
View file

@ -0,0 +1 @@
Fix dmsetup device names with hyphen being picked up.

View file

@ -113,7 +113,7 @@ def active():
ret = {}
# TODO: This command should be extended to collect more information, such as UUID.
devices = __salt__["cmd.run_stdout"]("dmsetup ls --target crypt")
out_regex = re.compile(r"(?P<devname>\w+)\W+\((?P<major>\d+), (?P<minor>\d+)\)")
out_regex = re.compile(r"(?P<devname>\S+)\s+\((?P<major>\d+), (?P<minor>\d+)\)")
log.debug(devices)
for line in devices.split("\n"):

View file

@ -0,0 +1,38 @@
import pytest
import salt.modules.cryptdev as cryptdev
from tests.support.mock import MagicMock, patch
@pytest.fixture
def configure_loader_modules(minion_opts):
return {cryptdev: {"__opts__": minion_opts}}
def test_active(caplog):
with patch.dict(
cryptdev.__salt__,
{"cmd.run_stdout": MagicMock(return_value="my-device (253, 1)\n")},
):
assert cryptdev.active() == {
"my-device": {
"devname": "my-device",
"major": "253",
"minor": "1",
}
}
# debien output when no devices setup.
with patch.dict(cryptdev.__salt__, {"cmd.run_stdout": MagicMock(return_value="")}):
caplog.clear()
assert cryptdev.active() == {}
assert "dmsetup output does not match expected format" in caplog.text
# centos output of dmsetup when no devices setup.
with patch.dict(
cryptdev.__salt__,
{"cmd.run_stdout": MagicMock(return_value="No devices found")},
):
caplog.clear()
assert cryptdev.active() == {}
assert "dmsetup output does not match expected format" in caplog.text