218a0bb719
- Several fixes for tests to avoid errors and failures in some OSes - Speed up salt.matcher.confirm_top by using __context__ - Do not call the async wrapper calls with the separate thread - Prevent OOM with high amount of batch async calls (bsc#1216063) - Add missing contextvars dependency in salt.version - Skip tests for unsupported algorithm on old OpenSSL version - Remove redundant `_file_find` call to the master - Prevent possible exception in tornado.concurrent.Future._set_done - Make reactor engine less blocking the EventPublisher - Make salt-master self recoverable on killing EventPublisher - Improve broken events catching and reporting - Make logging calls lighter - Remove unused import causing delays on starting salt-master - Added: * improve-broken-events-catching-and-reporting.patch * add-missing-contextvars-dependency-in-salt.version.patch * prevent-oom-with-high-amount-of-batch-async-calls-bs.patch * speed-up-salt.matcher.confirm_top-by-using-__context.patch * remove-redundant-_file_find-call-to-the-master.patch * make-logging-calls-lighter.patch * make-salt-master-self-recoverable-on-killing-eventpu.patch * skip-tests-for-unsupported-algorithm-on-old-openssl-.patch * remove-unused-import-causing-delays-on-starting-salt.patch * do-not-call-the-async-wrapper-calls-with-the-separat.patch * prevent-possible-exception-in-tornado.concurrent.fut.patch * several-fixes-for-tests-to-avoid-errors-and-failures.patch * make-reactor-engine-less-blocking-the-eventpublisher.patch OBS-URL: https://build.opensuse.org/request/show/1177104 OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:saltstack/salt?expand=0&rev=243
65 lines
2.3 KiB
Diff
65 lines
2.3 KiB
Diff
From a7e578b96d0e7ad8fdf4e5d62416ba6961b82315 Mon Sep 17 00:00:00 2001
|
|
From: Victor Zhestkov <vzhestkov@suse.com>
|
|
Date: Wed, 15 May 2024 11:50:52 +0200
|
|
Subject: [PATCH] Speed up salt.matcher.confirm_top by using
|
|
__context__
|
|
|
|
* Speed up salt.matcher.confirm_top by using __context__
|
|
|
|
* Add test for getting matchers from __context__ in matchers.confirm_top
|
|
---
|
|
salt/matchers/confirm_top.py | 6 +++++-
|
|
tests/pytests/unit/matchers/test_confirm_top.py | 15 +++++++++++++++
|
|
2 files changed, 20 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/salt/matchers/confirm_top.py b/salt/matchers/confirm_top.py
|
|
index 7435f4ae94..d2edc99d8f 100644
|
|
--- a/salt/matchers/confirm_top.py
|
|
+++ b/salt/matchers/confirm_top.py
|
|
@@ -21,7 +21,11 @@ def confirm_top(match, data, nodegroups=None):
|
|
if "match" in item:
|
|
matcher = item["match"]
|
|
|
|
- matchers = salt.loader.matchers(__opts__)
|
|
+ if "matchers" in __context__:
|
|
+ matchers = __context__["matchers"]
|
|
+ else:
|
|
+ matchers = salt.loader.matchers(__opts__)
|
|
+ __context__["matchers"] = matchers
|
|
funcname = matcher + "_match.match"
|
|
if matcher == "nodegroup":
|
|
return matchers[funcname](match, nodegroups)
|
|
diff --git a/tests/pytests/unit/matchers/test_confirm_top.py b/tests/pytests/unit/matchers/test_confirm_top.py
|
|
index 514df323b6..f439fcf94a 100644
|
|
--- a/tests/pytests/unit/matchers/test_confirm_top.py
|
|
+++ b/tests/pytests/unit/matchers/test_confirm_top.py
|
|
@@ -2,6 +2,7 @@ import pytest
|
|
|
|
import salt.config
|
|
import salt.loader
|
|
+from tests.support.mock import patch
|
|
|
|
|
|
@pytest.fixture
|
|
@@ -12,3 +13,17 @@ def matchers(minion_opts):
|
|
def test_sanity(matchers):
|
|
match = matchers["confirm_top.confirm_top"]
|
|
assert match("*", []) is True
|
|
+
|
|
+
|
|
+@pytest.mark.parametrize("in_context", [False, True])
|
|
+def test_matchers_from_context(matchers, in_context):
|
|
+ match = matchers["confirm_top.confirm_top"]
|
|
+ with patch.dict(
|
|
+ matchers.pack["__context__"], {"matchers": matchers} if in_context else {}
|
|
+ ), patch("salt.loader.matchers", return_value=matchers) as loader_matchers:
|
|
+ assert match("*", []) is True
|
|
+ assert id(matchers.pack["__context__"]["matchers"]) == id(matchers)
|
|
+ if in_context:
|
|
+ loader_matchers.assert_not_called()
|
|
+ else:
|
|
+ loader_matchers.assert_called_once()
|
|
--
|
|
2.45.0
|
|
|