Fixed handling of urlopen result to work properly under both python 2.4 and python 2.6
This commit is contained in:
parent
008e18d1d3
commit
3926f76644
1 changed files with 13 additions and 2 deletions
|
@ -134,13 +134,24 @@ def main():
|
||||||
try:
|
try:
|
||||||
req = urllib2.Request("https://rpm.newrelic.com/deployments.xml", urllib.urlencode(params))
|
req = urllib2.Request("https://rpm.newrelic.com/deployments.xml", urllib.urlencode(params))
|
||||||
req.add_header('x-api-key',module.params["token"])
|
req.add_header('x-api-key',module.params["token"])
|
||||||
urllib2.urlopen(req)
|
result=urllib2.urlopen(req)
|
||||||
|
# urlopen behaves differently in python 2.4 and 2.6 so we handle
|
||||||
|
# both cases here. In python 2.4 it throws an exception if the
|
||||||
|
# return code is anything other than a 200. In python 2.6 it
|
||||||
|
# doesn't throw an exception for any 2xx return codes. In both
|
||||||
|
# cases we expect newrelic should return a 201 on success. So
|
||||||
|
# to handle both cases, both the except & else cases below are
|
||||||
|
# effectively identical.
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
# 201 is an ok response from this service
|
|
||||||
if e.code == 201:
|
if e.code == 201:
|
||||||
module.exit_json(changed=True)
|
module.exit_json(changed=True)
|
||||||
else:
|
else:
|
||||||
module.fail_json(msg="unable to update newrelic: %s" % e)
|
module.fail_json(msg="unable to update newrelic: %s" % e)
|
||||||
|
else:
|
||||||
|
if result.code == 201:
|
||||||
|
module.exit_json(changed=True)
|
||||||
|
else:
|
||||||
|
module.fail_json(msg="result code: %d" % result.code)
|
||||||
|
|
||||||
# this is magic, see lib/ansible/module_common.py
|
# this is magic, see lib/ansible/module_common.py
|
||||||
#<<INCLUDE_ANSIBLE_MODULE_COMMON>>
|
#<<INCLUDE_ANSIBLE_MODULE_COMMON>>
|
||||||
|
|
Loading…
Reference in a new issue