From e8f70f25df0d14de60e750a1b3fdf5f2944ff32c Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Thu, 8 Sep 2016 17:56:09 -0700 Subject: [PATCH] Python 3 fixes for apt_* modules. (#4754) --- lib/ansible/modules/packaging/os/apt.py | 8 +++++--- lib/ansible/modules/packaging/os/apt_key.py | 2 +- lib/ansible/modules/packaging/os/apt_repository.py | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/ansible/modules/packaging/os/apt.py b/lib/ansible/modules/packaging/os/apt.py index 596430600d0..9dd54adfaf9 100644 --- a/lib/ansible/modules/packaging/os/apt.py +++ b/lib/ansible/modules/packaging/os/apt.py @@ -198,6 +198,8 @@ import datetime import fnmatch import itertools +from ansible.module_utils._text import to_native + # APT related constants APT_ENV_VARS = dict( DEBIAN_FRONTEND = 'noninteractive', @@ -372,7 +374,7 @@ def expand_pkgspec_from_fnmatches(m, pkgspec, cache): return new_pkgspec def parse_diff(output): - diff = output.splitlines() + diff = to_native(output).splitlines() try: # check for start marker from aptitude diff_start = diff.index('Resolving dependencies...') @@ -385,7 +387,7 @@ def parse_diff(output): diff_start = -1 try: # check for end marker line from both apt-get and aptitude - diff_end = (i for i, item in enumerate(diff) if re.match('[0-9]+ (packages )?upgraded', item)).next() + diff_end = next(i for i, item in enumerate(diff) if re.match('[0-9]+ (packages )?upgraded', item)) except StopIteration: diff_end = len(diff) diff_start += 1 @@ -475,7 +477,7 @@ def get_field_of_deb(m, deb_file, field="Version"): rc, stdout, stderr = m.run_command(cmd) if rc != 0: m.fail_json(msg="%s failed" % cmd, stdout=stdout, stderr=stderr) - return stdout.strip('\n') + return to_native(stdout).strip('\n') def install_deb(m, debs, cache, force, install_recommends, allow_unauthenticated, dpkg_options): changed=False diff --git a/lib/ansible/modules/packaging/os/apt_key.py b/lib/ansible/modules/packaging/os/apt_key.py index ebcdc3aa4b9..c2993be1af7 100644 --- a/lib/ansible/modules/packaging/os/apt_key.py +++ b/lib/ansible/modules/packaging/os/apt_key.py @@ -130,7 +130,7 @@ def all_keys(module, keyring, short_format): cmd = "apt-key adv --list-public-keys --keyid-format=long" (rc, out, err) = module.run_command(cmd) results = [] - lines = out.split('\n') + lines = to_native(out).split('\n') for line in lines: if line.startswith("pub") or line.startswith("sub"): tokens = line.split() diff --git a/lib/ansible/modules/packaging/os/apt_repository.py b/lib/ansible/modules/packaging/os/apt_repository.py index 1a19c12e47a..cecd94ac322 100644 --- a/lib/ansible/modules/packaging/os/apt_repository.py +++ b/lib/ansible/modules/packaging/os/apt_repository.py @@ -374,7 +374,7 @@ class UbuntuSourcesList(SourcesList): response, info = fetch_url(self.module, lp_api, headers=headers) if info['status'] != 200: self.module.fail_json(msg="failed to fetch PPA information, error was: %s" % info['msg']) - return json.load(response) + return json.loads(to_native(response.read())) def _expand_ppa(self, path): ppa = path.split(':')[1]