95f4841c4a
- Convert oscap output to UTF-8 - Added: * switch-oscap-encoding-to-utf-8-639.patch - Make Salt compatible with Python 3.11 - Added: * fix-salt-warnings-and-testuite-for-python-3.11-635.patch OBS-URL: https://build.opensuse.org/request/show/1161659 OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:saltstack/salt?expand=0&rev=240
81 lines
3.5 KiB
Diff
81 lines
3.5 KiB
Diff
From 4ec5c8bdb8aecac6752c639f494b86c7f8f57ba2 Mon Sep 17 00:00:00 2001
|
|
From: Marek Czernek <marek.czernek@suse.com>
|
|
Date: Tue, 26 Mar 2024 09:20:30 +0100
|
|
Subject: [PATCH] Switch oscap encoding to utf-8 (#639)
|
|
|
|
---
|
|
salt/modules/openscap.py | 7 ++++---
|
|
tests/unit/modules/test_openscap.py | 8 ++++----
|
|
2 files changed, 8 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/salt/modules/openscap.py b/salt/modules/openscap.py
|
|
index 89712ae722b..7322c667dcc 100644
|
|
--- a/salt/modules/openscap.py
|
|
+++ b/salt/modules/openscap.py
|
|
@@ -153,7 +153,7 @@ def xccdf_eval(xccdffile, ovalfiles=None, **kwargs):
|
|
tempdir = tempfile.mkdtemp()
|
|
proc = Popen(cmd_opts, stdout=PIPE, stderr=PIPE, cwd=tempdir)
|
|
(_, error) = proc.communicate()
|
|
- error = error.decode('ascii', errors='ignore')
|
|
+ error = error.decode('utf-8', errors='surogateescape')
|
|
success = _OSCAP_EXIT_CODES_MAP.get(proc.returncode, False)
|
|
if proc.returncode < 0:
|
|
error += "\nKilled by signal {}\n".format(proc.returncode)
|
|
@@ -204,10 +204,11 @@ def xccdf(params):
|
|
cmd = _XCCDF_MAP[action]["cmd_pattern"].format(args.profile, policy)
|
|
tempdir = tempfile.mkdtemp()
|
|
proc = Popen(shlex.split(cmd), stdout=PIPE, stderr=PIPE, cwd=tempdir)
|
|
- (stdoutdata, error) = proc.communicate()
|
|
+ (_, error) = proc.communicate()
|
|
+ error = error.decode('utf-8', errors='surogateescape')
|
|
success = _OSCAP_EXIT_CODES_MAP.get(proc.returncode, False)
|
|
if proc.returncode < 0:
|
|
- error += "\nKilled by signal {}\n".format(proc.returncode).encode('ascii')
|
|
+ error += "\nKilled by signal {}\n".format(proc.returncode)
|
|
returncode = proc.returncode
|
|
if success:
|
|
__salt__["cp.push_dir"](tempdir)
|
|
diff --git a/tests/unit/modules/test_openscap.py b/tests/unit/modules/test_openscap.py
|
|
index 6fbdfed7cf9..c20220ea977 100644
|
|
--- a/tests/unit/modules/test_openscap.py
|
|
+++ b/tests/unit/modules/test_openscap.py
|
|
@@ -35,7 +35,7 @@ class OpenscapTestCase(TestCase):
|
|
"salt.modules.openscap.Popen",
|
|
MagicMock(
|
|
return_value=Mock(
|
|
- **{"returncode": 0, "communicate.return_value": ("", "")}
|
|
+ **{"returncode": 0, "communicate.return_value": (bytes(0), bytes(0))}
|
|
)
|
|
),
|
|
):
|
|
@@ -82,7 +82,7 @@ class OpenscapTestCase(TestCase):
|
|
"salt.modules.openscap.Popen",
|
|
MagicMock(
|
|
return_value=Mock(
|
|
- **{"returncode": 2, "communicate.return_value": ("", "some error")}
|
|
+ **{"returncode": 2, "communicate.return_value": (bytes(0), bytes("some error", "UTF-8"))}
|
|
)
|
|
),
|
|
):
|
|
@@ -137,7 +137,7 @@ class OpenscapTestCase(TestCase):
|
|
"salt.modules.openscap.Popen",
|
|
MagicMock(
|
|
return_value=Mock(
|
|
- **{"returncode": 2, "communicate.return_value": ("", "some error")}
|
|
+ **{"returncode": 2, "communicate.return_value": (bytes(0), bytes("some error", "UTF-8"))}
|
|
)
|
|
),
|
|
):
|
|
@@ -180,7 +180,7 @@ class OpenscapTestCase(TestCase):
|
|
return_value=Mock(
|
|
**{
|
|
"returncode": 1,
|
|
- "communicate.return_value": ("", "evaluation error"),
|
|
+ "communicate.return_value": (bytes(0), bytes("evaluation error", "UTF-8")),
|
|
}
|
|
)
|
|
),
|
|
--
|
|
2.44.0
|
|
|