Hello community,

here is the log from the commit of package salt for openSUSE:Factory checked in 
at 2018-04-16 12:48:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/salt (Old)
 and      /work/SRC/openSUSE:Factory/.salt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "salt"

Mon Apr 16 12:48:07 2018 rev:74 rq:595744 version:2018.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/salt/salt.changes        2018-03-19 
23:39:41.810499256 +0100
+++ /work/SRC/openSUSE:Factory/.salt.new/salt.changes   2018-04-16 
12:48:11.246861936 +0200
@@ -1,0 +2,129 @@
+Fri Apr 6 16:58:59 UTC 2018 - Mihai Dinca <mdi...@suse.de>
+                                                                               
     
+- Update to 2018.3.0
+
+
+- Modified:
+  * explore-module.run-response-to-catch-the-result-in-d.patch
+  * add-saltssh-multi-version-support-across-python-inte.patch
+  * run-salt-api-as-user-salt-bsc-1064520.patch
+  * fix-openscap-push.patch
+  * fix-decrease-loglevel-when-unable-to-resolve-addr.patch
+  * fix-cp.push-empty-file.patch
+  * make-it-possible-to-use-login-pull-and-push-from-mod.patch
+  * avoid-excessive-syslogging-by-watchdog-cronjob-58.patch
+  * feat-add-grain-for-all-fqdns.patch
+  * fix-bsc-1065792.patch
+  * run-salt-master-as-dedicated-salt-user.patch
+  * move-log_file-option-to-changeable-defaults.patch
+  * activate-all-beacons-sources-config-pillar-grains.patch
+  * remove-obsolete-unicode-handling-in-pkg.info_install.patch
+
+-------------------------------------------------------------------
+Thu Apr 5 15:58:22 UTC 2018 - Mihai Dinca <mdi...@suse.de>
+                                                                               
     
+- Add python-2.6 support to salt-ssh
+
+- Modified:
+  * add-saltssh-multi-version-support-across-python-inte.patch
+
+-------------------------------------------------------------------
+Wed Apr 4 16:32:10 UTC 2018 - Mihai Dinca <mdi...@suse.de>
+                                                                               
     
+- Update salt-ssh multiversion patch
+
+- Modified:
+  * add-saltssh-multi-version-support-across-python-inte.patch
+
+- Removed:
+  * require-same-major-version-while-minor-is-allowed-to.patch
+
+-------------------------------------------------------------------
+Wed Mar 28 12:18:08 UTC 2018 - Mihai Dinca <mdi...@suse.de>
+                                                                               
     
+- Add iprout/net-tools dependency
+
+
+-------------------------------------------------------------------
+Wed Mar 28 11:57:30 UTC 2018 - Michael Calmer <m...@suse.de>
+
+- salt-ssh: require same major version while minor is allowed to be
+
+- Added:
+  * require-same-major-version-while-minor-is-allowed-to.patch
+
+- Modified:
+  * explore-module.run-response-to-catch-the-result-in-d.patch
+  * add-saltssh-multi-version-support-across-python-inte.patch
+  * run-salt-api-as-user-salt-bsc-1064520.patch
+  * fix-openscap-push.patch
+  * fix-decrease-loglevel-when-unable-to-resolve-addr.patch
+  * fix-cp.push-empty-file.patch
+  * make-it-possible-to-use-login-pull-and-push-from-mod.patch
+  * avoid-excessive-syslogging-by-watchdog-cronjob-58.patch
+  * feat-add-grain-for-all-fqdns.patch
+  * fix-bsc-1065792.patch
+  * run-salt-master-as-dedicated-salt-user.patch
+  * move-log_file-option-to-changeable-defaults.patch
+  * activate-all-beacons-sources-config-pillar-grains.patch
+  * remove-obsolete-unicode-handling-in-pkg.info_install.patch
+
+-------------------------------------------------------------------
+Tue Mar 27 16:29:08 UTC 2018 - Mihai Dinca <mdi...@suse.de>
+                                                                               
     
+- Add SaltSSH multi-version support across Python interpeters.
+
+- Added:
+  * add-saltssh-multi-version-support-across-python-inte.patch
+
+-------------------------------------------------------------------
+Fri Mar 23 18:12:09 UTC 2018 - Mihai Dinca <mdi...@suse.de>
+                                                                               
     
+- Fix zypper.info_installed 'ascii' issue
+
+- Modified:
+  * explore-module.run-response-to-catch-the-result-in-d.patch
+  * fix-openscap-push.patch
+  * fix-decrease-loglevel-when-unable-to-resolve-addr.patch
+  * fix-cp.push-empty-file.patch
+  * make-it-possible-to-use-login-pull-and-push-from-mod.patch
+  * move-log_file-option-to-changeable-defaults.patch
+  * remove-obsolete-unicode-handling-in-pkg.info_install.patch
+
+-------------------------------------------------------------------
+Fri Mar 23 16:19:42 UTC 2018 - Mihai Dinca <mdi...@suse.de>
+                                                                               
     
+- Update openscap push patch to include the test fixes
+
+- Modified:
+  * explore-module.run-response-to-catch-the-result-in-d.patch
+  * fix-openscap-push.patch
+  * fix-decrease-loglevel-when-unable-to-resolve-addr.patch
+  * fix-cp.push-empty-file.patch
+  * make-it-possible-to-use-login-pull-and-push-from-mod.patch
+  * move-log_file-option-to-changeable-defaults.patch
+
+-------------------------------------------------------------------
+Thu Mar 22 14:40:50 UTC 2018 - Pablo Suárez Hernández 
<psuarezhernan...@suse.com>
+                                                                               
     
+- Explore 'module.run' state module output in depth to catch "result" properly
+
+- Added:
+  * explore-module.run-response-to-catch-the-result-in-d.patch
+
+-------------------------------------------------------------------
+Thu Mar 22 09:10:33 UTC 2018 - Michael Calmer <m...@suse.de>
+
+- make it possible to use docker login, pull and push from module.run and 
detect errors
+- Added:
+  * make-it-possible-to-use-login-pull-and-push-from-mod.patch
+
+-------------------------------------------------------------------
+Tue Mar 20 19:15:38 UTC 2018 - michele.bolo...@suse.com
+
+- Fix logging with FQDNs
+
+- Added:
+  * fix-decrease-loglevel-when-unable-to-resolve-addr.patch 
+
+-------------------------------------------------------------------

Old:
----
  2018.3.0rc1.tar.gz

New:
----
  add-saltssh-multi-version-support-across-python-inte.patch
  explore-module.run-response-to-catch-the-result-in-d.patch
  fix-decrease-loglevel-when-unable-to-resolve-addr.patch
  make-it-possible-to-use-login-pull-and-push-from-mod.patch
  v2018.3.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ salt.spec ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.398383512 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.398383512 +0200
@@ -52,14 +52,13 @@
 %bcond_with    builddocs
 
 Name:           salt
-Version:        2018.1.99
+Version:        2018.3.0
 Release:        0
 Summary:        A parallel remote execution system
 License:        Apache-2.0
 Group:          System/Management
 Url:            http://saltstack.org/
-# Source:         https://github.com/saltstack/salt/archive/v%{version}.tar.gz
-Source:         https://github.com/saltstack/salt/archive/2018.3.0rc1.tar.gz
+Source:         https://github.com/saltstack/salt/archive/v%{version}.tar.gz
 Source1:        README.SUSE
 Source2:        salt-tmpfiles.d
 Source3:        html.tar.bz2
@@ -79,9 +78,17 @@
 Patch9:        move-log_file-option-to-changeable-defaults.patch
 # PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/46416
 Patch10:       fix-cp.push-empty-file.patch
+# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/46575
+Patch11:       fix-decrease-loglevel-when-unable-to-resolve-addr.patch
+# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/46643
+Patch12:       make-it-possible-to-use-login-pull-and-push-from-mod.patch
+# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/46413
+Patch13:       explore-module.run-response-to-catch-the-result-in-d.patch
+# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/46684
+Patch14:       add-saltssh-multi-version-support-across-python-inte.patch
 
 # BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-BuildRoot:      %{_tmppath}/%{name}-2018.3.0rc1-build
+BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  logrotate
 %if 0%{?suse_version} > 1020
 BuildRequires:  fdupes
@@ -106,6 +113,16 @@
 Requires:       logrotate
 Requires:       procps
 
+%if 0%{?suse_version} >= 1500
+Requires:      iproute2
+%else
+Requires:      net-tools
+%endif
+
+%if 0%{?rhel}
+Requires:      iproute
+%endif
+
 %if %{with systemd}
 BuildRequires:  systemd
 %{?systemd_requires}
@@ -524,7 +541,7 @@
 
 %prep
 # %setup -q -n salt-%{version}
-%setup -q -n salt-2018.3.0rc1
+%setup -q -n salt-%{version}
 cp %{S:1} .
 cp %{S:5} ./.travis.yml
 %patch1 -p1
@@ -537,6 +554,10 @@
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
 
 %build
 %if 0%{?build_py2}

++++++ _lastrevision ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.442381911 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.442381911 +0200
@@ -1 +1 @@
-HEAD
+f43b8fb2425e3371decf3cde040c70ed15de375d
\ No newline at end of file

++++++ _service ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.470380893 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.470380893 +0200
@@ -12,8 +12,8 @@
   </service>
   <service name="download_url" mode="disabled">
     <param name="host">codeload.github.com</param>
-    <param name="path">saltstack/salt/tar.gz/2018.3.0rc1</param>
-    <param name="filename">2018.3.0rc1.tar.gz</param>
+    <param name="path">saltstack/salt/tar.gz/v2018.3.0</param>
+    <param name="filename">v2018.3.0.tar.gz</param>
   </service>
   <service name="update_changelog" mode="disabled"></service>
 </services>

++++++ activate-all-beacons-sources-config-pillar-grains.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.478380602 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.482380456 +0200
@@ -1,4 +1,4 @@
-From 8550c9cc51d227d4c32c844c7fe0526ae58f4874 Mon Sep 17 00:00:00 2001
+From 957ac8fe161db2c4b3b8fe8b84027bc15e144a49 Mon Sep 17 00:00:00 2001
 From: Bo Maryniuk <b...@suse.de>
 Date: Tue, 17 Oct 2017 16:52:33 +0200
 Subject: [PATCH] Activate all beacons sources: config/pillar/grains

++++++ add-saltssh-multi-version-support-across-python-inte.patch ++++++
++++ 1951 lines (skipped)

++++++ avoid-excessive-syslogging-by-watchdog-cronjob-58.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.498379874 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.502379729 +0200
@@ -1,4 +1,4 @@
-From 5dfc5ebd799d5c9a4588d9e1a27b813b8c35ce25 Mon Sep 17 00:00:00 2001
+From edb1c95fa06b8bb1d7e6d91beaaddec6d22c966b Mon Sep 17 00:00:00 2001
 From: Hubert Mantel <man...@suse.de>
 Date: Mon, 27 Nov 2017 13:55:13 +0100
 Subject: [PATCH] avoid excessive syslogging by watchdog cronjob (#58)

++++++ explore-module.run-response-to-catch-the-result-in-d.patch ++++++
>From 8c6b77bfd913b3b47d3d4206ec0a9e08754b6f93 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
 <psuarezhernan...@suse.com>
Date: Wed, 7 Mar 2018 09:42:46 +0000
Subject: [PATCH] Explore 'module.run' response to catch the 'result' in
 depth

Fix Python3 and pylint issue

Rename and fix recursive method

Add new unit test to check state.apply within module.run
---
 salt/states/module.py            | 18 ++++++++++++
 tests/unit/states/test_module.py | 62 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+)

diff --git a/salt/states/module.py b/salt/states/module.py
index fda8bdf17a..2190ffa3d2 100644
--- a/salt/states/module.py
+++ b/salt/states/module.py
@@ -531,7 +531,25 @@ def _get_result(func_ret, changes):
                 res = changes_ret.get('result', {})
             elif changes_ret.get('retcode', 0) != 0:
                 res = False
+            # Explore dict in depth to determine if there is a
+            # 'result' key set to False which sets the global
+            # state result.
+            else:
+                res = _get_dict_result(changes_ret)
 
     return res
 
+
+def _get_dict_result(node):
+    ret = True
+    for key, val in six.iteritems(node):
+        if key == 'result' and val is False:
+            ret = False
+            break
+        elif isinstance(val, dict):
+            ret = _get_dict_result(val)
+            if ret is False:
+                break
+    return ret
+
 mod_watch = salt.utils.functools.alias_function(run, 'mod_watch')
diff --git a/tests/unit/states/test_module.py b/tests/unit/states/test_module.py
index 12ad54f979..bf4ddcc5b4 100644
--- a/tests/unit/states/test_module.py
+++ b/tests/unit/states/test_module.py
@@ -25,6 +25,57 @@ log = logging.getLogger(__name__)
 
 CMD = 'foo.bar'
 
+STATE_APPLY_RET = {
+    'module_|-test2_|-state.apply_|-run': {
+        'comment': 'Module function state.apply executed',
+        'name': 'state.apply',
+        'start_time': '16:11:48.818932',
+        'result': False,
+        'duration': 179.439,
+        '__run_num__': 0,
+        'changes': {
+            'ret': {
+                'module_|-test3_|-state.apply_|-run': {
+                    'comment': 'Module function state.apply executed',
+                    'name': 'state.apply',
+                    'start_time': '16:11:48.904796',
+                    'result': True,
+                    'duration': 89.522,
+                    '__run_num__': 0,
+                    'changes': {
+                        'ret': {
+                            'module_|-test4_|-cmd.run_|-run': {
+                                'comment': 'Module function cmd.run executed',
+                                'name': 'cmd.run',
+                                'start_time': '16:11:48.988574',
+                                'result': True,
+                                'duration': 4.543,
+                                '__run_num__': 0,
+                                'changes': {
+                                    'ret': 'Wed Mar  7 16:11:48 CET 2018'
+                                },
+                                '__id__': 'test4'
+                            }
+                        }
+                    },
+                    '__id__': 'test3'
+                },
+                'module_|-test3_fail_|-test3_fail_|-run': {
+                    'comment': 'Module function test3_fail is not available',
+                    'name': 'test3_fail',
+                    'start_time': '16:11:48.994607',
+                    'result': False,
+                    'duration': 0.466,
+                    '__run_num__': 1,
+                    'changes': {},
+                    '__id__': 'test3_fail'
+                }
+            }
+        },
+        '__id__': 'test2'
+    }
+}
+
 
 def _mocked_func_named(name, names=('Fred', 'Swen',)):
     '''
@@ -140,6 +191,17 @@ class ModuleStateTest(TestCase, LoaderModuleMockMixin):
                 if ret['comment'] != '{0}: Success'.format(CMD) or not 
ret['result']:
                     self.fail('module.run failed: {0}'.format(ret))
 
+    def test_run_state_apply_result_false(self):
+        '''
+        Tests the 'result' of module.run that calls state.apply execution 
module
+        :return:
+        '''
+        with patch.dict(module.__salt__, {"state.apply": 
MagicMock(return_value=STATE_APPLY_RET)}):
+            with patch.dict(module.__opts__, {'use_deprecated': 
['module.run']}):
+                ret = module.run(**{"name": "state.apply", 'mods': 'test2'})
+                if ret['result']:
+                    self.fail('module.run did not report false result: 
{0}'.format(ret))
+
     def test_run_unexpected_keywords(self):
         with patch.dict(module.__salt__, {CMD: _mocked_func_args}):
             with patch.dict(module.__opts__, {'use_superseded': 
['module.run']}):
-- 
2.16.2


++++++ feat-add-grain-for-all-fqdns.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.522379002 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.522379002 +0200
@@ -1,4 +1,4 @@
-From 067b63ccbc6942a0399eb43d7fdf314b5c9b417f Mon Sep 17 00:00:00 2001
+From 0449bead92ff763d186f5e524556f82c618d652c Mon Sep 17 00:00:00 2001
 From: Michele Bologna <michele.bolo...@suse.com>
 Date: Thu, 14 Dec 2017 18:20:02 +0100
 Subject: [PATCH] Feat: add grain for all FQDNs
@@ -21,10 +21,10 @@
  3 files changed, 29 insertions(+)
 
 diff --git a/salt/grains/core.py b/salt/grains/core.py
-index 9352987abd..f8e36a895e 100644
+index b7d446676e..96b7ce2cf2 100644
 --- a/salt/grains/core.py
 +++ b/salt/grains/core.py
-@@ -1890,6 +1890,33 @@ def append_domain():
+@@ -1888,6 +1888,33 @@ def append_domain():
      return grain
  
  
@@ -71,7 +71,7 @@
              'groupname',
              'host',
 diff --git a/tests/unit/grains/test_core.py b/tests/unit/grains/test_core.py
-index e781fadefe..dba8d082c5 100644
+index 50babe3ed3..47c9cdd35b 100644
 --- a/tests/unit/grains/test_core.py
 +++ b/tests/unit/grains/test_core.py
 @@ -7,6 +7,7 @@

++++++ fix-bsc-1065792.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.534378565 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.534378565 +0200
@@ -1,4 +1,4 @@
-From 1d2030c6d002ef293c7a71c77db1617fdb5a8cb0 Mon Sep 17 00:00:00 2001
+From 27d0e8b7e7c1eae68ef6dc972ea0f091d18cd92e Mon Sep 17 00:00:00 2001
 From: Bo Maryniuk <b...@suse.de>
 Date: Thu, 14 Dec 2017 16:21:40 +0100
 Subject: [PATCH] Fix bsc#1065792

++++++ fix-cp.push-empty-file.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.546378128 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.550377983 +0200
@@ -1,4 +1,4 @@
-From e91e2db15b99ef677cb112bb817275ed60a1f0e1 Mon Sep 17 00:00:00 2001
+From 74ca7c3fd6a42f95f9d702ef2847a1f76399db5f Mon Sep 17 00:00:00 2001
 From: Mihai Dinca <mdi...@suse.de>
 Date: Wed, 7 Mar 2018 13:11:16 +0100
 Subject: [PATCH] Fix cp.push empty file

++++++ fix-decrease-loglevel-when-unable-to-resolve-addr.patch ++++++
>From 14128fc65bf007bbb5b27b3eedec30b7f729bfbd Mon Sep 17 00:00:00 2001
From: Michele Bologna <michele.bolo...@suse.com>
Date: Tue, 20 Mar 2018 19:27:36 +0100
Subject: [PATCH] Fix: decrease loglevel when unable to resolve addr

Upstream PR: https://github.com/saltstack/salt/pull/46575

It occurs that when the machine has multiple interfaces without an associated 
FQDN, Salt logs are polluted by this error.
Some examples:

```
caasp-admin:~ # uptime
 09:08am  up   0:13,  2 users,  load average: 1.30, 1.37, 0.98
caasp-admin:~ # docker logs $(docker ps | grep salt-master | awk '{print $1}') 
2>&1 | grep "Exception during resolving address" | wc -l
528
```

```
caasp-admin:~ # docker exec -it $(docker ps | grep salt-master | awk '{print 
$1}') salt '*' cmd.run uptime
b24f41eb4cc94624862ca0c9e8afcd15:
     09:08am  up   0:11,  0 users,  load average: 1.26, 0.83, 0.40
admin:
     09:08am  up   0:13,  2 users,  load average: 1.33, 1.37, 0.99
ba8c76af029043a39ba917f7ab2af796:
     09:08am  up   0:12,  0 users,  load average: 0.84, 0.63, 0.32
7b7aa52158524556a0c46ae57569ce93:
     09:08am  up   0:11,  1 user,  load average: 1.05, 0.77, 0.38
5ab0e18cbd084e9088a928a17edb86cb:
     09:08am  up   0:10,  0 users,  load average: 0.12, 0.25, 0.20
1756c9cd9a9a402b91d8636400d1e512:
     09:08am  up   0:09,  0 users,  load average: 0.12, 0.23, 0.14
ca:
     09:08am  up   0:13,  0 users,  load average: 1.33, 1.37, 0.99
caasp-admin:~ # docker exec -it $(docker ps | grep salt-master | awk '{print 
$1}') salt '*' cmd.run "bash -c 'cat /var/log/salt/minion | grep \"Exception 
during resolving address\" | wc -l'"
admin:
    63
ba8c76af029043a39ba917f7ab2af796:
    47
5ab0e18cbd084e9088a928a17edb86cb:
    55
7b7aa52158524556a0c46ae57569ce93:
    59
b24f41eb4cc94624862ca0c9e8afcd15:
    47
1756c9cd9a9a402b91d8636400d1e512:
    59
ca:
    25
```

This patch changes the log level of the exception to INFO, since the 
resolve-unable problem is not blocking.
---
 salt/grains/core.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/salt/grains/core.py b/salt/grains/core.py
index 96b7ce2cf2..17a7d9819a 100644
--- a/salt/grains/core.py
+++ b/salt/grains/core.py
@@ -1909,7 +1909,7 @@ def fqdns():
             fqdns.add(socket.gethostbyaddr(ip)[0])
         except (socket.error, socket.herror,
             socket.gaierror, socket.timeout) as e:
-            log.error("Exception during resolving address: " + str(e))
+            log.info("Exception during resolving address: " + str(e))
 
     grains['fqdns'] = list(fqdns)
     return grains
-- 
2.16.2


++++++ fix-openscap-push.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.562377546 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.566377401 +0200
@@ -1,11 +1,12 @@
-From 7259333c3652d5208258632532a9151648c9cb4d Mon Sep 17 00:00:00 2001
+From 589d90117783a126dce695cf76a3b8fc2953f8b6 Mon Sep 17 00:00:00 2001
 From: Mihai Dinca <mdi...@suse.de>
 Date: Fri, 2 Mar 2018 17:17:58 +0100
 Subject: [PATCH] Fix openscap push
 
 ---
- salt/modules/openscap.py | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
+ salt/modules/openscap.py            |  4 +---
+ tests/unit/modules/test_openscap.py | 10 +++++-----
+ 2 files changed, 6 insertions(+), 8 deletions(-)
 
 diff --git a/salt/modules/openscap.py b/salt/modules/openscap.py
 index c5b51a1846..e3190e1e11 100644
@@ -29,6 +30,42 @@
              shutil.rmtree(tempdir, ignore_errors=True)
              upload_dir = tempdir
  
+diff --git a/tests/unit/modules/test_openscap.py 
b/tests/unit/modules/test_openscap.py
+index eb8ad1225b..6e17148de1 100644
+--- a/tests/unit/modules/test_openscap.py
++++ b/tests/unit/modules/test_openscap.py
+@@ -28,8 +28,10 @@ class OpenscapTestCase(TestCase):
+     policy_file = '/usr/share/openscap/policy-file-xccdf.xml'
+ 
+     def setUp(self):
++        import salt.modules.openscap
++        salt.modules.openscap.__salt__ = MagicMock()
+         patchers = [
+-            patch('salt.modules.openscap.Caller', MagicMock()),
++            patch('salt.modules.openscap.__salt__', MagicMock()),
+             patch('salt.modules.openscap.shutil.rmtree', Mock()),
+             patch(
+                 'salt.modules.openscap.tempfile.mkdtemp',
+@@ -68,8 +70,7 @@ class OpenscapTestCase(TestCase):
+                 cwd=openscap.tempfile.mkdtemp.return_value,
+                 stderr=PIPE,
+                 stdout=PIPE)
+-            openscap.Caller().cmd.assert_called_once_with(
+-                'cp.push_dir', self.random_temp_dir)
++            
openscap.__salt__['cp.push_dir'].assert_called_once_with(self.random_temp_dir)
+             self.assertEqual(openscap.shutil.rmtree.call_count, 1)
+             self.assertEqual(
+                 response,
+@@ -106,8 +107,7 @@ class OpenscapTestCase(TestCase):
+                 cwd=openscap.tempfile.mkdtemp.return_value,
+                 stderr=PIPE,
+                 stdout=PIPE)
+-            openscap.Caller().cmd.assert_called_once_with(
+-                'cp.push_dir', self.random_temp_dir)
++            
openscap.__salt__['cp.push_dir'].assert_called_once_with(self.random_temp_dir)
+             self.assertEqual(openscap.shutil.rmtree.call_count, 1)
+             self.assertEqual(
+                 response,
 -- 
 2.16.2
 

++++++ make-it-possible-to-use-login-pull-and-push-from-mod.patch ++++++
>From d0b7808f63a32c15249a8adbed048859dfac21a8 Mon Sep 17 00:00:00 2001
From: Michael Calmer <m...@suse.de>
Date: Thu, 22 Mar 2018 08:56:58 +0100
Subject: [PATCH] make it possible to use login, pull and push from
 module.run and detect errors

when using state.apply module.run doing docker operations retcode
is tracked to find out if the call was successful or not.

add unit test for failed login
---
 salt/modules/dockermod.py            | 14 ++++++++++----
 tests/unit/modules/test_dockermod.py | 20 ++++++++++++++++++++
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/salt/modules/dockermod.py b/salt/modules/dockermod.py
index 23cff8806b..c20b73452b 100644
--- a/salt/modules/dockermod.py
+++ b/salt/modules/dockermod.py
@@ -1354,7 +1354,7 @@ def login(*registries):
     # information is added to the config.json, since docker-py isn't designed
     # to do so.
     registry_auth = __pillar__.get('docker-registries', {})
-    ret = {}
+    ret = {'retcode': 0}
     errors = ret.setdefault('Errors', [])
     if not isinstance(registry_auth, dict):
         errors.append('\'docker-registries\' Pillar value must be a 
dictionary')
@@ -1412,6 +1412,8 @@ def login(*registries):
                     errors.append(login_cmd['stderr'])
                 elif login_cmd['stdout']:
                     errors.append(login_cmd['stdout'])
+    if errors:
+        ret['retcode'] = 1
     return ret
 
 
@@ -4490,7 +4492,7 @@ def pull(image,
 
     time_started = time.time()
     response = _client_wrapper('pull', image, **kwargs)
-    ret = {'Time_Elapsed': time.time() - time_started}
+    ret = {'Time_Elapsed': time.time() - time_started, 'retcode': 0}
     _clear_context()
 
     if not response:
@@ -4523,6 +4525,7 @@ def pull(image,
 
     if errors:
         ret['Errors'] = errors
+        ret['retcode'] = 1
     return ret
 
 
@@ -4585,7 +4588,7 @@ def push(image,
 
     time_started = time.time()
     response = _client_wrapper('push', image, **kwargs)
-    ret = {'Time_Elapsed': time.time() - time_started}
+    ret = {'Time_Elapsed': time.time() - time_started, 'retcode': 0}
     _clear_context()
 
     if not response:
@@ -4617,6 +4620,7 @@ def push(image,
 
     if errors:
         ret['Errors'] = errors
+        ret['retcode'] = 1
     return ret
 
 
@@ -4688,9 +4692,11 @@ def rmi(*names, **kwargs):
 
     _clear_context()
     ret = {'Layers': [x for x in pre_images if x not in images(all=True)],
-           'Tags': [x for x in pre_tags if x not in list_tags()]}
+           'Tags': [x for x in pre_tags if x not in list_tags()],
+           'retcode': 0}
     if errors:
         ret['Errors'] = errors
+        ret['retcode'] = 1
     return ret
 
 
diff --git a/tests/unit/modules/test_dockermod.py 
b/tests/unit/modules/test_dockermod.py
index 4e061ce369..77c4bcfb85 100644
--- a/tests/unit/modules/test_dockermod.py
+++ b/tests/unit/modules/test_dockermod.py
@@ -64,6 +64,26 @@ class DockerTestCase(TestCase, LoaderModuleMockMixin):
         '''
         docker_mod.__context__.pop('docker.client', None)
 
+    def test_failed_login(self):
+        '''
+        Check that when docker.login failed a retcode other then 0
+        is part of the return.
+        '''
+        client = Mock()
+        get_client_mock = MagicMock(return_value=client)
+        ref_out = {
+            'stdout': '',
+            'stderr': 'login failed',
+            'retcode': 1
+        }
+        with patch.dict(docker_mod.__pillar__, {'docker-registries': 
{'portus.example.com:5000':
+                {'username': 'admin', 'password': 'linux12345', 'email': 
't...@example.com'}}}):
+            with patch.object(docker_mod, '_get_client', get_client_mock):
+                with patch.dict(docker_mod.__salt__, {'cmd.run_all': 
MagicMock(return_value=ref_out)}):
+                    ret = docker_mod.login('portus.example.com:5000')
+                    self.assertTrue('retcode' in ret)
+                    self.assertTrue(ret['retcode'] > 0)
+
     def test_ps_with_host_true(self):
         '''
         Check that docker.ps called with host is ``True``,
-- 
2.16.2


++++++ move-log_file-option-to-changeable-defaults.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.590376528 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.594376382 +0200
@@ -1,4 +1,4 @@
-From 76706e2b241c932e4067487139325dc16ca08477 Mon Sep 17 00:00:00 2001
+From f77ae8d0426e551d6249b097850da0ed4ff7276d Mon Sep 17 00:00:00 2001
 From: Michael Calmer <m...@suse.de>
 Date: Sun, 11 Feb 2018 19:15:27 +0100
 Subject: [PATCH] move log_file option to changeable defaults

++++++ remove-obsolete-unicode-handling-in-pkg.info_install.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.602376091 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.602376091 +0200
@@ -1,26 +1,30 @@
-From a29071d597553184ea39f7c5783b0bd4f29fab2b Mon Sep 17 00:00:00 2001
+From dc262b912c63ed0d3152a01c9eaaa3ec3f8e0f7e Mon Sep 17 00:00:00 2001
 From: Mihai Dinca <mdi...@suse.de>
 Date: Tue, 13 Feb 2018 16:11:20 +0100
 Subject: [PATCH] Remove obsolete unicode handling in pkg.info_installed
 
 ---
- salt/modules/zypper.py | 11 +----------
- 1 file changed, 1 insertion(+), 10 deletions(-)
+ salt/modules/zypper.py | 15 +++++----------
+ 1 file changed, 5 insertions(+), 10 deletions(-)
 
 diff --git a/salt/modules/zypper.py b/salt/modules/zypper.py
-index 51d01c3fc9..659d8858f0 100644
+index 51d01c3fc9..16fc877684 100644
 --- a/salt/modules/zypper.py
 +++ b/salt/modules/zypper.py
-@@ -309,7 +309,7 @@ class _Zypper(object):
+@@ -309,7 +309,11 @@ class _Zypper(object):
          if self.error_msg and not self.__no_raise and not 
self.__ignore_repo_failure:
              raise CommandExecutionError('Zypper command failure: 
{0}'.format(self.error_msg))
  
 -        return self._is_xml_mode() and 
dom.parseString(self.__call_result['stdout']) or self.__call_result['stdout']
-+        return self._is_xml_mode() and 
dom.parseString(self.__call_result['stdout'].encode('utf-8')) or 
self.__call_result['stdout']
++        return (
++            self._is_xml_mode() and
++            
dom.parseString(salt.utils.stringutils.to_str(self.__call_result['stdout'])) or
++            self.__call_result['stdout']
++        )
  
  
  __zypper__ = _Zypper()
-@@ -482,15 +482,6 @@ def info_installed(*names, **kwargs):
+@@ -482,15 +486,6 @@ def info_installed(*names, **kwargs):
          t_nfo = dict()
          # Translate dpkg-specific keys to a common structure
          for key, value in six.iteritems(pkg_nfo):

++++++ run-salt-api-as-user-salt-bsc-1064520.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.610375800 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.614375655 +0200
@@ -1,4 +1,4 @@
-From ff376d2811248384e3a41e69404d2c66affd5279 Mon Sep 17 00:00:00 2001
+From 92f41027bc08be3e14a47bbf7f43205a60606643 Mon Sep 17 00:00:00 2001
 From: Christian Lanig <cla...@suse.com>
 Date: Mon, 27 Nov 2017 13:10:26 +0100
 Subject: [PATCH] Run salt-api as user salt (bsc#1064520)

++++++ run-salt-master-as-dedicated-salt-user.patch ++++++
--- /var/tmp/diff_new_pack.S0cGtM/_old  2018-04-16 12:48:24.626375218 +0200
+++ /var/tmp/diff_new_pack.S0cGtM/_new  2018-04-16 12:48:24.630375073 +0200
@@ -1,4 +1,4 @@
-From 1df8d3011ebe645c25be8541cbc40ac2b700dfcf Mon Sep 17 00:00:00 2001
+From 04906c9a9c1b9fdbc6854a017e92525acd167bc7 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <kkae...@suse.de>
 Date: Wed, 20 Jan 2016 11:01:06 +0100
 Subject: [PATCH] Run salt master as dedicated salt user


Reply via email to