File fix-issue-2068-test.patch of Package salt

From db77ad3e24daf3bc014dc3d85a49aa1bb33ae1ae Mon Sep 17 00:00:00 2001
From: Bo Maryniuk <bo@suse.de>
Date: Wed, 9 Jan 2019 16:08:19 +0100
Subject: [PATCH] Fix issue #2068 test

Skip injecting `__call__` if chunk is not dict.

This also fixes `integration/modules/test_state.py:StateModuleTest.test_exclude` that tests `include` and `exclude` state directives containing the only list of strings.

Minor update: more correct is-dict check.
---
 salt/state.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/salt/state.py b/salt/state.py
index b1bce4e0cd..cc6db7e1b2 100644
--- a/salt/state.py
+++ b/salt/state.py
@@ -12,6 +12,7 @@ The data sent to the state calls is as follows:
 """
 
 
+import collections
 import copy
 import datetime
 import fnmatch
@@ -3206,16 +3207,18 @@ class State:
         """
         for chunk in high:
             state = high[chunk]
+            if not isinstance(state, collections.Mapping):
+                continue
             for state_ref in state:
                 needs_default = True
+                if not isinstance(state[state_ref], list):
+                    continue
                 for argset in state[state_ref]:
                     if isinstance(argset, str):
                         needs_default = False
                         break
                 if needs_default:
-                    order = state[state_ref].pop(-1)
-                    state[state_ref].append("__call__")
-                    state[state_ref].append(order)
+                    state[state_ref].insert(-1, "__call__")
 
     def call_high(self, high, orchestration_jid=None):
         """
-- 
2.29.2


openSUSE Build Service is sponsored by