Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Apr 2016 20:11:24 +0000 (UTC)
From:      Guido Falsi <madpilot@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r412641 - in head/sysutils/py-salt: . files
Message-ID:  <201604062011.u36KBOV1069331@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: madpilot
Date: Wed Apr  6 20:11:24 2016
New Revision: 412641
URL: https://svnweb.freebsd.org/changeset/ports/412641

Log:
  Import upstream patches which remove some spurious log entries
  
  PR:		208520
  Submitted by:	Christer Edwards <christer.edwards at gmail.com>
  		(maintainer)
  Obtained from:	https://github.com/saltstack/salt/pull/32135
  		https://github.com/saltstack/salt/pull/32023
  		https://github.com/saltstack/salt/pull/32117

Added:
  head/sysutils/py-salt/files/patch-salt__config.py   (contents, props changed)
  head/sysutils/py-salt/files/patch-salt__modules__win_dacl.py   (contents, props changed)
Modified:
  head/sysutils/py-salt/Makefile

Modified: head/sysutils/py-salt/Makefile
==============================================================================
--- head/sysutils/py-salt/Makefile	Wed Apr  6 20:03:08 2016	(r412640)
+++ head/sysutils/py-salt/Makefile	Wed Apr  6 20:11:24 2016	(r412641)
@@ -3,6 +3,7 @@
 
 PORTNAME=	salt
 PORTVERSION=	2015.8.8
+PORTREVISION=	1
 CATEGORIES=	sysutils python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}

Added: head/sysutils/py-salt/files/patch-salt__config.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/py-salt/files/patch-salt__config.py	Wed Apr  6 20:11:24 2016	(r412641)
@@ -0,0 +1,116 @@
+diff --git a/salt/config.py b/salt/config.py
+index 071e06b..1f83c33 100644
+--- salt/config.py.orig
++++ salt/config.py
+@@ -63,7 +63,7 @@
+ 
+ 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 @@
+     '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 @@
+     '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
+

Added: head/sysutils/py-salt/files/patch-salt__modules__win_dacl.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/py-salt/files/patch-salt__modules__win_dacl.py	Wed Apr  6 20:11:24 2016	(r412641)
@@ -0,0 +1,34 @@
+diff --git a/salt/modules/win_dacl.py b/salt/modules/win_dacl.py
+index d57bb7b..d9ee27a 100644
+--- salt/modules/win_dacl.py
++++ 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 @@ def __init__(self):
+                     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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604062011.u36KBOV1069331>