本文整理匯總了Python中ansible.module_utils.urls.open_url方法的典型用法代碼示例。如果您正苦於以下問題:Python urls.open_url方法的具體用法?Python urls.open_url怎麽用?Python urls.open_url使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類ansible.module_utils.urls
的用法示例。
在下文中一共展示了urls.open_url方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: install_with_makepkg
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def install_with_makepkg(module, package, extra_args, skip_pgp_check, ignore_arch):
"""
Install the specified package with makepkg
"""
module.get_bin_path('fakeroot', required=True)
f = open_url('https://aur.archlinux.org/rpc/?v=5&type=info&arg={}'.format(urllib.parse.quote(package)))
result = json.loads(f.read().decode('utf8'))
if result['resultcount'] != 1:
return (1, '', 'package {} not found'.format(package))
result = result['results'][0]
f = open_url('https://aur.archlinux.org/{}'.format(result['URLPath']))
with tempfile.TemporaryDirectory() as tmpdir:
tar = tarfile.open(mode='r|*', fileobj=f)
tar.extractall(tmpdir)
tar.close()
command = build_command_prefix('makepkg', extra_args, skip_pgp_check=skip_pgp_check, ignore_arch=ignore_arch)
rc, out, err = module.run_command(command, cwd=os.path.join(tmpdir, result['Name']), check_rc=True)
return (rc, out, err)
示例2: _authorize
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def _authorize(self, username, password):
def request_token(url):
resp = open_url(
url,
method=HTTPMethod.POST,
data=json.dumps({'grant_type': 'password', 'username': username, 'password': password}),
headers=BASE_HEADERS,
validate_certs=False
).read()
return json.loads(to_text(resp))
api_versions = sorted(self._fetch_api_versions(), reverse=True)
for version in api_versions:
token_url = self._hostname + self.TOKEN_PATH_TEMPLATE.format(version)
try:
token = request_token(token_url)
except urllib_error.HTTPError as e:
logger.debug("Can't get token for API version: %s", version, exc_info=True)
if e.code != HTTPStatus.UNAUTHORIZED:
raise
else:
return token
raise Exception("Can't fetch token via API")
示例3: amp_api_call
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def amp_api_call(module, x_biscotti, set_cookie, host, api_name, method='GET', data={}, params=None):
url = "https://" + str(host) + "/" + str(api_name)
cookies = cookiejar.LWPCookieJar()
validate_certs = module.params.get('validate_certs')
client_cert= module.params.get('client_cert')
client_key= module.params.get('client_key')
http_agent = 'ansible-httpget'
follow_redirects = 'urllib'
try:
if method == "GET":
if params:
params = urlencode(params)
url= url + "?" + params
headers = { 'Cookie' : 'MercuryAuthHandlerCookie_AMPAuth=' + set_cookie }
resp = open_url(url, headers=headers, validate_certs=validate_certs)
else: # POST
headers = {'Cookie' : 'MercuryAuthHandlerCookie_AMPAuth=' + set_cookie, 'X-BISCOTTI' : x_biscotti }
resp = open_url(url, headers=headers, method=method, validate_certs=validate_certs, data=data, client_cert=client_cert, client_key=client_key)
except Exception as e:
module.fail_json(changed=False, msg="API Call failed! Exception during api call", reason=str(e))
return resp
示例4: login_activate
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def login_activate(module, credential_0, credential_1):
set_cookie = ""
resp = ""
url = "https://activate.arubanetworks.com/LOGIN"
headers = {'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': 'Activate-cookie.text'}
data = {"credential_0": credential_0 ,"credential_1": credential_1 }
cookies = cookiejar.LWPCookieJar()
validate_certs = module.params.get('validate_certs')
try:
resp = open_url(url=url, data=urlencode(data), headers=headers, method="POST", validate_certs=validate_certs, cookies=cookies)
if resp.code == 200:
cookie_list = []
for ck in cookies:
cookie_list.append(str(ck.name) + "="+ str(ck.value))
set_cookie = "; ".join(cookie_list)
else:
module.fail_json(changed=False, msg="Login Failed!", reason=resp.read(),
response="HTTP status_code: " + str(resp.code))
except Exception as e:
module.fail_json(changed=False, msg="API Call failed! Exception during login", reason=str(e))
return set_cookie
示例5: grafana_list_dashboards
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def grafana_list_dashboards(self):
# define http headers
headers = self.grafana_headers()
dashboard_list = []
try:
if self.search:
r = open_url('%s/api/search?query=%s' % (self.grafana_url, self.search), headers=headers, method='GET')
else:
r = open_url('%s/api/search/' % self.grafana_url, headers=headers, method='GET')
except HTTPError as e:
raise GrafanaAPIException('Unable to search dashboards : %s' % to_native(e))
if r.getcode() == 200:
try:
dashboard_list = json.loads(r.read())
except Exception as e:
raise GrafanaAPIException('Unable to parse json list %s' % to_native(e))
else:
raise GrafanaAPIException('Unable to list grafana dashboards : %s' % str(r.getcode()))
return dashboard_list
示例6: _fetch_api_versions
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def _fetch_api_versions(self):
try:
# In case of 6.2.3 when Api Versions resource does not exists HTTP 401 will be returned
resp = open_url(
self._hostname + self.API_VERSIONS_PATH,
method=HTTPMethod.GET,
headers=BASE_HEADERS,
validate_certs=False
).read()
supported_versions = json.loads(to_text(resp))["supportedVersions"]
except Exception:
logger.debug("Can't fetch supported API versions", exc_info=True)
supported_versions = self.SUPPORTED_VERSIONS
return supported_versions
示例7: _send_request
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def _send_request(self, url_path, method):
url = self._hostname + url_path
response = open_url(url, method=method, headers=self._auth_headers, validate_certs=False).read()
return json.loads(to_text(response))
示例8: login_amp
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def login_amp(module, host, credential_0, credential_1):
return_list = []
resp = ""
url = "https://" + str(host) + "/LOGIN"
headers = { 'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded'}
data = 'credential_0=' + credential_0 + '&credential_1=' + credential_1 + '&destination=/&login=Log In'
cookies = cookiejar.LWPCookieJar()
validate_certs = module.params.get('validate_certs')
client_cert= module.params.get('client_cert')
client_key= module.params.get('client_key')
try:
resp = open_url(url, headers=headers, method="POST", validate_certs=validate_certs, data=data, cookies=cookies, client_cert=client_cert, client_key=client_key)
if resp.code == 200:
## Extract Biscotti from headers
if "X-BISCOTTI" in resp.headers:
x_biscotti = resp.headers.get("X-BISCOTTI")
return_list.append(x_biscotti)
## Extract session key from cookie
for set_cookie in cookies:
set_cookie = set_cookie.value
return_list.append(set_cookie)
else:
module.fail_json(changed=False, msg="Login Failed!", reason=resp.text,
response="HTTP status_code: " + str(resp.status_code))
except Exception as e:
module.fail_json(changed=False, msg="API Call failed! Exception during login", reason=str(e))
return return_list
示例9: login_cppm
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def login_cppm(module, host, client_id, client_secret):
resp = ""
access_token = ""
url = "https://" + str(host) + ":443/api/oauth"
headers = {'Accept': 'application/json', 'Content-Type': 'application/json'}
data = {"grant_type": "client_credentials","client_id": client_id,"client_secret": client_secret}
module.api_call['url'] = url # Store the url to module, so we can print the details in case of error
module.api_call['login_data'] = data
validate_certs=module.params.get('validate_certs')
client_cert=module.params.get('client_cert')
client_key=module.params.get('client_key')
try:
resp = open_url(url=url, data=json.dumps(data), headers=headers, method="POST", validate_certs=validate_certs,
client_cert=client_cert, client_key=client_key)
if resp.code == 200:
result = json.loads(resp.read())
access_token = result["access_token"]
else:
module.fail_json(changed=False, msg="Login Failed!", reason="",
api_call=module.api_call, response="HTTP status_code: " + str(resp.code) + " content: " +
resp.read())
except Exception as e:
if resp == "": # Exception during http request, we have no response
module.fail_json(changed=False, msg="API Call failed! Exception during login", reason=str(e),
api_call=module.api_call)
else:
module.fail_json(changed=False, msg="API Call failed! Exception during login", reason=str(e),
api_call=module.api_call, response="http status: " + str(resp.code) + " content: " + resp.read())
return access_token
示例10: login_api_mm
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def login_api_mm(module):
# Define variables from module arguments
host = module.params.get('host')
username = module.params.get('username')
password = module.params.get('password')
session_key = ""
resp = ""
# Variables required for open_url
url = "https://" + str(host) + ":4343/rest/login"
headers = {'Accept': 'application/json', 'Content-Type': 'application/json'}
data = {'user': username, 'passwd': password}
data = json.dumps(data)
cookies = cookiejar.LWPCookieJar()
validate_certs = False
http_agent = 'ansible-httpget'
follow_redirects = 'urllib2'
method = "POST"
module.api_call = {'host':host,'user':username,'passwd':password, 'url':''}
module.api_call['url'] = url # Stores the url to module, so we can print the details in case of error
try:
resp = open_url(url, data=data, headers=headers, method=method, validate_certs=validate_certs, http_agent=http_agent, follow_redirects=follow_redirects, cookies=cookies)
resp = resp.read()
result = json.loads(resp)
if result['Status'] == "Success":
session_key = result['sid']
else:
module.fail_json(changed=False, msg="Login Failed! Check the credentials you provided", reason=str(result), api_call=module.api_call, response="content: " + str(resp) + " login status code: " + str(result['status']) + " login error: " + str(result['status_str']))
except Exception as e:
module.fail_json(changed=False, msg="API Call failed! Exception during login", reason=str(e), api_call=module.api_call)
session_dict = {'host':host,
'session_token': session_key}
return session_dict
示例11: grafana_switch_organisation
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def grafana_switch_organisation(self, headers):
try:
r = open_url('%s/api/user/using/%s' % (self.grafana_url, self.grafana_org_id), headers=headers, method='POST')
except HTTPError as e:
raise GrafanaAPIException('Unable to switch to organization %s : %s' % (self.grafana_org_id, to_native(e)))
if r.getcode() != 200:
raise GrafanaAPIException('Unable to switch to organization %s : %s' % (self.grafana_org_id, str(r.getcode())))
示例12: cppm_api_call
# 需要導入模塊: from ansible.module_utils import urls [as 別名]
# 或者: from ansible.module_utils.urls import open_url [as 別名]
def cppm_api_call(module, host, access_token, api_name, method='GET', data={}):
url = "https://" + str(host) + ":443/api/" + str(api_name)
module.api_call['url'] = url # Store the url to module, so we can print the details in case of error
headers = ""
resp = ""
variableID = ""
hard_list = ["user_id", "name", "mac_address"]
validate_certs=module.params.get('validate_certs')
client_cert=module.params.get('client_cert')
client_key=module.params.get('client_key')
try:
if method == "GET" or method == "DELETE":
headers = {'Accept': 'application/json', 'Authorization': "Bearer " + access_token}
resp = open_url(url=url, headers=headers, method=method, validate_certs=validate_certs,
client_cert=client_cert, client_key=client_key)
else: # POST, PATCH
headers = {'Accept': 'application/json', 'Content-Type': 'application/json',
'Authorization': "Bearer " + access_token}
resp = open_url(url=url, data=json.dumps(data), headers=headers, method=method, validate_certs=validate_certs,
client_cert=client_cert, client_key=client_key)
return resp
except Exception as e:
if "422" in str(e):
if method == "POST":
try:
for ele in data.keys():
if ele in hard_list:
variableID = ele
break
if variableID:
##### Convert _ to -
varIDEdit = variableID.replace("_", "-")
url = "https://" + str(host) + ":443/api/" + str(api_name) + "/" + str(varIDEdit) + "/" + data[variableID]
resp = open_url(url=url, data=json.dumps(data), headers=headers, method="PATCH", validate_certs=validate_certs,
client_cert=client_cert, client_key=client_key)
return resp
else:
module.exit_json(skipped=True, msg=str(e) + "...Entry might exists on ClearPass")
except Exception as err:
module.exit_json(skipped=True, msg=str(err) + "...Entry might exists on ClearPass")
else:
module.fail_json(changed=False, msg="API Call failed! Exception during api call", reason=str(e),
api_call=module.api_call)