Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package salt for openSUSE:Factory checked in at 2022-02-04 00:45:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/salt (Old) and /work/SRC/openSUSE:Factory/.salt.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "salt" Fri Feb 4 00:45:44 2022 rev:124 rq:950374 version:3004 Changes: -------- --- /work/SRC/openSUSE:Factory/salt/salt.changes 2022-01-29 21:01:48.170786669 +0100 +++ /work/SRC/openSUSE:Factory/.salt.new.1898/salt.changes 2022-02-04 00:45:50.961317194 +0100 @@ -1,0 +2,18 @@ +Mon Jan 31 10:28:10 UTC 2022 - Alexander Graul <alexander.gr...@suse.com> + +- Fix exception in batch_async caused by a bad function call + +- Added: + * drop-serial-from-event.unpack-in-cli.batch_async.patch + +------------------------------------------------------------------- +Fri Jan 28 16:17:16 UTC 2022 - Victor Zhestkov <victor.zhest...@suse.com> + +- Fix inspector module export function (bsc#1097531) +- Wipe NOTIFY_SOCKET from env in cmdmod (bsc#1193357) + +- Added: + * fix-inspector-module-export-function-bsc-1097531-481.patch + * wipe-notify_socket-from-env-in-cmdmod-bsc-1193357-30.patch + +------------------------------------------------------------------- New: ---- drop-serial-from-event.unpack-in-cli.batch_async.patch fix-inspector-module-export-function-bsc-1097531-481.patch wipe-notify_socket-from-env-in-cmdmod-bsc-1193357-30.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ salt.spec ++++++ --- /var/tmp/diff_new_pack.fLK4q8/_old 2022-02-04 00:45:52.725304330 +0100 +++ /var/tmp/diff_new_pack.fLK4q8/_new 2022-02-04 00:45:52.733304271 +0100 @@ -269,6 +269,12 @@ Patch65: refactor-and-improvements-for-transactional-updates-.patch # PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/61189 Patch66: state.apply-don-t-check-for-cached-pillar-errors.patch +# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/61393 +Patch67: wipe-notify_socket-from-env-in-cmdmod-bsc-1193357-30.patch +# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/61530 +Patch68: fix-inspector-module-export-function-bsc-1097531-481.patch +# PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/482 +Patch69: drop-serial-from-event.unpack-in-cli.batch_async.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ _lastrevision ++++++ --- /var/tmp/diff_new_pack.fLK4q8/_old 2022-02-04 00:45:52.805303746 +0100 +++ /var/tmp/diff_new_pack.fLK4q8/_new 2022-02-04 00:45:52.809303717 +0100 @@ -1,3 +1,3 @@ -4dd4ea97489b05983b3cd9277bca1edc25c50985 +5f6617c92144fc48a0644695487050121351c5ba (No newline at EOF) ++++++ drop-serial-from-event.unpack-in-cli.batch_async.patch ++++++ >From f6ad8b59662333327b04aa8f6465f6f3bceaa152 Mon Sep 17 00:00:00 2001 From: Alexander Graul <agr...@suse.com> Date: Mon, 31 Jan 2022 10:24:26 +0100 Subject: [PATCH] Drop serial from event.unpack in cli.batch_async --- salt/cli/batch_async.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/salt/cli/batch_async.py b/salt/cli/batch_async.py index 09aa85258b..1012ce37cc 100644 --- a/salt/cli/batch_async.py +++ b/salt/cli/batch_async.py @@ -9,7 +9,6 @@ import logging import salt.client import salt.ext.tornado -import tornado from salt.cli.batch import batch_get_eauth, batch_get_opts, get_bnum log = logging.getLogger(__name__) @@ -109,7 +108,7 @@ class BatchAsync: if not self.event: return try: - mtag, data = self.event.unpack(raw, self.event.serial) + mtag, data = self.event.unpack(raw) for (pattern, op) in self.patterns: if mtag.startswith(pattern[:-1]): minion = data["id"] -- 2.34.1 ++++++ fix-inspector-module-export-function-bsc-1097531-481.patch ++++++ >From 554b13dec6a9770b7fbf287b3bf9af91a2cdabde Mon Sep 17 00:00:00 2001 From: Victor Zhestkov <vzhest...@suse.com> Date: Fri, 28 Jan 2022 16:44:25 +0300 Subject: [PATCH] Fix inspector module export function (bsc#1097531) (#481) --- salt/modules/inspectlib/fsdb.py | 8 ++++---- salt/modules/inspectlib/query.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/salt/modules/inspectlib/fsdb.py b/salt/modules/inspectlib/fsdb.py index 489fde5684..b834b8f678 100644 --- a/salt/modules/inspectlib/fsdb.py +++ b/salt/modules/inspectlib/fsdb.py @@ -137,7 +137,7 @@ class CsvDB: return self._tables.keys() def _load_table(self, table_name): - with gzip.open(os.path.join(self.db_path, table_name), "rb") as table: + with gzip.open(os.path.join(self.db_path, table_name), "rt") as table: return OrderedDict( [tuple(elm.split(":")) for elm in next(csv.reader(table))] ) @@ -184,7 +184,7 @@ class CsvDB: """ get_type = lambda item: str(type(item)).split("'")[1] if not os.path.exists(os.path.join(self.db_path, obj._TABLE)): - with gzip.open(os.path.join(self.db_path, obj._TABLE), "wb") as table_file: + with gzip.open(os.path.join(self.db_path, obj._TABLE), "wt") as table_file: csv.writer(table_file).writerow( [ "{col}:{type}".format(col=elm[0], type=get_type(elm[1])) @@ -212,7 +212,7 @@ class CsvDB: db_obj = self.get(obj.__class__, eq=fields) if db_obj and distinct: raise Exception("Object already in the database.") - with gzip.open(os.path.join(self.db_path, obj._TABLE), "a") as table: + with gzip.open(os.path.join(self.db_path, obj._TABLE), "at") as table: csv.writer(table).writerow(self._validate_object(obj)) def update(self, obj, matches=None, mt=None, lt=None, eq=None): @@ -318,7 +318,7 @@ class CsvDB: :return: """ objects = [] - with gzip.open(os.path.join(self.db_path, obj._TABLE), "rb") as table: + with gzip.open(os.path.join(self.db_path, obj._TABLE), "rt") as table: header = None for data in csv.reader(table): if not header: diff --git a/salt/modules/inspectlib/query.py b/salt/modules/inspectlib/query.py index 079cc29172..8027176a13 100644 --- a/salt/modules/inspectlib/query.py +++ b/salt/modules/inspectlib/query.py @@ -74,7 +74,7 @@ class SysInfo: for dev, dev_data in salt.utils.fsutils._blkid().items(): dev = self._get_disk_size(dev) device = dev.pop("device") - dev["type"] = dev_data["type"] + dev["type"] = dev_data.get("type", "UNKNOWN") data[device] = dev return data -- 2.34.1 ++++++ wipe-notify_socket-from-env-in-cmdmod-bsc-1193357-30.patch ++++++ >From 4da285c7b898645f8ffd0d0797df60ba107747e3 Mon Sep 17 00:00:00 2001 From: Victor Zhestkov <vzhest...@suse.com> Date: Fri, 28 Jan 2022 16:40:09 +0300 Subject: [PATCH] Wipe NOTIFY_SOCKET from env in cmdmod (bsc#1193357) - 3004 (#473) * Remove NOTIFY_SOCKET env variable from cmd.run calls * Add test for NOTIFY_SOCKET env variable wiping --- salt/modules/cmdmod.py | 3 ++ tests/pytests/unit/modules/test_cmdmod.py | 41 +++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/salt/modules/cmdmod.py b/salt/modules/cmdmod.py index 70889da07c..61b328b13b 100644 --- a/salt/modules/cmdmod.py +++ b/salt/modules/cmdmod.py @@ -612,6 +612,9 @@ def _run( if prepend_path: run_env["PATH"] = ":".join((prepend_path, run_env["PATH"])) + if "NOTIFY_SOCKET" not in env: + run_env.pop("NOTIFY_SOCKET", None) + if python_shell is None: python_shell = False diff --git a/tests/pytests/unit/modules/test_cmdmod.py b/tests/pytests/unit/modules/test_cmdmod.py index bc1d2818aa..691b89271e 100644 --- a/tests/pytests/unit/modules/test_cmdmod.py +++ b/tests/pytests/unit/modules/test_cmdmod.py @@ -368,6 +368,47 @@ def test_os_environment_remains_intact(): getpwnam_mock.assert_called_with("foobar") +@pytest.mark.skip_on_windows +def test_os_environment_do_not_pass_notify_socket(): + """ + Make sure NOTIFY_SOCKET environment variable is not passed + to the command if not explicitly set with env parameter. + """ + with patch("pwd.getpwnam") as getpwnam_mock: + new_env = os.environ.copy() + new_env.update({"NOTIFY_SOCKET": "/run/systemd/notify"}) + with patch("subprocess.Popen") as popen_mock, patch( + "os.environ.copy", return_value=new_env + ): + popen_mock.return_value = Mock( + communicate=lambda *args, **kwags: [b"", None], + pid=lambda: 1, + retcode=0, + ) + + with patch.dict(cmdmod.__grains__, {"os": "SUSE", "os_family": "Suse"}): + if sys.platform.startswith(("freebsd", "openbsd")): + shell = "/bin/sh" + else: + shell = "/bin/bash" + + cmdmod._run("ls", cwd=tempfile.gettempdir(), shell=shell) + + assert "NOTIFY_SOCKET" not in popen_mock.call_args_list[0][1]["env"] + + cmdmod._run( + "ls", + cwd=tempfile.gettempdir(), + shell=shell, + env={"NOTIFY_SOCKET": "/run/systemd/notify.new"}, + ) + + assert ( + popen_mock.call_args_list[1][1]["env"]["NOTIFY_SOCKET"] + == "/run/systemd/notify.new" + ) + + @pytest.mark.skip_unless_on_darwin def test_shell_properly_handled_on_macOS(): """ -- 2.34.1