diff options
author | David Newswanger <gamma.dave@gmail.com> | 2017-07-19 12:37:20 -0400 |
---|---|---|
committer | Toshio Kuratomi <a.badger@gmail.com> | 2017-07-19 15:54:22 -0700 |
commit | ba5d5cf3d6220336e307e19ced477d817f9995aa (patch) | |
tree | a94c0421be0a2fae8d072214d0e56e5c33753907 | |
parent | d02d48155cef1bcf013d402f3e05a5b93763ecf6 (diff) | |
download | ansible-ba5d5cf3d6220336e307e19ced477d817f9995aa.tar.gz |
fix unicode errors in iosxr
(cherry picked from commit 0b5b5ec50a51740288ce2d9cf826e262135bd291)
-rw-r--r-- | lib/ansible/module_utils/netcfg.py | 5 | ||||
-rw-r--r-- | lib/ansible/plugins/action/iosxr_config.py | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/ansible/module_utils/netcfg.py b/lib/ansible/module_utils/netcfg.py index fd31cb644b..bf3a78668a 100644 --- a/lib/ansible/module_utils/netcfg.py +++ b/lib/ansible/module_utils/netcfg.py @@ -164,6 +164,7 @@ class NetworkConfig(object): def parse(self, lines, comment_tokens=None): toplevel = re.compile(r'\S') childline = re.compile(r'^\s*(.+)$') + entry_reg = re.compile(r'([{};])') ancestors = list() config = list() @@ -171,8 +172,8 @@ class NetworkConfig(object): curlevel = 0 prevlevel = 0 - for linenum, line in enumerate(str(lines).split('\n')): - text = str(re.sub(r'([{};])', '', line)).strip() + for linenum, line in enumerate(to_native(lines, errors='surrogate_or_strict').split('\n')): + text = entry_reg.sub('', line).strip() cfg = ConfigLine(line) diff --git a/lib/ansible/plugins/action/iosxr_config.py b/lib/ansible/plugins/action/iosxr_config.py index c68a18fcc9..8d7ccaffed 100644 --- a/lib/ansible/plugins/action/iosxr_config.py +++ b/lib/ansible/plugins/action/iosxr_config.py @@ -25,7 +25,7 @@ import time import glob from ansible.plugins.action.iosxr import ActionModule as _ActionModule -from ansible.module_utils._text import to_text +from ansible.module_utils._text import to_text, to_bytes from ansible.module_utils.six.moves.urllib.parse import urlsplit from ansible.utils.vars import merge_hash @@ -74,7 +74,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_bytes(contents)) return filename def _handle_template(self): |