summaryrefslogtreecommitdiffstats
path: root/lib/ansible/module_utils/online.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/module_utils/online.py')
-rw-r--r--lib/ansible/module_utils/online.py121
1 files changed, 0 insertions, 121 deletions
diff --git a/lib/ansible/module_utils/online.py b/lib/ansible/module_utils/online.py
deleted file mode 100644
index 464e454288..0000000000
--- a/lib/ansible/module_utils/online.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# Simplified BSD License (see licenses/simplified_bsd.txt or https://opensource.org/licenses/BSD-2-Clause)
-
-from __future__ import (absolute_import, division, print_function)
-__metaclass__ = type
-
-import json
-import sys
-
-from ansible.module_utils.basic import env_fallback
-from ansible.module_utils.urls import fetch_url
-
-
-def online_argument_spec():
- return dict(
- api_token=dict(required=True, fallback=(env_fallback, ['ONLINE_TOKEN', 'ONLINE_API_KEY', 'ONLINE_OAUTH_TOKEN', 'ONLINE_API_TOKEN']),
- no_log=True, aliases=['oauth_token']),
- api_url=dict(fallback=(env_fallback, ['ONLINE_API_URL']), default='https://api.online.net', aliases=['base_url']),
- api_timeout=dict(type='int', default=30, aliases=['timeout']),
- validate_certs=dict(default=True, type='bool'),
- )
-
-
-class OnlineException(Exception):
-
- def __init__(self, message):
- self.message = message
-
-
-class Response(object):
-
- def __init__(self, resp, info):
- self.body = None
- if resp:
- self.body = resp.read()
- self.info = info
-
- @property
- def json(self):
- if not self.body:
- if "body" in self.info:
- return json.loads(self.info["body"])
- return None
- try:
- return json.loads(self.body)
- except ValueError:
- return None
-
- @property
- def status_code(self):
- return self.info["status"]
-
- @property
- def ok(self):
- return self.status_code in (200, 201, 202, 204)
-
-
-class Online(object):
-
- def __init__(self, module):
- self.module = module
- self.headers = {
- 'Authorization': "Bearer %s" % self.module.params.get('api_token'),
- 'User-Agent': self.get_user_agent_string(module),
- 'Content-type': 'application/json',
- }
- self.name = None
-
- def get_resources(self):
- results = self.get('/%s' % self.name)
- if not results.ok:
- raise OnlineException('Error fetching {0} ({1}) [{2}: {3}]'.format(
- self.name, '%s/%s' % (self.module.params.get('api_url'), self.name),
- results.status_code, results.json['message']
- ))
-
- return results.json
-
- def _url_builder(self, path):
- if path[0] == '/':
- path = path[1:]
- return '%s/%s' % (self.module.params.get('api_url'), path)
-
- def send(self, method, path, data=None, headers=None):
- url = self._url_builder(path)
- data = self.module.jsonify(data)
-
- if headers is not None:
- self.headers.update(headers)
-
- resp, info = fetch_url(
- self.module, url, data=data, headers=self.headers, method=method,
- timeout=self.module.params.get('api_timeout')
- )
-
- # Exceptions in fetch_url may result in a status -1, the ensures a proper error to the user in all cases
- if info['status'] == -1:
- self.module.fail_json(msg=info['msg'])
-
- return Response(resp, info)
-
- @staticmethod
- def get_user_agent_string(module):
- return "ansible %s Python %s" % (module.ansible_version, sys.version.split(' ')[0])
-
- def get(self, path, data=None, headers=None):
- return self.send('GET', path, data, headers)
-
- def put(self, path, data=None, headers=None):
- return self.send('PUT', path, data, headers)
-
- def post(self, path, data=None, headers=None):
- return self.send('POST', path, data, headers)
-
- def delete(self, path, data=None, headers=None):
- return self.send('DELETE', path, data, headers)
-
- def patch(self, path, data=None, headers=None):
- return self.send("PATCH", path, data, headers)
-
- def update(self, path, data=None, headers=None):
- return self.send("UPDATE", path, data, headers)