mirror of
https://github.com/saltstack/salt.git
synced 2025-04-16 17:50:20 +00:00
Merge branch '2019.2.1' into 52717_debian_tests_segmentation_fault
This commit is contained in:
commit
f8d816e4b0
3 changed files with 9 additions and 9 deletions
|
@ -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))
|
||||
|
|
|
@ -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,
|
||||
)
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Add table
Reference in a new issue