From 9d722f163a71d849868c77091efa695331c75b30 Mon Sep 17 00:00:00 2001 From: Martin Levy Date: Tue, 27 Dec 2016 10:26:03 -0800 Subject: [PATCH] added User-Agent support to help debug calls - should have been done on day zero - oh well --- CloudFlare/cloudflare.py | 6 +++++- CloudFlare/utils.py | 13 +++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CloudFlare/cloudflare.py b/CloudFlare/cloudflare.py index 6e1b1d4..5c2ff58 100644 --- a/CloudFlare/cloudflare.py +++ b/CloudFlare/cloudflare.py @@ -5,7 +5,7 @@ import requests from logger import Logger -from utils import sanitize_secrets +from utils import user_agent, sanitize_secrets from read_configs import read_configs from api_v4 import api_v4 from api_extras import api_extras @@ -27,6 +27,7 @@ def __init__(self, email, token, certtoken, base_url, debug, raw): self.certtoken = certtoken self.base_url = base_url self.raw = raw + self.user_agent = user_agent() if debug: self.logger = Logger(debug).getLogger() @@ -42,6 +43,7 @@ def call_with_no_auth(self, method, """ Cloudflare v4 API""" headers = { + 'User-Agent': self.user_agent, 'Content-Type': 'application/json' } return self._call(method, headers, @@ -60,6 +62,7 @@ def call_with_auth(self, method, if self.email is '' or self.token is '': raise CloudFlareAPIError(0, 'no email and/or token defined') headers = { + 'User-Agent': self.user_agent, 'X-Auth-Email': self.email, 'X-Auth-Key': self.token, 'Content-Type': 'application/json' @@ -80,6 +83,7 @@ def call_with_certauth(self, method, if self.certtoken is '' or self.certtoken is None: raise CloudFlareAPIError(0, 'no cert token defined') headers = { + 'User-Agent': self.user_agent, 'X-Auth-User-Service-Key': self.certtoken, 'Content-Type': 'application/json' } diff --git a/CloudFlare/utils.py b/CloudFlare/utils.py index b584271..c5d5331 100644 --- a/CloudFlare/utils.py +++ b/CloudFlare/utils.py @@ -1,5 +1,18 @@ """ misc utilities for Cloudflare API""" +import sys +import requests +from __init__ import __version__ + +def user_agent(): + """ misc utilities for Cloudflare API""" + # the default User-Agent is something like 'python-requests/2.11.1' + # this additional data helps support @ Cloudflare help customers + return ('python-cloudflare/' + __version__ + '/' + + 'python-requests/' + str(requests.__version__) + '/' + + 'python/' + '.'.join(map(str, sys.version_info[:3])) + ) + def sanitize_secrets(secrets): """ misc utilities for Cloudflare API""" redacted_phrase = 'REDACTED'