From 572ab3987a243674773d179835516b57f52d435b Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bonicoli Date: Tue, 15 Aug 2017 02:23:33 +0200 Subject: [PATCH] circonus_annotation: check requests library version --- .../modules/monitoring/circonus_annotation.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/ansible/modules/monitoring/circonus_annotation.py b/lib/ansible/modules/monitoring/circonus_annotation.py index 7fc3a589d12..c098ba6549a 100644 --- a/lib/ansible/modules/monitoring/circonus_annotation.py +++ b/lib/ansible/modules/monitoring/circonus_annotation.py @@ -140,6 +140,7 @@ annotation: import json import time import traceback +from distutils.version import LooseVersion try: import requests @@ -148,9 +149,20 @@ except ImportError: HAS_REQUESTS = False from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.six import PY3 from ansible.module_utils._text import to_native +def check_requests_dep(module): + """Check if an adequate requests version is available""" + if not HAS_REQUESTS: + module.fail_json(msg='requests is required for this module') + else: + required_version = '2.0.0' if PY3 else '1.0.0' + if LooseVersion(requests.__version__) < LooseVersion(required_version): + module.fail_json(msg="'requests' library version should be >= %s, found: %s." % (required_version, requests.__version__)) + + def post_annotation(annotation, api_key): ''' Takes annotation dict and api_key string''' base_url = 'https://api.circonus.com/v2' @@ -203,8 +215,7 @@ def main(): ) ) - if not HAS_REQUESTS: - module.fail_json(msg='requests is required for this module') + check_requests_dep(module) annotation = create_annotation(module) try: