dede5bd1d4
OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:saltstack/salt?expand=0&rev=166
129 lines
5.4 KiB
Diff
129 lines
5.4 KiB
Diff
From b8226467e665650a0587b8fd64242faefb805e13 Mon Sep 17 00:00:00 2001
|
|
From: Steve Kowalik <steven@wedontsleep.org>
|
|
Date: Mon, 17 Feb 2020 15:34:00 +1100
|
|
Subject: [PATCH] Apply patch from upstream to support Python 3.8
|
|
|
|
Apply saltstack/salt#56031 to support Python 3.8, which removed a
|
|
deprecated module and changed some behaviour. Add a {Build,}Requires on
|
|
python-distro, since it is now required.
|
|
---
|
|
pkg/suse/salt.spec | 2 ++
|
|
salt/config/__init__.py | 4 +++-
|
|
salt/grains/core.py | 16 ++++++++--------
|
|
salt/renderers/stateconf.py | 8 ++++----
|
|
tests/unit/modules/test_virt.py | 2 +-
|
|
5 files changed, 18 insertions(+), 14 deletions(-)
|
|
|
|
diff --git a/pkg/suse/salt.spec b/pkg/suse/salt.spec
|
|
index e3e678af3b..0f6a9bc012 100644
|
|
--- a/pkg/suse/salt.spec
|
|
+++ b/pkg/suse/salt.spec
|
|
@@ -62,6 +62,7 @@ BuildRequires: python-psutil
|
|
BuildRequires: python-requests >= 1.0.0
|
|
BuildRequires: python-tornado >= 4.2.1
|
|
BuildRequires: python-yaml
|
|
+BuildRequires: python-distro
|
|
# requirements/opt.txt (not all)
|
|
# BuildRequires: python-MySQL-python
|
|
# BuildRequires: python-timelib
|
|
@@ -112,6 +113,7 @@ Requires: python-psutil
|
|
Requires: python-requests >= 1.0.0
|
|
Requires: python-tornado >= 4.2.1
|
|
Requires: python-yaml
|
|
+Requires: python-distro
|
|
%if 0%{?suse_version}
|
|
# requirements/opt.txt (not all)
|
|
Recommends: python-MySQL-python
|
|
diff --git a/salt/config/__init__.py b/salt/config/__init__.py
|
|
index 0ebe1181dd..f484d94e7e 100644
|
|
--- a/salt/config/__init__.py
|
|
+++ b/salt/config/__init__.py
|
|
@@ -3196,7 +3196,9 @@ def apply_cloud_providers_config(overrides, defaults=None):
|
|
# Merge provided extends
|
|
keep_looping = False
|
|
for alias, entries in six.iteritems(providers.copy()):
|
|
- for driver, details in six.iteritems(entries):
|
|
+ for driver in list(six.iterkeys(entries)):
|
|
+ # Don't use iteritems, because the values of the dictionary will be changed
|
|
+ details = entries[driver]
|
|
|
|
if 'extends' not in details:
|
|
# Extends resolved or non existing, continue!
|
|
diff --git a/salt/grains/core.py b/salt/grains/core.py
|
|
index f410985198..358b66fdb0 100644
|
|
--- a/salt/grains/core.py
|
|
+++ b/salt/grains/core.py
|
|
@@ -40,20 +40,20 @@ except ImportError:
|
|
__proxyenabled__ = ['*']
|
|
__FQDN__ = None
|
|
|
|
-# Extend the default list of supported distros. This will be used for the
|
|
-# /etc/DISTRO-release checking that is part of linux_distribution()
|
|
-from platform import _supported_dists
|
|
-_supported_dists += ('arch', 'mageia', 'meego', 'vmware', 'bluewhite64',
|
|
- 'slamd64', 'ovs', 'system', 'mint', 'oracle', 'void')
|
|
-
|
|
# linux_distribution deprecated in py3.7
|
|
try:
|
|
from platform import linux_distribution as _deprecated_linux_distribution
|
|
|
|
+ # Extend the default list of supported distros. This will be used for the
|
|
+ # /etc/DISTRO-release checking that is part of linux_distribution()
|
|
+ from platform import _supported_dists
|
|
+ _supported_dists += ('arch', 'mageia', 'meego', 'vmware', 'bluewhite64',
|
|
+ 'slamd64', 'ovs', 'system', 'mint', 'oracle', 'void')
|
|
+
|
|
def linux_distribution(**kwargs):
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("ignore")
|
|
- return _deprecated_linux_distribution(**kwargs)
|
|
+ return _deprecated_linux_distribution(supported_dists=_supported_dists, **kwargs)
|
|
except ImportError:
|
|
from distro import linux_distribution
|
|
|
|
@@ -1976,7 +1976,7 @@ def os_data():
|
|
)
|
|
(osname, osrelease, oscodename) = \
|
|
[x.strip('"').strip("'") for x in
|
|
- linux_distribution(supported_dists=_supported_dists)]
|
|
+ linux_distribution()]
|
|
# Try to assign these three names based on the lsb info, they tend to
|
|
# be more accurate than what python gets from /etc/DISTRO-release.
|
|
# It's worth noting that Ubuntu has patched their Python distribution
|
|
diff --git a/salt/renderers/stateconf.py b/salt/renderers/stateconf.py
|
|
index cfce9e6926..5c8a8322ed 100644
|
|
--- a/salt/renderers/stateconf.py
|
|
+++ b/salt/renderers/stateconf.py
|
|
@@ -224,10 +224,10 @@ def render(input, saltenv='base', sls='', argline='', **kws):
|
|
tmplctx = STATE_CONF.copy()
|
|
if tmplctx:
|
|
prefix = sls + '::'
|
|
- for k in six.iterkeys(tmplctx): # iterate over a copy of keys
|
|
- if k.startswith(prefix):
|
|
- tmplctx[k[len(prefix):]] = tmplctx[k]
|
|
- del tmplctx[k]
|
|
+ tmplctx = {
|
|
+ k[len(prefix):] if k.startswith(prefix) else k: v
|
|
+ for k, v in six.iteritems(tmplctx)
|
|
+ }
|
|
else:
|
|
tmplctx = {}
|
|
|
|
diff --git a/tests/unit/modules/test_virt.py b/tests/unit/modules/test_virt.py
|
|
index 94372c6d72..d762dcc479 100644
|
|
--- a/tests/unit/modules/test_virt.py
|
|
+++ b/tests/unit/modules/test_virt.py
|
|
@@ -1256,7 +1256,7 @@ class VirtTestCase(TestCase, LoaderModuleMockMixin):
|
|
<alias name='net1'/>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
|
|
</interface>
|
|
- <graphics type='spice' port='5900' autoport='yes' listen='127.0.0.1'>
|
|
+ <graphics type='spice' listen='127.0.0.1' autoport='yes'>
|
|
<listen type='address' address='127.0.0.1'/>
|
|
</graphics>
|
|
<video>
|
|
--
|
|
2.16.4
|
|
|
|
|