Skip to content

Commit

Permalink
Log request data and response content in DNSaaS client
Browse files Browse the repository at this point in the history
  • Loading branch information
romcheg committed May 20, 2020
1 parent c493693 commit 25fb4c7
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 9 deletions.
45 changes: 36 additions & 9 deletions src/ralph/dns/dnsaas.py
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
import json
import logging
from urllib.parse import urlencode, urljoin

Expand Down Expand Up @@ -199,6 +200,37 @@ def create_dns_record(self, record, service=None):
data['service_uid'] = service.uid
return self._post(url, data)[1]

def _send_request_to_dnsaas(self, request_method, url, json_data=None):
try:
response = self.session.request(
method=request_method,
url=url,
json=json_data,
timeout=float(settings.DNSAAS_TIMEOUT)
)
logger.info(
"Sent {} request to DNSaaS to {}".format(
request_method, url
),
extra={
'request_data': json.dumps(json_data),
'response_status': response.status_code,
'response_content': response.text
}
)

return response
except Exception:
logger.exception(
"Sending {} request to DNSaaS to {} failed.".format(
request_method, url
),
extra={
'request_data': json.dumps(json_data)
}
)
raise

def _post(self, url, data):
"""
Send post data to URL.
Expand All @@ -210,26 +242,21 @@ def _post(self, url, data):
Returns:
tuple (response status code, dict data)
"""
logger.info("Sending POST request to DNSaaS to {}".format(url))
response = self.session.post(url, json=data)
response = self._send_request_to_dnsaas('POST', url, json_data=data)
return response.status_code, self._response2result(response)

def _delete(self, url):
logger.info("Sending DELETE request to DNSaaS to {}".format(url))
response = self.session.delete(url)
response = self._send_request_to_dnsaas('DELETE', url)

return response.status_code, self._response2result(response)

def _get(self, url):
logger.info("Sending GET request to DNSaaS to {}".format(url))
response = self.session.get(url)
response = self._send_request_to_dnsaas('GET', url)

return response.status_code, self._response2result(response)

def _patch(self, url, data):
logger.info("Sending PATCH request to DNSaaS to {}".format(url))

response = self.session.patch(url, json=data)
response = self._send_request_to_dnsaas('PATCH', url, json_data=data)
return response.status_code, self._response2result(response)

def delete_dns_record(self, record_id):
Expand Down
1 change: 1 addition & 0 deletions src/ralph/settings/base.py
Expand Up @@ -512,6 +512,7 @@ def get_sentinels(sentinels_string):
ENABLE_DNSAAS_INTEGRATION = bool_from_env('ENABLE_DNSAAS_INTEGRATION')
DNSAAS_URL = os.environ.get('DNSAAS_URL', '')
DNSAAS_TOKEN = os.environ.get('DNSAAS_TOKEN', '')
DNSAAS_TIMEOUT = os.environ.get('DNSAAS_TIMEOUT', 10)
DNSAAS_AUTO_PTR_ALWAYS = os.environ.get('DNSAAS_AUTO_PTR_ALWAYS', 2)
DNSAAS_AUTO_PTR_NEVER = os.environ.get('DNSAAS_AUTO_PTR_NEVER', 1)
# user in dnsaas which can do changes, like update TXT records etc.
Expand Down

0 comments on commit 25fb4c7

Please sign in to comment.