def _do_request(self, payload):
payload = payload.build()
LOG.debug('Sending request to %(endpoint)s: %(payload)s',
{'endpoint': self.endpoint, 'payload': payload})
try:
resp = requests.post(
self.endpoint,
auth=requests.auth.HTTPBasicAuth(self.username, self.password),
data=payload,
# TODO(ifarkas): enable cert verification
verify=False)
except Exception as e:
# This is a hack for handling 'No route to host' ConnectionError,
# so that the Traceback would not be shown
if e.__class__ == 'requests.exceptions.ConnectionError':
LOG.exception('Request failed (ConnectionError)')
raise exceptions.WSManRequestFailure()
if e.__class__ == 'requests.exceptions.RequestException':
LOG.exception('Request failed')
raise exceptions.WSManRequestFailure()
else:
raise
LOG.debug('Received response from %(endpoint)s: %(payload)s',
{'endpoint': self.endpoint, 'payload': resp.content})
if not resp.ok:
raise exceptions.WSManInvalidResponse(
status_code=resp.status_code,
reason=resp.reason)
else:
return resp
评论列表
文章目录