Add wrapper, so we can get an __init__ in that does what I expect:)
This commit is contained in:
@@ -4,6 +4,7 @@ import logging
|
|||||||
from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
|
from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
|
||||||
import io
|
import io
|
||||||
import sys
|
import sys
|
||||||
|
from functools import partial
|
||||||
|
|
||||||
import rrdtool
|
import rrdtool
|
||||||
|
|
||||||
@@ -47,7 +48,7 @@ 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.filename + ":net_dnat:AVERAGE", "DEF:out=" + self.filename + ":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.rrdfilename + ":net_dnat:AVERAGE", "DEF:out=" + self.rrdfilename + ":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")
|
||||||
#, "--width", "1024", "--height", "600"
|
#, "--width", "1024", "--height", "600"
|
||||||
self.wfile.write(data['image'])
|
self.wfile.write(data['image'])
|
||||||
break
|
break
|
||||||
@@ -84,18 +85,23 @@ class RequestHandler(SimpleHTTPRequestHandler):
|
|||||||
self.wfile.write('<img src="/graph/daily">'.encode('utf-8'))
|
self.wfile.write('<img src="/graph/daily">'.encode('utf-8'))
|
||||||
self.wfile.write("</body></html>".encode('utf-8'))
|
self.wfile.write("</body></html>".encode('utf-8'))
|
||||||
|
|
||||||
def set_rrd_file(self, filename: str):
|
class CustomHandler(RequestHandler):
|
||||||
self.filename = filename
|
'''wrapping the wrapped one, so we can wrap in an init'''
|
||||||
|
def __init__(self, rrdfilename, *args, **kwargs):
|
||||||
|
self.rrdfilename = rrdfilename
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
def server(server_class=ThreadingHTTPServer, handler_class=RequestHandler, rrdfilename="test.rrd"):
|
|
||||||
|
def server(rrdfilename="test.rrd"):
|
||||||
server_address = ('', 8000)
|
server_address = ('', 8000)
|
||||||
|
server_class = ThreadingHTTPServer
|
||||||
|
handler_class = partial(CustomHandler, rrdfilename)
|
||||||
httpd = server_class(server_address, handler_class)
|
httpd = server_class(server_address, handler_class)
|
||||||
httpd.handler_class.set_rrd_file(rrdfilename)
|
|
||||||
httpd.serve_forever()
|
httpd.serve_forever()
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
if len(sys.argv) > 1:
|
if len(sys.argv) > 1:
|
||||||
server(rrdfilename=sys.argv[1])
|
server(sys.argv[1])
|
||||||
else:
|
else:
|
||||||
server()
|
server()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user