Merge branch '2019.2.1' into 52717_debian_tests_segmentation_fault

This commit is contained in:
Gareth J. Greenaway 2019-05-02 08:24:22 -07:00 committed by GitHub
commit f8d816e4b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 9 deletions

View file

@ -295,7 +295,7 @@ def _decrypt_ciphertext(cipher):
return decrypted_data
def _decrypt_ciphertexts(cipher, translate_newlines=False):
def _decrypt_ciphertexts(cipher, translate_newlines=False, encoding=None):
to_bytes = salt.utils.stringutils.to_bytes
cipher = to_bytes(cipher)
if translate_newlines:
@ -314,14 +314,14 @@ def _decrypt_ciphertexts(cipher, translate_newlines=False):
ret = cipher
try:
ret = salt.utils.stringutils.to_unicode(ret)
ret = salt.utils.stringutils.to_unicode(ret, encoding=encoding)
except UnicodeDecodeError:
# decrypted data contains some sort of binary data - not our problem
pass
return ret
def _decrypt_object(obj, translate_newlines=False):
def _decrypt_object(obj, translate_newlines=False, encoding=None):
'''
Recursively try to decrypt any object. If the object is a six.string_types
(string or unicode), and it contains a valid GPG header, decrypt it,
@ -330,7 +330,7 @@ def _decrypt_object(obj, translate_newlines=False):
if salt.utils.stringio.is_readable(obj):
return _decrypt_object(obj.getvalue(), translate_newlines)
if isinstance(obj, six.string_types):
return _decrypt_ciphertexts(obj, translate_newlines=translate_newlines)
return _decrypt_ciphertexts(obj, translate_newlines=translate_newlines, encoding=encoding)
elif isinstance(obj, dict):
for key, value in six.iteritems(obj):
obj[key] = _decrypt_object(value,
@ -355,4 +355,4 @@ def render(gpg_data, saltenv='base', sls='', argline='', **kwargs):
log.debug('Reading GPG keys from: %s', _get_key_dir())
translate_newlines = kwargs.get('translate_newlines', False)
return _decrypt_object(gpg_data, translate_newlines=translate_newlines)
return _decrypt_object(gpg_data, translate_newlines=translate_newlines, encoding=kwargs.get('encoding', None))

View file

@ -143,7 +143,7 @@ class GPGTestCase(TestCase, LoaderModuleMockMixin):
with patch('salt.renderers.gpg._get_gpg_exec', MagicMock(return_value=True)):
with patch('salt.renderers.gpg._get_key_dir', MagicMock(return_value=key_dir)):
with patch('salt.renderers.gpg._decrypt_ciphertext', MagicMock(return_value=secret)):
self.assertEqual(gpg.render(crypted), expected)
self.assertEqual(gpg.render(crypted, encoding='utf-8'), expected)
def test_render_with_translate_newlines_should_translate_newlines(self):
key_dir = '/etc/salt/gpgkeys'
@ -165,6 +165,6 @@ class GPGTestCase(TestCase, LoaderModuleMockMixin):
with patch('salt.renderers.gpg._get_key_dir', MagicMock(return_value=key_dir)):
with patch('salt.renderers.gpg._decrypt_ciphertext', MagicMock(return_value=secret)):
self.assertEqual(
gpg.render(crypted, translate_newlines=True),
gpg.render(crypted, translate_newlines=True, encoding='utf-8'),
expected,
)

View file

@ -229,7 +229,7 @@ deployment1_ret = dict(createdDate=datetime.datetime(2015, 11, 17, 16, 33, 50),
description=('{\n'
' "api_name": "unit test api",\n'
' "swagger_file": "temp-swagger-sample.yaml",\n'
' "swagger_file_md5sum": "693c57997a12a2446bb5c08c793d943c",\n'
' "swagger_file_md5sum": "55a948ff90ad80ff747ec91657c7a299",\n'
' "swagger_info_object": {\n'
' "description": "salt boto apigateway unit test service",\n'
' "title": "salt boto apigateway unit test service",\n'
@ -371,7 +371,7 @@ class TempSwaggerFile(object):
def __enter__(self):
self.swaggerfile = 'temp-swagger-sample.yaml'
with salt.utils.files.fopen(self.swaggerfile, 'w') as fp_:
salt.utils.yaml.safe_dump(self.swaggerdict, fp_)
salt.utils.yaml.safe_dump(self.swaggerdict, fp_, default_flow_style=False)
return self.swaggerfile
def __exit__(self, objtype, value, traceback):