File handle-master-tops-data-when-states-are-applied-by-t.patch of Package salt
From e0b7511e30da289b4100aa156b67b652681afc03 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
<psuarezhernandez@suse.com>
Date: Thu, 8 Jul 2021 08:57:13 +0100
Subject: [PATCH] Handle "master tops" data when states are applied by
"transactional_update" (bsc#1187787) (#398)
* Handle master tops data when states are applied by transactional_update (bsc#1187787)
* Fix unit tests for transactional_update module
---
salt/modules/transactional_update.py | 9 +++++++--
.../unit/modules/test_transactional_update.py | 20 +++++++++----------
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/salt/modules/transactional_update.py b/salt/modules/transactional_update.py
index 7bbdb697b8..9cdaddb91a 100644
--- a/salt/modules/transactional_update.py
+++ b/salt/modules/transactional_update.py
@@ -301,6 +301,11 @@ def __virtual__():
return (False, "Module transactional_update requires a transactional system")
+class TransactionalUpdateHighstate(salt.client.ssh.state.SSHHighState):
+ def _master_tops(self):
+ return self.client.master_tops()
+
+
def _global_params(self_update, snapshot=None, quiet=False):
"""Utility function to prepare common global parameters."""
params = ["--non-interactive", "--drop-if-no-change"]
@@ -1107,7 +1112,7 @@ def sls(
# Clone the options data and apply some default values. May not be
# needed, as this module just delegate
opts = salt.utils.state.get_sls_opts(__opts__, **kwargs)
- st_ = salt.client.ssh.state.SSHHighState(
+ st_ = TransactionalUpdateHighstate(
opts, pillar, __salt__, salt.fileclient.get_file_client(__opts__)
)
@@ -1180,7 +1185,7 @@ def highstate(activate_transaction=False, **kwargs):
# Clone the options data and apply some default values. May not be
# needed, as this module just delegate
opts = salt.utils.state.get_sls_opts(__opts__, **kwargs)
- st_ = salt.client.ssh.state.SSHHighState(
+ st_ = TransactionalUpdateHighstate(
opts, pillar, __salt__, salt.fileclient.get_file_client(__opts__)
)
diff --git a/tests/unit/modules/test_transactional_update.py b/tests/unit/modules/test_transactional_update.py
index 19e477d02f..2d30f296d7 100644
--- a/tests/unit/modules/test_transactional_update.py
+++ b/tests/unit/modules/test_transactional_update.py
@@ -622,22 +622,22 @@ class TransactionalUpdateTestCase(TestCase, LoaderModuleMockMixin):
utils_mock["files.rm_rf"].assert_called_once()
@patch("salt.modules.transactional_update._create_and_execute_salt_state")
- @patch("salt.client.ssh.state.SSHHighState")
+ @patch("salt.modules.transactional_update.TransactionalUpdateHighstate")
@patch("salt.fileclient.get_file_client")
@patch("salt.utils.state.get_sls_opts")
def test_sls(
self,
get_sls_opts,
get_file_client,
- SSHHighState,
+ TransactionalUpdateHighstate,
_create_and_execute_salt_state,
):
"""Test transactional_update.sls"""
- SSHHighState.return_value = SSHHighState
- SSHHighState.render_highstate.return_value = (None, [])
- SSHHighState.state.reconcile_extend.return_value = (None, [])
- SSHHighState.state.requisite_in.return_value = (None, [])
- SSHHighState.state.verify_high.return_value = []
+ TransactionalUpdateHighstate.return_value = TransactionalUpdateHighstate
+ TransactionalUpdateHighstate.render_highstate.return_value = (None, [])
+ TransactionalUpdateHighstate.state.reconcile_extend.return_value = (None, [])
+ TransactionalUpdateHighstate.state.requisite_in.return_value = (None, [])
+ TransactionalUpdateHighstate.state.verify_high.return_value = []
_create_and_execute_salt_state.return_value = "result"
opts_mock = {
@@ -649,18 +649,18 @@ class TransactionalUpdateTestCase(TestCase, LoaderModuleMockMixin):
_create_and_execute_salt_state.assert_called_once()
@patch("salt.modules.transactional_update._create_and_execute_salt_state")
- @patch("salt.client.ssh.state.SSHHighState")
+ @patch("salt.modules.transactional_update.TransactionalUpdateHighstate")
@patch("salt.fileclient.get_file_client")
@patch("salt.utils.state.get_sls_opts")
def test_highstate(
self,
get_sls_opts,
get_file_client,
- SSHHighState,
+ TransactionalUpdateHighstate,
_create_and_execute_salt_state,
):
"""Test transactional_update.highstage"""
- SSHHighState.return_value = SSHHighState
+ TransactionalUpdateHighstate.return_value = TransactionalUpdateHighstate
_create_and_execute_salt_state.return_value = "result"
opts_mock = {
--
2.32.0