5af0dfb7fe
OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:saltstack/salt?expand=0&rev=189
110 lines
4.7 KiB
Diff
110 lines
4.7 KiB
Diff
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
|
|
|
|
|