mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-02 19:58:03 +00:00
LFRequest.py: converting if(debug):print() to self.logger.debug() statements
This change hooks into the global python logging instance and exercises level based logging without more advanced logic like "digest/json/http/gui" as documented elsewhere. Need to establish the correctness of this usage before moving forward. Signed-off-by: Jed Reynolds <jed@bitratchet.com>
This commit is contained in:
@@ -3,9 +3,10 @@
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# Class holds default settings for json requests -
|
# Class holds default settings for json requests -
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
import logging
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import pprint
|
from pprint import pprint, pformat, PrettyPrinter
|
||||||
import urllib
|
import urllib
|
||||||
from urllib import request
|
from urllib import request
|
||||||
import json
|
import json
|
||||||
@@ -17,7 +18,7 @@ if sys.version_info[0] != 3:
|
|||||||
|
|
||||||
sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../../")))
|
sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../../")))
|
||||||
|
|
||||||
debug_printer = pprint.PrettyPrinter(indent=2)
|
debug_printer = PrettyPrinter(indent=2)
|
||||||
|
|
||||||
class LFRequest:
|
class LFRequest:
|
||||||
Default_Base_URL = "http://localhost:8080"
|
Default_Base_URL = "http://localhost:8080"
|
||||||
@@ -26,6 +27,7 @@ class LFRequest:
|
|||||||
post_data = No_Data
|
post_data = No_Data
|
||||||
default_headers = { 'Accept': 'application/json'}
|
default_headers = { 'Accept': 'application/json'}
|
||||||
proxies = None
|
proxies = None
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
def __init__(self, url=None,
|
def __init__(self, url=None,
|
||||||
uri=None,
|
uri=None,
|
||||||
@@ -61,7 +63,7 @@ class LFRequest:
|
|||||||
# pprint.pprint(self.proxies)
|
# pprint.pprint(self.proxies)
|
||||||
|
|
||||||
if not url.startswith("http://") and not url.startswith("https://"):
|
if not url.startswith("http://") and not url.startswith("https://"):
|
||||||
print("No http:// or https:// found, prepending http:// to "+url)
|
self.logger.warning("No http:// or https:// found, prepending http:// to "+url)
|
||||||
url = "http://" + url
|
url = "http://" + url
|
||||||
if uri is not None:
|
if uri is not None:
|
||||||
if not url.endswith('/') and not uri.startswith('/'):
|
if not url.endswith('/') and not uri.startswith('/'):
|
||||||
@@ -83,8 +85,7 @@ class LFRequest:
|
|||||||
self.requested_url = self.requested_url.replace('#', '%23')
|
self.requested_url = self.requested_url.replace('#', '%23')
|
||||||
if (self.requested_url.find(' ') >= 1):
|
if (self.requested_url.find(' ') >= 1):
|
||||||
self.requested_url = self.requested_url.replace(' ', '+')
|
self.requested_url = self.requested_url.replace(' ', '+')
|
||||||
if self.debug:
|
self.logger.debug("new LFRequest[%s]" % self.requested_url )
|
||||||
print("new LFRequest[%s]" % self.requested_url )
|
|
||||||
|
|
||||||
# request first url on stack
|
# request first url on stack
|
||||||
def formPost(self, show_error=True, debug=False, die_on_error_=False):
|
def formPost(self, show_error=True, debug=False, die_on_error_=False):
|
||||||
@@ -104,19 +105,17 @@ class LFRequest:
|
|||||||
request.install_opener(opener)
|
request.install_opener(opener)
|
||||||
|
|
||||||
|
|
||||||
if (debug):
|
self.logger.debug("formPost: url: "+self.requested_url)
|
||||||
print("formPost: url: "+self.requested_url)
|
|
||||||
if ((self.post_data != None) and (self.post_data is not self.No_Data)):
|
if ((self.post_data != None) and (self.post_data is not self.No_Data)):
|
||||||
urlenc_data = urllib.parse.urlencode(self.post_data).encode("utf-8")
|
urlenc_data = urllib.parse.urlencode(self.post_data).encode("utf-8")
|
||||||
if (debug):
|
self.logger.debug("formPost: data looks like:" + str(urlenc_data))
|
||||||
print("formPost: data looks like:" + str(urlenc_data))
|
self.logger.debug("formPost: url: "+self.requested_url)
|
||||||
print("formPost: url: "+self.requested_url)
|
|
||||||
myrequest = request.Request(url=self.requested_url,
|
myrequest = request.Request(url=self.requested_url,
|
||||||
data=urlenc_data,
|
data=urlenc_data,
|
||||||
headers=self.default_headers)
|
headers=self.default_headers)
|
||||||
else:
|
else:
|
||||||
myrequest = request.Request(url=self.requested_url, headers=self.default_headers)
|
myrequest = request.Request(url=self.requested_url, headers=self.default_headers)
|
||||||
print("No data for this formPost?")
|
self.logger.error("No data for this formPost?")
|
||||||
|
|
||||||
myrequest.headers['Content-type'] = 'application/x-www-form-urlencoded'
|
myrequest.headers['Content-type'] = 'application/x-www-form-urlencoded'
|
||||||
|
|
||||||
@@ -166,7 +165,7 @@ class LFRequest:
|
|||||||
headers=self.default_headers)
|
headers=self.default_headers)
|
||||||
else:
|
else:
|
||||||
myrequest = request.Request(url=self.requested_url, headers=self.default_headers)
|
myrequest = request.Request(url=self.requested_url, headers=self.default_headers)
|
||||||
print("No data for this jsonPost?")
|
self.logger.error("No data for this jsonPost?")
|
||||||
|
|
||||||
myrequest.headers['Content-type'] = 'application/json'
|
myrequest.headers['Content-type'] = 'application/json'
|
||||||
|
|
||||||
@@ -176,22 +175,22 @@ class LFRequest:
|
|||||||
resp = urllib.request.urlopen(myrequest)
|
resp = urllib.request.urlopen(myrequest)
|
||||||
resp_data = resp.read().decode('utf-8')
|
resp_data = resp.read().decode('utf-8')
|
||||||
if (debug and die_on_error_):
|
if (debug and die_on_error_):
|
||||||
print("----- LFRequest::json_post:128 debug: --------------------------------------------")
|
self.logger.debug("----- LFRequest::json_post:128 debug: --------------------------------------------")
|
||||||
print("URL: %s :%d "% (self.requested_url, resp.status))
|
self.logger.debug("URL: %s :%d "% (self.requested_url, resp.status))
|
||||||
if resp.status != 200:
|
if resp.status != 200:
|
||||||
debug_printer.pprint(resp.getheaders())
|
self.logger.debug(pformat(resp.getheaders()))
|
||||||
print("----- resp_data:128 -------------------------------------------------")
|
self.logger.debug("----- resp_data:128 -------------------------------------------------")
|
||||||
print(resp_data)
|
self.logger.debug(resp_data)
|
||||||
print("-------------------------------------------------")
|
self.logger.debug("-------------------------------------------------")
|
||||||
responses.append(resp)
|
responses.append(resp)
|
||||||
if response_json_list_ is not None:
|
if response_json_list_ is not None:
|
||||||
if type(response_json_list_) is not list:
|
if type(response_json_list_) is not list:
|
||||||
raise ValueError("reponse_json_list_ needs to be type list")
|
raise ValueError("reponse_json_list_ needs to be type list")
|
||||||
j = json.loads(resp_data)
|
j = json.loads(resp_data)
|
||||||
if debug:
|
if debug:
|
||||||
print("----- LFRequest::json_post:140 debug: --------------------------------------------")
|
self.logger.debug("----- LFRequest::json_post:140 debug: --------------------------------------------")
|
||||||
debug_printer.pprint(j)
|
self.logger.debug(pformat(j))
|
||||||
print("-------------------------------------------------")
|
self.logger.debug("-------------------------------------------------")
|
||||||
response_json_list_.append(j)
|
response_json_list_.append(j)
|
||||||
return responses[0]
|
return responses[0]
|
||||||
|
|
||||||
@@ -231,7 +230,7 @@ class LFRequest:
|
|||||||
if self.die_on_error == True:
|
if self.die_on_error == True:
|
||||||
die_on_error_ = True
|
die_on_error_ = True
|
||||||
if debug:
|
if debug:
|
||||||
print("LFUtils.get: url: "+self.requested_url)
|
self.logger.debug("LFUtils.get: url: "+self.requested_url)
|
||||||
|
|
||||||
# https://stackoverflow.com/a/59635684/11014343
|
# https://stackoverflow.com/a/59635684/11014343
|
||||||
if (self.proxies is not None) and (len(self.proxies) > 0):
|
if (self.proxies is not None) and (len(self.proxies) > 0):
|
||||||
@@ -279,8 +278,7 @@ class LFRequest:
|
|||||||
self.print_errors()
|
self.print_errors()
|
||||||
return None
|
return None
|
||||||
if responses[0] == None:
|
if responses[0] == None:
|
||||||
if debug_:
|
self.logger.debug("No response from "+self.requested_url)
|
||||||
print("No response from "+self.requested_url)
|
|
||||||
return None
|
return None
|
||||||
json_data = json.loads(responses[0].read().decode('utf-8'))
|
json_data = json.loads(responses[0].read().decode('utf-8'))
|
||||||
return json_data
|
return json_data
|
||||||
@@ -301,10 +299,10 @@ class LFRequest:
|
|||||||
|
|
||||||
def print_errors(self):
|
def print_errors(self):
|
||||||
if not self.has_errors:
|
if not self.has_errors:
|
||||||
print("---------- no errors ----------")
|
self.logger.debug("---------- no errors ----------")
|
||||||
return
|
return
|
||||||
for err in self.error_list:
|
for err in self.error_list:
|
||||||
print("error: %s" % err)
|
self.logger.error("error: %s" % err)
|
||||||
|
|
||||||
def plain_get(url_=None, debug_=False, die_on_error_=False, proxies_=None):
|
def plain_get(url_=None, debug_=False, die_on_error_=False, proxies_=None):
|
||||||
"""
|
"""
|
||||||
@@ -345,16 +343,16 @@ def plain_get(url_=None, debug_=False, die_on_error_=False, proxies_=None):
|
|||||||
|
|
||||||
|
|
||||||
def print_diagnostics(url_=None, request_=None, responses_=None, error_=None, error_list_=None, debug_=False):
|
def print_diagnostics(url_=None, request_=None, responses_=None, error_=None, error_list_=None, debug_=False):
|
||||||
if debug_:
|
logger = logging.getLogger(__name__)
|
||||||
print("LFRequest::print_diagnostics: error_.__class__: %s"%error_.__class__)
|
#logger.error("LFRequest::print_diagnostics: error_.__class__: %s"%error_.__class__)
|
||||||
debug_printer.pprint(error_)
|
#logger.error(pformat(error_))
|
||||||
|
|
||||||
if url_ is None:
|
if url_ is None:
|
||||||
print("WARNING LFRequest::print_diagnostics: url_ is None")
|
logger.warning("WARNING LFRequest::print_diagnostics: url_ is None")
|
||||||
if request_ is None:
|
if request_ is None:
|
||||||
print("WARNING LFRequest::print_diagnostics: request_ is None")
|
logger.warning("WARNING LFRequest::print_diagnostics: request_ is None")
|
||||||
if error_ is None:
|
if error_ is None:
|
||||||
print("WARNING LFRequest::print_diagnostics: error_ is None")
|
logger.warning("WARNING LFRequest::print_diagnostics: error_ is None")
|
||||||
|
|
||||||
method = 'NA'
|
method = 'NA'
|
||||||
if (hasattr(request_, 'method')):
|
if (hasattr(request_, 'method')):
|
||||||
@@ -380,48 +378,46 @@ def print_diagnostics(url_=None, request_=None, responses_=None, error_=None, er
|
|||||||
if headername.startswith("X-Error-"):
|
if headername.startswith("X-Error-"):
|
||||||
xerrors.append("%s: %s" % (headername, err_headers.get(headername)))
|
xerrors.append("%s: %s" % (headername, err_headers.get(headername)))
|
||||||
if len(xerrors) > 0:
|
if len(xerrors) > 0:
|
||||||
print(" = = LANforge Error Messages = =")
|
logger.error(" = = LANforge Error Messages = =")
|
||||||
print(" = = URL: %s" % err_full_url)
|
logger.error(" = = URL: %s" % err_full_url)
|
||||||
for xerr in xerrors:
|
for xerr in xerrors:
|
||||||
print(xerr)
|
logger.error(xerr)
|
||||||
if (error_list_ is not None) and isinstance(error_list_, list):
|
if (error_list_ is not None) and isinstance(error_list_, list):
|
||||||
error_list_.append(xerr)
|
error_list_.append(xerr)
|
||||||
print(" = = = = = = = = = = = = = = = =")
|
logger.error(" = = = = = = = = = = = = = = = =")
|
||||||
|
|
||||||
if (error_.__class__ is urllib.error.HTTPError):
|
if (error_.__class__ is urllib.error.HTTPError):
|
||||||
if debug_:
|
logger.debug("----- LFRequest: HTTPError: --------------------------------------------")
|
||||||
print("----- LFRequest: HTTPError: --------------------------------------------")
|
logger.debug("%s <%s> HTTP %s: %s" % (method, err_full_url, err_code, err_reason))
|
||||||
print("%s <%s> HTTP %s: %s" % (method, err_full_url, err_code, err_reason))
|
|
||||||
|
|
||||||
if err_code == 404:
|
if err_code == 404:
|
||||||
if (error_list_ is not None) and isinstance(error_list_, list):
|
if (error_list_ is not None) and isinstance(error_list_, list):
|
||||||
error_list_.append("[%s HTTP %s] <%s> : %s" % (method, err_code, err_full_url, err_reason))
|
error_list_.append("[%s HTTP %s] <%s> : %s" % (method, err_code, err_full_url, err_reason))
|
||||||
else:
|
else:
|
||||||
if debug_:
|
logger.debug(" Content-type:[%s] Accept[%s]" % (request_.get_header('Content-type'), request_.get_header('Accept')))
|
||||||
print(" Content-type:[%s] Accept[%s]" % (request_.get_header('Content-type'), request_.get_header('Accept')))
|
|
||||||
|
|
||||||
if hasattr(request_, "data") and (request_.data is not None):
|
if hasattr(request_, "data") and (request_.data is not None):
|
||||||
print(" Data:")
|
logger.debug(" Data:")
|
||||||
debug_printer.pprint(request_.data)
|
logger.debug(debug_printer.pformat(request_.data))
|
||||||
elif debug_:
|
elif debug_:
|
||||||
print(" <no request data>")
|
logger.debug(" <no request data>")
|
||||||
|
|
||||||
if debug_ and (len(err_headers) > 0):
|
if len(err_headers) > 0:
|
||||||
# the HTTPError is of type HTTPMessage a subclass of email.message
|
# the HTTPError is of type HTTPMessage a subclass of email.message
|
||||||
print(" Response Headers: ")
|
logger.debug(" Response Headers: ")
|
||||||
for headername in sorted(err_headers.keys()):
|
for headername in sorted(err_headers.keys()):
|
||||||
print(" %s: %s" % (headername, err_headers.get(headername)))
|
logger.debug(" %s: %s" % (headername, err_headers.get(headername)))
|
||||||
|
|
||||||
if len(responses_) > 0:
|
if len(responses_) > 0:
|
||||||
print("----- Response: --------------------------------------------------------")
|
logger.debug("----- Response: --------------------------------------------------------")
|
||||||
debug_printer.pprint(responses_[0].reason)
|
logger.debug(debug_printer.pformat(responses_[0].reason))
|
||||||
if debug_:
|
|
||||||
print("------------------------------------------------------------------------")
|
logger.debug("------------------------------------------------------------------------")
|
||||||
return
|
return
|
||||||
|
|
||||||
if (error_.__class__ is urllib.error.URLError):
|
if (error_.__class__ is urllib.error.URLError):
|
||||||
print("----- LFRequest: URLError: ---------------------------------------------")
|
logger.error("----- LFRequest: URLError: ---------------------------------------------")
|
||||||
print("%s <%s> HTTP %s: %s" % (method, err_full_url, err_code, err_reason))
|
logger.error("%s <%s> HTTP %s: %s" % (method, err_full_url, err_code, err_reason))
|
||||||
print("------------------------------------------------------------------------")
|
logger.error("------------------------------------------------------------------------")
|
||||||
|
|
||||||
# ~LFRequest
|
# ~LFRequest
|
||||||
|
|||||||
Reference in New Issue
Block a user