Remedy all the complaints from pylint

This commit is contained in:
2024-07-03 18:51:10 +02:00
parent f24b186ef6
commit dcbdf4feca

View File

@@ -1,8 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
'''httpd component of routerstats'''
import logging import logging
from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
import io
import sys import sys
import os import os
from functools import partial from functools import partial
@@ -17,7 +17,9 @@ logging.basicConfig(
datefmt='%Y-%m-%d %H:%M:%S') datefmt='%Y-%m-%d %H:%M:%S')
class RequestHandler(SimpleHTTPRequestHandler): class RequestHandler(SimpleHTTPRequestHandler):
'''Extended SimpleHTTPRequestHandler'''
def serve_png(self): def serve_png(self):
'''Give a client a png file'''
self.send_response(200) self.send_response(200)
self.send_header('Content-type', 'image/png') self.send_header('Content-type', 'image/png')
self.end_headers() self.end_headers()
@@ -51,17 +53,28 @@ class RequestHandler(SimpleHTTPRequestHandler):
else: else:
title = 'monthly' title = 'monthly'
startstr = '--start=end-1M' startstr = '--start=end-1M'
data = rrdtool.graphv("-", startstr, "--title=" + title, "DEF:in=" + self.rrdfile + ":net_dnat:AVERAGE", "DEF:out=" + self.rrdfile + ":loc-net:AVERAGE", "CDEF:result_in=in,UN,0,in,IF", "CDEF:tmp_out=out,UN,0,out,IF", "CDEF:result_out=tmp_out,-1,*", "AREA:result_in#00ff00:in", "AREA:result_out#0000ff:out") data = rrdtool.graphv(
"-",
startstr,
"--title=" + title,
"DEF:in=" + self.rrdfile + ":net_dnat:AVERAGE", #pylint: disable=no-member
"DEF:out=" + self.rrdfile + ":loc-net:AVERAGE", #pylint: disable=no-member
"CDEF:result_in=in,UN,0,in,IF",
"CDEF:tmp_out=out,UN,0,out,IF",
"CDEF:result_out=tmp_out,-1,*",
"AREA:result_in#00ff00:in",
"AREA:result_out#0000ff:out")
#, "--width", "1024", "--height", "600" #, "--width", "1024", "--height", "600"
self.wfile.write(data['image']) self.wfile.write(data['image'])
break break
except rrdtool.OperationalError as error: except rrdtool.OperationalError as error:
retries += 1 retries += 1
if retries > 10: if retries > 10:
logging.error('Could not graphv the data: ' + str(error)) logging.error('Could not graphv the data: %s', error)
break break
def errorpage(self, errorcode, errormsg: str = ''): def errorpage(self, errorcode, errormsg: str = ''):
'''Give client an errorpage'''
self.send_response(errorcode) self.send_response(errorcode)
self.send_header('Content-type', 'text/plain') self.send_header('Content-type', 'text/plain')
self.end_headers() self.end_headers()
@@ -69,6 +82,7 @@ class RequestHandler(SimpleHTTPRequestHandler):
self.wfile.write(errormsg.encode('utf-8')) self.wfile.write(errormsg.encode('utf-8'))
def do_GET(self): def do_GET(self):
'''Reply to a GET request'''
if self.path == '/': if self.path == '/':
self.send_response(200) self.send_response(200)
self.send_header('Content-type', 'text/html') self.send_header('Content-type', 'text/html')
@@ -82,6 +96,7 @@ class RequestHandler(SimpleHTTPRequestHandler):
self.send_error(404, str(self.path)) self.send_error(404, str(self.path))
def print_page(self): def print_page(self):
'''Print pretty html page'''
self.wfile.write("<html><body>".encode('utf-8')) self.wfile.write("<html><body>".encode('utf-8'))
self.wfile.write('<img src="/graph/monthly">'.encode('utf-8')) self.wfile.write('<img src="/graph/monthly">'.encode('utf-8'))
self.wfile.write('<img src="/graph/weekly">'.encode('utf-8')) self.wfile.write('<img src="/graph/weekly">'.encode('utf-8'))
@@ -96,6 +111,7 @@ class CustomHandler(RequestHandler):
def server(rrdfile, port): def server(rrdfile, port):
'''Start server'''
server_address = ('', port) server_address = ('', port)
server_class = ThreadingHTTPServer server_class = ThreadingHTTPServer
handler_class = partial(CustomHandler, rrdfile) handler_class = partial(CustomHandler, rrdfile)
@@ -103,6 +119,7 @@ def server(rrdfile, port):
httpd.serve_forever() httpd.serve_forever()
def main(): def main():
'''This be main'''
config_section = 'httpd' config_section = 'httpd'
config = configparser.ConfigParser() config = configparser.ConfigParser()
@@ -111,12 +128,12 @@ def main():
parser.add_argument('-c', '--config', help='config file to load') parser.add_argument('-c', '--config', help='config file to load')
parser.add_argument('-d', '--debug', action='store_true', help='enable debug') parser.add_argument('-d', '--debug', action='store_true', help='enable debug')
args, remaining_args = parser.parse_known_args() args, _ = parser.parse_known_args()
if args.debug: if args.debug:
logging.root.setLevel(logging.DEBUG) logging.root.setLevel(logging.DEBUG)
logging.debug('Starting as PID ' + str(os.getpid())) logging.debug('Starting as PID %s', os.getpid())
found = False found = False
if args.config: if args.config:
@@ -138,8 +155,17 @@ def main():
logging.error('No config file found') logging.error('No config file found')
sys.exit(0) sys.exit(0)
parser.add_argument('-v', '--vardir', help='directory storing rrd file', default=config[config_section]['var_dir']) parser.add_argument(
parser.add_argument('-p', '--port', help='port to bind to', type=int, default=config[config_section]['port']) '-v',
'--vardir',
help='directory storing rrd file',
default=config[config_section]['var_dir'])
parser.add_argument(
'-p',
'--port',
help='port to bind to',
type=int,
default=config[config_section]['port'])
args = parser.parse_args() args = parser.parse_args()
logging.debug(args) logging.debug(args)