Hello community, here is the log from the commit of package ansible for openSUSE:Factory checked in at 2015-10-12 10:03:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ansible (Old) and /work/SRC/openSUSE:Factory/.ansible.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ansible" Changes: -------- --- /work/SRC/openSUSE:Factory/ansible/ansible.changes 2015-09-19 06:55:29.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ansible.new/ansible.changes 2015-10-12 10:03:35.000000000 +0200 @@ -1,0 +2,16 @@ +Sat Oct 10 12:10:59 UTC 2015 - [email protected] + +- update to 1.9.4 + This release addresses several bugs, most notably those related to + the yum module (introduced in 1.9.3): + + Fixes a bug where yum state=latest would error if there were no + updates to install. + + Fixes a bug where yum state=latest did not work with wildcard + package names. + + Fixes a bug in lineinfile relating to escape sequences. + + Fixes a bug where vars_prompt was not keeping passwords private + by default. + + Fix ansible-galaxy and the hipchat callback plugin to check that + the host it is contacting matches its TLS Certificate. + +------------------------------------------------------------------- Old: ---- ansible-1.9.3.tar.gz New: ---- ansible-1.9.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ansible.spec ++++++ --- /var/tmp/diff_new_pack.01fmIm/_old 2015-10-12 10:03:35.000000000 +0200 +++ /var/tmp/diff_new_pack.01fmIm/_new 2015-10-12 10:03:35.000000000 +0200 @@ -19,7 +19,7 @@ Name: ansible -Version: 1.9.3 +Version: 1.9.4 Release: 0 Summary: Radically simple IT automation License: GPL-3.0 ++++++ ansible-1.9.3.tar.gz -> ansible-1.9.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/PKG-INFO new/ansible-1.9.4/PKG-INFO --- old/ansible-1.9.3/PKG-INFO 2015-09-04 01:03:14.000000000 +0200 +++ new/ansible-1.9.4/PKG-INFO 2015-10-10 04:08:25.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: ansible -Version: 1.9.3 +Version: 1.9.4 Summary: Radically simple IT automation Home-page: http://ansible.com/ Author: Ansible, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/VERSION new/ansible-1.9.4/VERSION --- old/ansible-1.9.3/VERSION 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/VERSION 2015-10-10 04:08:19.000000000 +0200 @@ -1 +1 @@ -1.9.3 1 +1.9.4 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/bin/ansible-galaxy new/ansible-1.9.4/bin/ansible-galaxy --- old/ansible-1.9.3/bin/ansible-galaxy 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/bin/ansible-galaxy 2015-10-10 04:08:19.000000000 +0200 @@ -31,7 +31,6 @@ import tarfile import tempfile import urllib -import urllib2 import yaml from collections import defaultdict @@ -42,6 +41,7 @@ import ansible.constants as C import ansible.utils from ansible.errors import AnsibleError +from ansible.module_utils.urls import open_url default_meta_template = """--- galaxy_info: @@ -253,7 +253,7 @@ try: url = 'https://%s/api/' % api_server - data = json.load(urllib2.urlopen(url)) + data = json.load(open_url(url)) if not data.get("current_version",None): return None else: @@ -261,7 +261,7 @@ except: return None -def api_lookup_role_by_name(api_server, role_name, notify=True): +def api_lookup_role_by_name(api_server, role_name, parser, notify=True): """ Uses the Galaxy API to do a lookup on the role owner/name. """ @@ -281,7 +281,7 @@ url = 'https://%s/api/v1/roles/?owner__username=%s&name=%s' % (api_server,user_name,role_name) try: - data = json.load(urllib2.urlopen(url)) + data = json.load(open_url(url)) if len(data["results"]) == 0: return None else: @@ -298,13 +298,13 @@ try: url = 'https://%s/api/v1/roles/%d/%s/?page_size=50' % (api_server, int(role_id), related) - data = json.load(urllib2.urlopen(url)) + data = json.load(open_url(url)) results = data['results'] done = (data.get('next', None) == None) while not done: url = 'https://%s%s' % (api_server, data['next']) print url - data = json.load(urllib2.urlopen(url)) + data = json.load(open_url(url)) results += data['results'] done = (data.get('next', None) == None) return results @@ -318,7 +318,7 @@ try: url = 'https://%s/api/v1/%s/?page_size' % (api_server, what) - data = json.load(urllib2.urlopen(url)) + data = json.load(open_url(url)) if "results" in data: results = data['results'] else: @@ -329,7 +329,7 @@ while not done: url = 'https://%s%s' % (api_server, data['next']) print url - data = json.load(urllib2.urlopen(url)) + data = json.load(open_url(url)) results += data['results'] done = (data.get('next', None) == None) return results @@ -484,7 +484,7 @@ print "- downloading role from %s" % archive_url try: - url_file = urllib2.urlopen(archive_url) + url_file = open_url(archive_url) temp_file = tempfile.NamedTemporaryFile(delete=False) data = url_file.read() while data: @@ -703,7 +703,7 @@ del install_info['version'] role_info.update(install_info) - remote_data = api_lookup_role_by_name(api_server, role, False) + remote_data = api_lookup_role_by_name(api_server, role, parser, False) if remote_data: role_info.update(remote_data) @@ -804,7 +804,7 @@ print "- the API server (%s) is not responding, please try again later." % api_server sys.exit(1) - role_data = api_lookup_role_by_name(api_server, role_src) + role_data = api_lookup_role_by_name(api_server, role_src, parser) if not role_data: print "- sorry, %s was not found on %s." % (role_src, api_server) exit_without_ignore(options) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/bin/ansible-pull new/ansible-1.9.4/bin/ansible-pull --- old/ansible-1.9.3/bin/ansible-pull 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/bin/ansible-pull 2015-10-10 04:08:19.000000000 +0200 @@ -140,6 +140,11 @@ help='adds the hostkey for the repo url if not already added') parser.add_option('--key-file', dest='key_file', help="Pass '-i <key_file>' to the SSH arguments used by git.") + parser.add_option('--git-force', dest='gitforce', default=False, action='store_true', + help='modified files in the working git repository will be discarded') + parser.add_option('--track-submodules', dest='tracksubmodules', default=False, action='store_true', + help='submodules will track the latest commit on their master branch (or other branch specified in .gitmodules).' + ' This is equivalent to specifying the --remote flag to git submodule update') options, args = parser.parse_args(args) hostname = socket.getfqdn() @@ -182,6 +187,12 @@ if options.key_file: repo_opts += ' key_file=%s' % options.key_file + if options.gitforce: + repo_opts += ' force=yes' + + if options.tracksubmodules: + repo_opts += ' track_submodules=yes' + path = utils.plugins.module_finder.find_plugin(options.module_name) if path is None: sys.stderr.write("module '%s' not found.\n" % options.module_name) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/__init__.py new/ansible-1.9.4/lib/ansible/__init__.py --- old/ansible-1.9.3/lib/ansible/__init__.py 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/__init__.py 2015-10-10 04:08:19.000000000 +0200 @@ -14,5 +14,5 @@ # # You should have received a copy of the GNU General Public License # along with Ansible. If not, see <http://www.gnu.org/licenses/>. -__version__ = '1.9.3' +__version__ = '1.9.4' __author__ = 'Ansible, Inc.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/modules/core/VERSION new/ansible-1.9.4/lib/ansible/modules/core/VERSION --- old/ansible-1.9.3/lib/ansible/modules/core/VERSION 2015-09-04 01:03:12.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/modules/core/VERSION 2015-10-10 04:08:22.000000000 +0200 @@ -1 +1 @@ -1.9.3-1 +1.9.4-1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/modules/core/files/lineinfile.py new/ansible-1.9.4/lib/ansible/modules/core/files/lineinfile.py --- old/ansible-1.9.3/lib/ansible/modules/core/files/lineinfile.py 2015-09-04 01:03:12.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/modules/core/files/lineinfile.py 2015-10-10 04:08:22.000000000 +0200 @@ -370,25 +370,13 @@ line = params['line'] - # The safe_eval call will remove some quoting, but not others, - # so we need to know if we should specifically unquote it. - should_unquote = not is_quoted(line) - - # always add one layer of quotes - line = "'%s'" % line - # Replace escape sequences like '\n' while being sure # not to replace octal escape sequences (\ooo) since they # match the backref syntax. if backrefs: line = re.sub(r'(\\[0-9]{1,3})', r'\\\1', line) - line = module.safe_eval(line) - # Now remove quotes around the string, if needed after - # removing the layer we added above - line = unquote(line) - if should_unquote: - line = unquote(line) + line = line.decode("string_escape") present(module, dest, params['regexp'], line, ins_aft, ins_bef, create, backup, backrefs) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/modules/core/packaging/os/yum.py new/ansible-1.9.4/lib/ansible/modules/core/packaging/os/yum.py --- old/ansible-1.9.3/lib/ansible/modules/core/packaging/os/yum.py 2015-09-04 01:03:12.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/modules/core/packaging/os/yum.py 2015-10-10 04:08:22.000000000 +0200 @@ -733,7 +733,7 @@ rc, out, err = module.run_command(yum_basecmd + ['check-update']) if rc == 0 and update_all: res['results'].append('Nothing to do here, all packages are up to date') - return res + module.exit_json(**res) elif rc == 100: available_updates = out.split('\n') # build update dictionary @@ -754,7 +754,11 @@ if update_all: cmd = yum_basecmd + ['update'] + will_update = set(updates.keys()) + will_update_from_other_package = dict() else: + will_update = set() + will_update_from_other_package = dict() for spec in items: # some guess work involved with groups. update @<group> will install the group if missing if spec.startswith('@'): @@ -778,8 +782,19 @@ nothing_to_do = False break - if spec in pkgs['update'] and spec in updates.keys(): - nothing_to_do = False + # this contains the full NVR and spec could contain wildcards + # or virtual provides (like "python-*" or "smtp-daemon") while + # updates contains name only. + this_name_only = '-'.join(this.split('-')[:-2]) + if spec in pkgs['update'] and this_name_only in updates.keys(): + nothing_to_do = False + will_update.add(spec) + # Massage the updates list + if spec != this_name_only: + # For reporting what packages would be updated more + # succinctly + will_update_from_other_package[spec] = this_name_only + break if nothing_to_do: res['results'].append("All packages providing %s are up to date" % spec) @@ -792,12 +807,6 @@ res['msg'] += "The following packages have pending transactions: %s" % ", ".join(conflicts) module.fail_json(**res) - # list of package updates - if update_all: - will_update = updates.keys() - else: - will_update = [u for u in pkgs['update'] if u in updates.keys() or u.startswith('@')] - # check_mode output if module.check_mode: to_update = [] @@ -805,6 +814,9 @@ if w.startswith('@'): to_update.append((w, None)) msg = '%s will be updated' % w + elif w not in updates: + other_pkg = will_update_from_other_package[w] + to_update.append((w, 'because of (at least) %s-%s.%s from %s' % (other_pkg, updates[other_pkg]['version'], updates[other_pkg]['dist'], updates[other_pkg]['repo']))) else: to_update.append((w, '%s.%s from %s' % (updates[w]['version'], updates[w]['dist'], updates[w]['repo']))) @@ -813,7 +825,7 @@ if len(will_update) > 0 or len(pkgs['install']) > 0: res['changed'] = True - return res + module.exit_json(**res) # run commands if cmd: # update all diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/modules/core/system/authorized_key.py new/ansible-1.9.4/lib/ansible/modules/core/system/authorized_key.py --- old/ansible-1.9.3/lib/ansible/modules/core/system/authorized_key.py 2015-09-04 01:03:12.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/modules/core/system/authorized_key.py 2015-10-10 04:08:22.000000000 +0200 @@ -111,7 +111,7 @@ key_options='no-port-forwarding,host="10.0.1.1"' # Set up authorized_keys exclusively with one key -- authorized_key: user=root key=public_keys/doe-jane state=present +- authorized_key: user=root key="{{ lookup('file', 'public_keys/doe-jane') }}" state=present exclusive=yes ''' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/modules/extras/VERSION new/ansible-1.9.4/lib/ansible/modules/extras/VERSION --- old/ansible-1.9.3/lib/ansible/modules/extras/VERSION 2015-09-04 01:03:13.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/modules/extras/VERSION 2015-10-10 04:08:24.000000000 +0200 @@ -1 +1 @@ -1.9.3-1 +1.9.4-1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/modules/extras/network/f5/bigip_facts.py new/ansible-1.9.4/lib/ansible/modules/extras/network/f5/bigip_facts.py --- old/ansible-1.9.3/lib/ansible/modules/extras/network/f5/bigip_facts.py 2015-09-04 01:03:13.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/modules/extras/network/f5/bigip_facts.py 2015-10-10 04:08:24.000000000 +0200 @@ -1576,7 +1576,8 @@ session = dict(type='bool', default=False), include = dict(type='list', required=True), filter = dict(type='str', required=False), - ) + ), + supports_check_mode = True ) if not bigsuds_found: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/modules/extras/packaging/os/pacman.py new/ansible-1.9.4/lib/ansible/modules/extras/packaging/os/pacman.py --- old/ansible-1.9.3/lib/ansible/modules/extras/packaging/os/pacman.py 2015-09-04 01:03:13.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/modules/extras/packaging/os/pacman.py 2015-10-10 04:08:24.000000000 +0200 @@ -202,7 +202,7 @@ module.exit_json(changed=True, msg="%s package(s) would be %s" % ( len(would_be_changed), state)) else: - module.exit_json(change=False, msg="package(s) already %s" % state) + module.exit_json(changed=False, msg="package(s) already %s" % state) def main(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/modules/extras/packaging/os/swdepot.py new/ansible-1.9.4/lib/ansible/modules/extras/packaging/os/swdepot.py --- old/ansible-1.9.3/lib/ansible/modules/extras/packaging/os/swdepot.py 2015-09-04 01:03:13.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/modules/extras/packaging/os/swdepot.py 2015-10-10 04:08:24.000000000 +0200 @@ -147,7 +147,7 @@ if not rc: changed = True - msg = "Packaged installed" + msg = "Package installed" else: module.fail_json(name=name, msg=output, rc=rc) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/modules/extras/system/firewalld.py new/ansible-1.9.4/lib/ansible/modules/extras/system/firewalld.py --- old/ansible-1.9.3/lib/ansible/modules/extras/system/firewalld.py 2015-09-04 01:03:13.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/modules/extras/system/firewalld.py 2015-10-10 04:08:24.000000000 +0200 @@ -233,8 +233,9 @@ rich_rule = module.params['rich_rule'] if module.params['port'] != None: - port, protocol = module.params['port'].split('/') - if protocol == None: + try: + port, protocol = module.params['port'].split('/') + except ValueError: module.fail_json(msg='improper port format (missing protocol?)') else: port = None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/playbook/play.py new/ansible-1.9.4/lib/ansible/playbook/play.py --- old/ansible-1.9.3/lib/ansible/playbook/play.py 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/playbook/play.py 2015-10-10 04:08:19.000000000 +0200 @@ -750,7 +750,7 @@ prompt_msg = "%s: " % prompt if vname not in self.playbook.extra_vars: vars[vname] = self.playbook.callbacks.on_vars_prompt( - varname=vname, private=False, prompt=prompt_msg, default=None + varname=vname, private=True, prompt=prompt_msg, default=None ) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/runner/connection_plugins/winrm.py new/ansible-1.9.4/lib/ansible/runner/connection_plugins/winrm.py --- old/ansible-1.9.3/lib/ansible/runner/connection_plugins/winrm.py 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/runner/connection_plugins/winrm.py 2015-10-10 04:08:19.000000000 +0200 @@ -185,7 +185,7 @@ # windows command length), divide by 2.67 (UTF16LE base64 command # encoding), then by 1.35 again (data base64 encoding). buffer_size = int(((8190 - len(cmd)) / 2.67) / 1.35) - for offset in xrange(0, in_size, buffer_size): + for offset in xrange(0, in_size or 1, buffer_size): try: out_data = in_file.read(buffer_size) if offset == 0: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/utils/__init__.py new/ansible-1.9.4/lib/ansible/utils/__init__.py --- old/ansible-1.9.3/lib/ansible/utils/__init__.py 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/utils/__init__.py 2015-10-10 04:08:19.000000000 +0200 @@ -229,9 +229,9 @@ # TODO: might be nice to append playbook runs per host in a similar way # in which case, we'd want append mode. path = os.path.join(tree, hostname) - fd = open(path, "w+") - fd.write(buf) - fd.close() + buf = to_bytes(buf) + with open(path, 'wb+') as fd: + fd.write(buf) def is_failed(result): ''' is a given JSON result a failed result? ''' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible/utils/template.py new/ansible-1.9.4/lib/ansible/utils/template.py --- old/ansible-1.9.3/lib/ansible/utils/template.py 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible/utils/template.py 2015-10-10 04:08:19.000000000 +0200 @@ -15,12 +15,14 @@ # You should have received a copy of the GNU General Public License # along with Ansible. If not, see <http://www.gnu.org/licenses/>. +import sys import os import re import codecs import jinja2 from jinja2.runtime import StrictUndefined from jinja2.exceptions import TemplateSyntaxError +from jinja2.utils import missing import yaml import json from ansible import errors @@ -157,16 +159,23 @@ extras is a list of locals to also search for variables. ''' - def __init__(self, basedir, vars, globals, fail_on_undefined, *extras): + def __init__(self, basedir, vars, globals, fail_on_undefined, locals=None, *extras): self.basedir = basedir self.vars = vars self.globals = globals self.fail_on_undefined = fail_on_undefined self.extras = extras + self.locals = dict() + if isinstance(locals, dict): + for key, val in locals.iteritems(): + if key[:2] == 'l_' and val is not missing: + self.locals[key[2:]] = val def __contains__(self, k): if k in self.vars: return True + if k in self.locals: + return True for i in self.extras: if k in i: return True @@ -177,6 +186,8 @@ def __getitem__(self, varname): from ansible.runner import HostVars if varname not in self.vars: + if varname in self.locals: + return self.locals[varname] for i in self.extras: if varname in i: return i[varname] @@ -200,7 +211,7 @@ ''' if locals is None: return self - return _jinja2_vars(self.basedir, self.vars, self.globals, self.fail_on_undefined, locals, *self.extras) + return _jinja2_vars(self.basedir, self.vars, self.globals, self.fail_on_undefined, locals=locals, *self.extras) class J2Template(jinja2.environment.Template): ''' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/lib/ansible.egg-info/PKG-INFO new/ansible-1.9.4/lib/ansible.egg-info/PKG-INFO --- old/ansible-1.9.3/lib/ansible.egg-info/PKG-INFO 2015-09-04 01:03:14.000000000 +0200 +++ new/ansible-1.9.4/lib/ansible.egg-info/PKG-INFO 2015-10-10 04:08:25.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: ansible -Version: 1.9.3 +Version: 1.9.4 Summary: Radically simple IT automation Home-page: http://ansible.com/ Author: Ansible, Inc. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/packaging/rpm/ansible.spec new/ansible-1.9.4/packaging/rpm/ansible.spec --- old/ansible-1.9.3/packaging/rpm/ansible.spec 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/packaging/rpm/ansible.spec 2015-10-10 04:08:19.000000000 +0200 @@ -111,6 +111,9 @@ %changelog +* Fri Oct 09 2015 Ansible, Inc. <[email protected]> - 1.9.4 +- Release 1.9.4 + * Thu Sep 03 2015 Ansible, Inc. <[email protected]> - 1.9.3 - Release 1.9.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-1.9.3/plugins/callbacks/hipchat.py new/ansible-1.9.4/plugins/callbacks/hipchat.py --- old/ansible-1.9.3/plugins/callbacks/hipchat.py 2015-09-04 01:03:08.000000000 +0200 +++ new/ansible-1.9.4/plugins/callbacks/hipchat.py 2015-10-10 04:08:19.000000000 +0200 @@ -17,9 +17,9 @@ import os import urllib -import urllib2 from ansible import utils +from ansible.module_utils.urls import open_url try: import prettytable @@ -77,7 +77,7 @@ url = ('%s?auth_token=%s' % (self.msg_uri, self.token)) try: - response = urllib2.urlopen(url, urllib.urlencode(params)) + response = open_url(url, data=urllib.urlencode(params)) return response.read() except: utils.warning('Could not submit message to hipchat')
