Add a User-Agent string to the API request (#38587)

This commit is contained in:
Rémy Léone 2018-05-14 16:55:47 +02:00 committed by Adam Miller
parent 19977e80f0
commit afc196acf1
3 changed files with 12 additions and 6 deletions

View file

@ -1,4 +1,5 @@
import json import json
import sys
from ansible.module_utils.urls import fetch_url from ansible.module_utils.urls import fetch_url
@ -33,9 +34,12 @@ class Response(object):
class ScalewayAPI(object): class ScalewayAPI(object):
def __init__(self, module, headers, base_url): def __init__(self, module, base_url, headers=None):
self.module = module self.module = module
self.headers = headers self.headers = {'User-Agent': self.get_user_agent_string(module),
'Content-type': 'application/json'}
if headers is not None:
self.headers.update(headers)
self.base_url = base_url self.base_url = base_url
def _url_builder(self, path): def _url_builder(self, path):
@ -59,6 +63,10 @@ class ScalewayAPI(object):
return Response(resp, info) 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): def get(self, path, data=None, headers=None):
return self.send('GET', path, data, headers) return self.send('GET', path, data, headers)

View file

@ -584,8 +584,7 @@ def core(module):
} }
compute_api = ScalewayAPI(module=module, compute_api = ScalewayAPI(module=module,
headers={'X-Auth-Token': api_token, headers={'X-Auth-Token': api_token},
'Content-type': 'application/json'},
base_url=SCALEWAY_LOCATION[region]["api_endpoint"]) base_url=SCALEWAY_LOCATION[region]["api_endpoint"])
changed, summary = state_strategy[wished_server["state"]](compute_api=compute_api, wished_server=wished_server) changed, summary = state_strategy[wished_server["state"]](compute_api=compute_api, wished_server=wished_server)

View file

@ -109,8 +109,7 @@ def core(module):
ssh_pub_key = module.params['ssh_pub_key'] ssh_pub_key = module.params['ssh_pub_key']
state = module.params["state"] state = module.params["state"]
account_api = ScalewayAPI(module, account_api = ScalewayAPI(module,
headers={'X-Auth-Token': api_token, headers={'X-Auth-Token': api_token},
'Content-type': 'application/json'},
base_url=module.params["base_url"]) base_url=module.params["base_url"])
response = account_api.get('organizations') response = account_api.get('organizations')