Fix LFRequest.get so it inherits debug commands from the class

Signed-off-by: Matthew Stidham <stidmatt@gmail.com>
This commit is contained in:
Matthew Stidham
2021-11-08 18:52:03 -08:00
parent 8b86e89033
commit c4511ad39a
3 changed files with 41 additions and 49 deletions

View File

@@ -6,7 +6,7 @@
import logging
import sys
import os
from pprint import pprint, pformat, PrettyPrinter
from pprint import pformat, PrettyPrinter
import urllib
from urllib import request
import json
@@ -220,16 +220,10 @@ class LFRequest:
method_='PUT')
def json_delete(self, show_error=True, debug=False, die_on_error_=False, response_json_list_=None):
return self.get_as_json(debug_=debug,
die_on_error_=die_on_error_,
method_='DELETE')
return self.get_as_json(method_='DELETE')
def get(self, debug=False, die_on_error_=False, method_='GET'):
if self.debug == True:
debug = True
if self.die_on_error == True:
die_on_error_ = True
if debug:
def get(self, method_='GET'):
if self.debug:
self.logger.debug("LFUtils.get: url: "+self.requested_url)
# https://stackoverflow.com/a/59635684/11014343
@@ -239,8 +233,8 @@ class LFRequest:
request.install_opener(opener)
myrequest = request.Request(url=self.requested_url,
headers=self.default_headers,
method=method_)
headers=self.default_headers,
method=method_)
myresponses = []
try:
myresponses.append(request.urlopen(myrequest))
@@ -252,7 +246,7 @@ class LFRequest:
responses_=myresponses,
error_=error,
error_list_=self.error_list,
debug_=debug)
debug_=self.debug)
except urllib.error.URLError as uerror:
print_diagnostics(url_=self.requested_url,
@@ -260,24 +254,23 @@ class LFRequest:
responses_=myresponses,
error_=uerror,
error_list_=self.error_list,
debug_=debug)
debug_=self.debug)
if die_on_error_ == True:
if self.die_on_error is True:
exit(1)
return None
def getAsJson(self, die_on_error_=False, debug_=False):
return self.get_as_json(die_on_error_=die_on_error_, debug_=debug_)
def getAsJson(self):
return self.get_as_json()
def get_as_json(self, die_on_error_=False, debug_=False, method_='GET'):
responses = []
j = self.get(debug=debug_, die_on_error_=die_on_error_, method_=method_)
responses.append(j)
def get_as_json(self, method_='GET'):
responses = list()
responses.append(self.get(method_=method_))
if len(responses) < 1:
if debug_ and self.has_errors():
if self.debug and self.has_errors():
self.print_errors()
return None
if responses[0] == None:
if responses[0] is None:
self.logger.debug("No response from "+self.requested_url)
return None
json_data = json.loads(responses[0].read().decode('utf-8'))
@@ -355,7 +348,7 @@ def print_diagnostics(url_=None, request_=None, responses_=None, error_=None, er
logger.warning("WARNING LFRequest::print_diagnostics: error_ is None")
method = 'NA'
if (hasattr(request_, 'method')):
if hasattr(request_, 'method'):
method = request_.method
err_code = 0
err_reason = 'NA'
@@ -373,7 +366,7 @@ def print_diagnostics(url_=None, request_=None, responses_=None, error_=None, er
if err_code == 404:
xerrors.append("[%s HTTP %s] <%s> : %s" % (method, err_code, err_full_url, err_reason))
else:
if (len(err_headers) > 0):
if len(err_headers) > 0:
for headername in sorted(err_headers.keys()):
if headername.startswith("X-Error-"):
xerrors.append("%s: %s" % (headername, err_headers.get(headername)))
@@ -386,7 +379,7 @@ def print_diagnostics(url_=None, request_=None, responses_=None, error_=None, er
error_list_.append(xerr)
logger.error(" = = = = = = = = = = = = = = = =")
if (error_.__class__ is urllib.error.HTTPError):
if error_.__class__ is urllib.error.HTTPError:
logger.debug("----- LFRequest: HTTPError: --------------------------------------------")
logger.debug("%s <%s> HTTP %s: %s" % (method, err_full_url, err_code, err_reason))
@@ -415,7 +408,7 @@ def print_diagnostics(url_=None, request_=None, responses_=None, error_=None, er
logger.debug("------------------------------------------------------------------------")
return
if (error_.__class__ is urllib.error.URLError):
if error_.__class__ is urllib.error.URLError:
logger.error("----- LFRequest: URLError: ---------------------------------------------")
logger.error("%s <%s> HTTP %s: %s" % (method, err_full_url, err_code, err_reason))
logger.error("------------------------------------------------------------------------")

View File

@@ -18,7 +18,6 @@ if sys.version_info[0] != 3:
print("This script requires Python 3")
exit()
sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../../")))
LFRequest = importlib.import_module("py-json.LANforge.LFRequest")
@@ -421,9 +420,9 @@ def find_port_eids(resource_id=1, base_url="http://localhost:8080", port_names=(
port_url = "/port/1"
for port_name in port_names:
uri = "%s/%s/%s" % (port_url, resource_id, port_name)
lf_r = LFRequest.LFRequest(base_url, uri)
lf_r = LFRequest.LFRequest(base_url, uri, debug_=debug)
try:
response = lf_r.getAsJson(debug)
response = lf_r.getAsJson()
if response is None:
continue
port_eids.append(PortEID(response))
@@ -445,8 +444,8 @@ def wait_until_ports_admin_down(resource_id=1, base_url="http://localhost:8080",
up_stations = []
for port_name in port_list:
uri = "%s/%s/%s?fields=device,down" % (port_url, resource_id, port_name)
lf_r = LFRequest.LFRequest(base_url, uri)
json_response = lf_r.getAsJson(debug_=False)
lf_r = LFRequest.LFRequest(base_url, uri, debug_=debug_)
json_response = lf_r.getAsJson()
if json_response == None:
if debug_:
print("port %s disappeared" % port_name)
@@ -472,8 +471,8 @@ def wait_until_ports_admin_up(resource_id=1, base_url="http://localhost:8080", p
down_stations = []
for port_name in port_list:
uri = "%s/%s/%s?fields=device,down" % (port_url, resource_id, port_name)
lf_r = LFRequest.LFRequest(base_url, uri)
json_response = lf_r.getAsJson(debug_=False)
lf_r = LFRequest.LFRequest(base_url, uri, debug_=debug_)
json_response = lf_r.getAsJson()
if json_response == None:
if debug_:
print("port %s appeared" % port_name)
@@ -525,8 +524,8 @@ def wait_until_ports_disappear(base_url="http://localhost:8080", port_list=(), d
("check_url", check_url),
])
lf_r = LFRequest.LFRequest(base_url, check_url, debug_=debug)
json_response = lf_r.get_as_json(debug_=debug, die_on_error_=False)
if (json_response == None):
json_response = lf_r.get_as_json()
if json_response is None:
print("LFUtils::wait_until_ports_disappear:: Request returned None: [{}]".format(base_url + check_url))
else:
if debug:
@@ -635,15 +634,15 @@ def wait_until_ports_appear(base_url="http://localhost:8080", port_list=(), debu
port_name = eid[2]
# print("waiting for sta sta "+port_eid)
uri = "%s/%s/%s" % (port_url, resource_id, port_name)
lf_r = LFRequest.LFRequest(base_url, uri)
json_response = lf_r.getAsJson(debug_=False)
if (json_response != None):
lf_r = LFRequest.LFRequest(base_url, uri, debug_=debug)
json_response = lf_r.getAsJson()
if json_response is not None:
found_stations.append(port_name)
else:
lf_r = LFRequest.LFRequest(base_url, ncshow_url)
lf_r = LFRequest.LFRequest(base_url, ncshow_url, debug_=debug)
lf_r.addPostData({"shelf": shelf, "resource": resource_id, "port": port_name, "probe_flags": 5})
lf_r.jsonPost()
if (len(found_stations) < len(port_list)):
if len(found_stations) < len(port_list):
sleep(2)
if debug:
@@ -676,12 +675,12 @@ def wait_until_endps(base_url="http://localhost:8080", endp_list=(), debug=False
port_name = eid[2]
uri = "%s/%s/%s" % (port_url, resource_id, port_name)
lf_r = LFRequest.LFRequest(base_url, uri)
json_response = lf_r.getAsJson(debug_=False)
if (json_response != None):
lf_r = LFRequest.LFRequest(base_url, uri, debug_=debug)
json_response = lf_r.getAsJson()
if json_response is not None:
found_stations.append(port_name)
else:
lf_r = LFRequest.LFRequest(base_url, ncshow_url)
lf_r = LFRequest.LFRequest(base_url, ncshow_url, debug_=debug)
lf_r.addPostData({"shelf": shelf, "resource": resource_id, "port": port_name, "flags": 1})
lf_r.formPost()
if (len(found_stations) < len(endp_list)):
@@ -700,7 +699,7 @@ def remove_port(resource, port_name, baseurl="http://localhost:8080/", debug=Fal
if debug:
print("Removing port %d.%s" % (resource, port_name))
url = "/cli-json/rm_vlan"
lf_r = LFRequest.LFRequest(baseurl, url)
lf_r = LFRequest.LFRequest(baseurl, url, debug_=debug)
lf_r.addPostData({
"shelf": 1,
"resource": resource,
@@ -722,7 +721,7 @@ def remove_cx(baseurl, cx_names, debug=False):
"test_mgr": "all",
"cx_name": name
}
lf_r = LFRequest.LFRequest(baseurl, url)
lf_r = LFRequest.LFRequest(baseurl, url, debug_=debug)
lf_r.addPostData(data)
lf_r.jsonPost(debug)
@@ -735,7 +734,7 @@ def remove_endps(baseurl, endp_names, debug=False):
if debug:
print("Removing endp %s" % ", ".join(endp_names))
url = "/cli-json/rm_endp"
lf_r = LFRequest.LFRequest(baseurl, url)
lf_r = LFRequest.LFRequest(baseurl, url, debug_=debug)
for name in endp_names:
data = {
"endp_name": name

View File

@@ -321,7 +321,7 @@ class LFCliBase:
proxies_=self.proxy,
debug_=debug_,
die_on_error_=self.exit_on_error)
json_response = lf_r.get_as_json(debug_=debug_, die_on_error_=False)
json_response = lf_r.get_as_json()
#debug_printer.pprint(json_response)
if (json_response is None):
if debug_: