diff --git a/lib/ansible/module_utils/junos.py b/lib/ansible/module_utils/junos.py index f22dc7c3952..a1b7875ba77 100644 --- a/lib/ansible/module_utils/junos.py +++ b/lib/ansible/module_utils/junos.py @@ -24,6 +24,7 @@ from ansible.module_utils.basic import env_fallback, return_values from ansible.module_utils.netconf import send_request, children from ansible.module_utils.netconf import discard_changes, validate from ansible.module_utils.six import string_types +from ansible.module_utils._text import to_text ACTIONS = frozenset(['merge', 'override', 'replace', 'update', 'set']) JSON_ACTIONS = frozenset(['merge', 'override', 'update']) @@ -111,7 +112,7 @@ def load_configuration(module, candidate=None, action='merge', rollback=None, fo if format == 'xml': cfg.append(fromstring(candidate)) else: - cfg.text = candidate + cfg.text = to_text(candidate, encoding='latin1') else: cfg.append(candidate) return send_request(module, obj) @@ -163,7 +164,7 @@ def get_diff(module): reply = get_configuration(module, compare=True, format='text') output = reply.find('.//configuration-output') if output is not None: - return output.text + return to_text(output.text, encoding='latin1').strip() def load_config(module, candidate, warnings, action='merge', commit=False, format='xml', comment=None, confirm=False, confirm_timeout=None): @@ -180,7 +181,6 @@ def load_config(module, candidate, warnings, action='merge', commit=False, forma diff = get_diff(module) if diff: - diff = str(diff).strip() if commit: commit_configuration(module, confirm=confirm, comment=comment, confirm_timeout=confirm_timeout) diff --git a/lib/ansible/modules/network/junos/junos_config.py b/lib/ansible/modules/network/junos/junos_config.py index e26067f200a..673de42affa 100644 --- a/lib/ansible/modules/network/junos/junos_config.py +++ b/lib/ansible/modules/network/junos/junos_config.py @@ -195,6 +195,7 @@ from ansible.module_utils.junos import junos_argument_spec from ansible.module_utils.junos import check_args as junos_check_args from ansible.module_utils.netconf import send_request from ansible.module_utils.six import string_types +from ansible.module_utils._text import to_text, to_native if sys.version_info < (2, 7): from xml.parsers.expat import ExpatError @@ -238,7 +239,7 @@ def filter_delete_statements(module, candidate): if match is None: # Could not find configuration-set in reply, perhaps device does not support it? return candidate - config = str(match.text) + config = to_native(match.text, encoding='latin1') modified_candidate = candidate[:] for index, line in enumerate(candidate): @@ -331,7 +332,7 @@ def main(): else: module.fail_json(msg='unable to retrieve device configuration') - result['__backup__'] = str(match.text).strip() + result['__backup__'] = match.text.strip() if module.params['rollback']: if not module.check_mode: diff --git a/lib/ansible/plugins/action/junos_config.py b/lib/ansible/plugins/action/junos_config.py index d7ac8a1949e..b166f23b3ac 100644 --- a/lib/ansible/plugins/action/junos_config.py +++ b/lib/ansible/plugins/action/junos_config.py @@ -27,6 +27,7 @@ import glob from ansible.plugins.action.junos import ActionModule as _ActionModule from ansible.module_utils._text import to_text from ansible.module_utils.six.moves.urllib.parse import urlsplit +from ansible.module_utils._text import to_native from ansible.utils.vars import merge_hash PRIVATE_KEYS_RE = re.compile('__.+__') @@ -74,7 +75,7 @@ class ActionModule(_ActionModule): os.remove(fn) tstamp = time.strftime("%Y-%m-%d@%H:%M:%S", time.localtime(time.time())) filename = '%s/%s_config.%s' % (backup_path, host, tstamp) - open(filename, 'w').write(contents) + open(filename, 'w').write(to_native(contents, encoding='latin1')) return filename def _handle_template(self): @@ -110,4 +111,3 @@ class ActionModule(_ActionModule): searchpath.append(os.path.dirname(source)) self._templar.environment.loader.searchpath = searchpath self._task.args['src'] = self._templar.template(template_data) - diff --git a/test/sanity/pep8/legacy-files.txt b/test/sanity/pep8/legacy-files.txt index 83f5bf5329a..c1625aae4ad 100644 --- a/test/sanity/pep8/legacy-files.txt +++ b/test/sanity/pep8/legacy-files.txt @@ -845,7 +845,6 @@ lib/ansible/plugins/action/group_by.py lib/ansible/plugins/action/ios_template.py lib/ansible/plugins/action/iosxr_template.py lib/ansible/plugins/action/junos.py -lib/ansible/plugins/action/junos_config.py lib/ansible/plugins/action/junos_template.py lib/ansible/plugins/action/normal.py lib/ansible/plugins/action/nxos.py