56c946e70f
- Prevent crash if pygit2 package requests recompilation. Add: * 0013-Prevent-crash-if-pygit2-package-is-requesting-re-com.patch - Align OS grains from older SLES with the current one (bsc#975757) Add: * 0014-align-OS-grains-from-older-SLES-with-current-one-326.patch - remove patches which produce duplicate functions: Remove: * 0004-implement-version_cmp-for-zypper.patch * 0005-pylint-changes.patch * 0006-Check-if-rpm-python-can-be-imported.patch - remove patches which add and revert the same file Remove: * 0007-Initial-Zypper-Unit-Tests-and-bugfixes.patch * 0009-Bugfix-on-SLE11-series-base-product-reported-as-addi.patch - rename patches: 0008-do-not-generate-a-date-in-a-comment-to-prevent-rebui.patch to 0004-do-not-generate-a-date-in-a-comment-to-prevent-rebui.patch 0010-Use-SHA256-hash-type-by-default.patch to 0005-Use-SHA256-hash-type-by-default.patch 0011-Update-to-2015.8.8.2.patch to 0006-Update-to-2015.8.8.2.patch 0012-Force-sort-the-RPM-output-to-ensure-latest-version-o.patch to 0007-Force-sort-the-RPM-output-to-ensure-latest-version-o.patch 0013-Cleaner-deprecation-process-with-decorators.patch to 0008-Cleaner-deprecation-process-with-decorators.patch - fix sorting by latest package Add: * 0009-fix-sorting-by-latest-version-when-called-with-an-at.patch - Prevent metadata download when getting installed products Add: * 0010-Prevent-metadata-download-when-getting-installed-pro.patch - Check if EOL is available in a particular product (bsc#975093) Add: * 0011-Check-if-EOL-is-available-in-a-particular-product-bs.patch - Bugfix: salt-key crashes if tries to generate keys to the directory w/o write access (bsc#969320) Add: * 0012-Bugfix-salt-key-crashes-if-tries-to-generate-keys-to.patch - Deprecation process using decorators and re-implementation of status.update function. Add: * 0013-Cleaner-deprecation-process-with-decorators.patch - Reverted the fake 2015.8.8.2 patch, with the right one, - this patch only contains: - https://github.com/saltstack/salt/pull/32135 - https://github.com/saltstack/salt/pull/32023 - https://github.com/saltstack/salt/pull/32117 - Ensure that in case of multi-packages installed on the system, the latest is reported by pkg.info_installed (bsc#972490) Add: * 0012-Force-sort-the-RPM-output-to-ensure-latest-version-o.patch - Update to the fake 2015.8.8.2 release upstream released a bunch of fixes on top of 2015.8.8, without creating a new tag and proper release. This commit includes all the changes between tag v2015.8.8 and commit ID 596444e2b447b7378dbcdfeb9fc9610b90057745 which introduces the fake 2015.8.8.2 release. see https://docs.saltstack.com/en/latest/topics/releases/2015.8.8.html#salt-2015-8-8-2 - Update to 2015.8.8 see https://docs.saltstack.com/en/latest/topics/releases/2015.8.8.html Patches renamed: * 0004-implement-version_cmp-for-zypper.patch * 0005-pylint-changes.patch * 0006-Check-if-rpm-python-can-be-imported.patch * 0007-Initial-Zypper-Unit-Tests-and-bugfixes.patch * 0008-do-not-generate-a-date-in-a-comment-to-prevent-rebui.patch * 0009-Bugfix-on-SLE11-series-base-product-reported-as-addi.patch * 0010-Use-SHA256-hash-type-by-default.patch Patches removed: * 0004-Fix-pkg.latest-prevent-crash-on-multiple-package-ins.patch * 0005-Fix-package-status-filtering-on-latest-version-and-i.patch * 0006-add_key-reject_key-do-not-crash-w-Permission-denied-.patch * 0007-Force-kill-websocket-s-child-processes-faster-than-d.patch * 0008-Fix-types-in-the-output-data-and-return-just-a-list-.patch * 0009-The-functions-in-the-state-module-that-return-a-retc.patch * 0010-add-handling-for-OEM-products.patch * 0011-improve-doc-for-list_pkgs.patch * 0012-implement-version_cmp-for-zypper.patch * 0013-pylint-changes.patch * 0014-Check-if-rpm-python-can-be-imported.patch * 0015-call-zypper-with-option-non-interactive-everywhere.patch * 0016-write-a-zypper-command-builder-function.patch * 0017-Fix-crash-with-scheduler-and-runners-31106.patch * 0018-unify-behavior-of-refresh.patch * 0019-add-refresh-option-to-more-functions.patch * 0020-simplify-checking-the-refresh-paramater.patch * 0021-do-not-change-kwargs-in-refresh-while-checking-a-val.patch * 0022-fix-argument-handling-for-pkg.download.patch * 0023-Initial-Zypper-Unit-Tests-and-bugfixes.patch * 0024-proper-checking-if-zypper-exit-codes-and-handling-of.patch * 0025-adapt-tests-to-new-zypper_check_result-output.patch * 0026-do-not-generate-a-date-in-a-comment-to-prevent-rebui.patch * 0027-make-suse-check-consistent-with-rh_service.patch * 0028-fix-numerical-check-of-osrelease.patch * 0029-Make-use-of-checksum-configurable-defaults-to-MD5-SH.patch * 0030-Bugfix-on-SLE11-series-base-product-reported-as-addi.patch * 0031-Only-use-LONGSIZE-in-rpm.info-if-available.-Otherwis.patch * 0032-Add-error-check-when-retcode-is-0-but-stderr-is-pres.patch * 0033-fixing-init-system-dectection-on-sles-11-refs-31617.patch * 0034-Fix-git_pillar-race-condition.patch * 0035-Fix-the-always-false-behavior-on-checking-state.patch * 0036-Use-SHA256-hash-type-by-default.patch OBS-URL: https://build.opensuse.org/request/show/391560 OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:saltstack/salt?expand=0&rev=66
169 lines
6.5 KiB
Diff
169 lines
6.5 KiB
Diff
From 00600229ac41ae618bf01e8af6e2c0183d924204 Mon Sep 17 00:00:00 2001
|
|
From: Theo Chatzimichos <tampakrap@gmail.com>
|
|
Date: Sat, 2 Apr 2016 12:29:04 +0200
|
|
Subject: [PATCH 06/12] Update to 2015.8.8.2
|
|
|
|
upstream released a bunch of fixes on top of 2015.8.8, without creating a new
|
|
tag and proper release. This commit includes:
|
|
- https://github.com/saltstack/salt/pull/32135
|
|
- https://github.com/saltstack/salt/pull/32023
|
|
- https://github.com/saltstack/salt/pull/32117
|
|
see https://docs.saltstack.com/en/latest/topics/releases/2015.8.8.html#salt-2015-8-8-2
|
|
---
|
|
salt/config.py | 63 ++++++++++++++++++++++++++++--------------------
|
|
salt/modules/win_dacl.py | 7 +++---
|
|
2 files changed, 41 insertions(+), 29 deletions(-)
|
|
|
|
diff --git a/salt/config.py b/salt/config.py
|
|
index fe1f572..929e094 100644
|
|
--- a/salt/config.py
|
|
+++ b/salt/config.py
|
|
@@ -63,7 +63,7 @@ FLO_DIR = os.path.join(
|
|
|
|
VALID_OPTS = {
|
|
# The address of the salt master. May be specified as IP address or hostname
|
|
- 'master': str,
|
|
+ 'master': (str, list),
|
|
|
|
# The TCP/UDP port of the master to connect to in order to listen to publications
|
|
'master_port': int,
|
|
@@ -541,7 +541,7 @@ VALID_OPTS = {
|
|
'file_recv': bool,
|
|
'file_recv_max_size': int,
|
|
'file_ignore_regex': list,
|
|
- 'file_ignore_glob': bool,
|
|
+ 'file_ignore_glob': list,
|
|
'fileserver_backend': list,
|
|
'fileserver_followsymlinks': bool,
|
|
'fileserver_ignoresymlinks': bool,
|
|
@@ -833,7 +833,7 @@ DEFAULT_MINION_OPTS = {
|
|
'file_recv': False,
|
|
'file_recv_max_size': 100,
|
|
'file_ignore_regex': [],
|
|
- 'file_ignore_glob': None,
|
|
+ 'file_ignore_glob': [],
|
|
'fileserver_backend': ['roots'],
|
|
'fileserver_followsymlinks': True,
|
|
'fileserver_ignoresymlinks': False,
|
|
@@ -1348,26 +1348,30 @@ def _validate_opts(opts):
|
|
Check that all of the types of values passed into the config are
|
|
of the right types
|
|
'''
|
|
+ def format_multi_opt(valid_type):
|
|
+ try:
|
|
+ num_types = len(valid_type)
|
|
+ except TypeError:
|
|
+ # Bare type name won't have a length, return the name of the type
|
|
+ # passed.
|
|
+ return valid_type.__name__
|
|
+ else:
|
|
+ if num_types == 1:
|
|
+ return valid_type.__name__
|
|
+ elif num_types > 1:
|
|
+ ret = ', '.join(x.__name__ for x in valid_type[:-1])
|
|
+ ret += ' or ' + valid_type[-1].__name__
|
|
+
|
|
errors = []
|
|
- err = ('Key {0} with value {1} has an invalid type of {2}, a {3} is '
|
|
+
|
|
+ err = ('Key \'{0}\' with value {1} has an invalid type of {2}, a {3} is '
|
|
'required for this value')
|
|
for key, val in six.iteritems(opts):
|
|
if key in VALID_OPTS:
|
|
- if isinstance(VALID_OPTS[key](), list):
|
|
- if isinstance(val, VALID_OPTS[key]):
|
|
- continue
|
|
- else:
|
|
- errors.append(
|
|
- err.format(key, val, type(val).__name__, 'list')
|
|
- )
|
|
- if isinstance(VALID_OPTS[key](), dict):
|
|
- if isinstance(val, VALID_OPTS[key]):
|
|
- continue
|
|
- else:
|
|
- errors.append(
|
|
- err.format(key, val, type(val).__name__, 'dict')
|
|
- )
|
|
- else:
|
|
+ if isinstance(val, VALID_OPTS[key]):
|
|
+ continue
|
|
+
|
|
+ if hasattr(VALID_OPTS[key], '__call__'):
|
|
try:
|
|
VALID_OPTS[key](val)
|
|
if isinstance(val, (list, dict)):
|
|
@@ -1384,14 +1388,21 @@ def _validate_opts(opts):
|
|
VALID_OPTS[key].__name__
|
|
)
|
|
)
|
|
- except ValueError:
|
|
+ except (TypeError, ValueError):
|
|
errors.append(
|
|
- err.format(key, val, type(val).__name__, VALID_OPTS[key])
|
|
- )
|
|
- except TypeError:
|
|
- errors.append(
|
|
- err.format(key, val, type(val).__name__, VALID_OPTS[key])
|
|
+ err.format(key,
|
|
+ val,
|
|
+ type(val).__name__,
|
|
+ VALID_OPTS[key].__name__)
|
|
)
|
|
+ continue
|
|
+
|
|
+ errors.append(
|
|
+ err.format(key,
|
|
+ val,
|
|
+ type(val).__name__,
|
|
+ format_multi_opt(VALID_OPTS[key].__name__))
|
|
+ )
|
|
|
|
# RAET on Windows uses 'win32file.CreateMailslot()' for IPC. Due to this,
|
|
# sock_dirs must start with '\\.\mailslot\' and not contain any colons.
|
|
@@ -1404,7 +1415,7 @@ def _validate_opts(opts):
|
|
'\\\\.\\mailslot\\' + opts['sock_dir'].replace(':', ''))
|
|
|
|
for error in errors:
|
|
- log.warning(error)
|
|
+ log.debug(error)
|
|
if errors:
|
|
return False
|
|
return True
|
|
diff --git a/salt/modules/win_dacl.py b/salt/modules/win_dacl.py
|
|
index d57bb7b..d9ee27a 100644
|
|
--- a/salt/modules/win_dacl.py
|
|
+++ b/salt/modules/win_dacl.py
|
|
@@ -44,9 +44,10 @@ class daclConstants(object):
|
|
# in ntsecuritycon has the extra bits 0x200 enabled.
|
|
# Note that you when you set this permission what you'll generally get back is it
|
|
# ORed with 0x200 (SI_NO_ACL_PROTECT), which is what ntsecuritycon incorrectly defines.
|
|
- FILE_ALL_ACCESS = (ntsecuritycon.STANDARD_RIGHTS_REQUIRED | ntsecuritycon.SYNCHRONIZE | 0x1ff)
|
|
|
|
def __init__(self):
|
|
+ self.FILE_ALL_ACCESS = (ntsecuritycon.STANDARD_RIGHTS_REQUIRED | ntsecuritycon.SYNCHRONIZE | 0x1ff)
|
|
+
|
|
self.hkeys_security = {
|
|
'HKEY_LOCAL_MACHINE': 'MACHINE',
|
|
'HKEY_USERS': 'USERS',
|
|
@@ -88,7 +89,7 @@ class daclConstants(object):
|
|
ntsecuritycon.DELETE,
|
|
'TEXT': 'modify'},
|
|
'FULLCONTROL': {
|
|
- 'BITS': daclConstants.FILE_ALL_ACCESS,
|
|
+ 'BITS': self.FILE_ALL_ACCESS,
|
|
'TEXT': 'full control'}
|
|
}
|
|
}
|
|
@@ -368,7 +369,7 @@ def add_ace(path, objectType, user, permission, acetype, propagation):
|
|
path: path to the object (i.e. c:\\temp\\file, HKEY_LOCAL_MACHINE\\SOFTWARE\\KEY, etc)
|
|
user: user to add
|
|
permission: permissions for the user
|
|
- acetypes: either allow/deny for each user/permission (ALLOW, DENY)
|
|
+ acetype: either allow/deny for each user/permission (ALLOW, DENY)
|
|
propagation: how the ACE applies to children for Registry Keys and Directories(KEY, KEY&SUBKEYS, SUBKEYS)
|
|
|
|
CLI Example:
|
|
--
|
|
2.1.4
|
|
|