summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Newswanger <gamma.dave@gmail.com>2017-07-19 12:37:20 -0400
committerToshio Kuratomi <a.badger@gmail.com>2017-07-19 15:54:22 -0700
commitba5d5cf3d6220336e307e19ced477d817f9995aa (patch)
treea94c0421be0a2fae8d072214d0e56e5c33753907
parentd02d48155cef1bcf013d402f3e05a5b93763ecf6 (diff)
downloadansible-ba5d5cf3d6220336e307e19ced477d817f9995aa.tar.gz
fix unicode errors in iosxr
(cherry picked from commit 0b5b5ec50a51740288ce2d9cf826e262135bd291)
-rw-r--r--lib/ansible/module_utils/netcfg.py5
-rw-r--r--lib/ansible/plugins/action/iosxr_config.py4
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):