From 6035aef0c80ae12a068bee7613c5b7f7f48aa9d3 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Mon, 18 Jan 2016 16:28:48 +0100 Subject: [PATCH 03/12] Check if byte strings are properly encoded in UTF-8 Rename keywords arguments variable to a default name. --- salt/modules/zypper.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/salt/modules/zypper.py b/salt/modules/zypper.py index fecb671..27b00d5 100644 --- a/salt/modules/zypper.py +++ b/salt/modules/zypper.py @@ -164,9 +164,9 @@ def info_installed(*names, **kwargs): summary, description. :param errors: - Handle RPM field errors (true|false). By default, various mistakes in the textual fields are simply ignored and - omitted from the data. Otherwise a field with a mistake is not returned, instead a 'N/A (bad UTF-8)' - (not available, broken) text is returned. + Handle RPM field errors. If 'ignore' is chosen, then various mistakes are simply ignored and omitted + from the texts or strings. If 'report' is chonen, then a field with a mistake is not returned, instead + a 'N/A (broken)' (not available, broken) text is placed. Valid attributes are: ignore, report @@ -179,7 +179,8 @@ def info_installed(*names, **kwargs): salt '*' pkg.info_installed ... salt '*' pkg.info_installed attr=version,vendor salt '*' pkg.info_installed ... attr=version,vendor - salt '*' pkg.info_installed ... attr=version,vendor errors=true + salt '*' pkg.info_installed ... attr=version,vendor errors=ignore + salt '*' pkg.info_installed ... attr=version,vendor errors=report ''' ret = dict() for pkg_name, pkg_nfo in __salt__['lowpkg.info'](*names, **kwargs).items(): @@ -190,7 +191,7 @@ def info_installed(*names, **kwargs): # Check, if string is encoded in a proper UTF-8 value_ = value.decode('UTF-8', 'ignore').encode('UTF-8', 'ignore') if value != value_: - value = kwargs.get('errors') and value_ or 'N/A (invalid UTF-8)' + value = kwargs.get('errors', 'ignore') == 'ignore' and value_ or 'N/A (invalid UTF-8)' log.error('Package {0} has bad UTF-8 code in {1}: {2}'.format(pkg_name, key, value)) if key == 'source_rpm': t_nfo['source'] = value -- 2.1.4