31 lines
789 B
Python
31 lines
789 B
Python
|
import os
|
||
|
from ffmap.rrd.rrds import NodeRRD, GlobalRRD
|
||
|
|
||
|
class Output:
|
||
|
def __init__(self, directory="nodedb"):
|
||
|
self.directory = directory
|
||
|
try:
|
||
|
os.mkdir(self.directory)
|
||
|
except OSError:
|
||
|
pass
|
||
|
|
||
|
def output(self, nodedb):
|
||
|
nodes = set(nodedb.values())
|
||
|
clients = 0
|
||
|
nodecount = 0
|
||
|
for node in nodes:
|
||
|
clients += len(node.get("clients", []))
|
||
|
nodecount += 1
|
||
|
NodeRRD(
|
||
|
os.path.join(
|
||
|
self.directory,
|
||
|
str(node.id).replace(':', '') + '.rrd'
|
||
|
),
|
||
|
node
|
||
|
).update()
|
||
|
|
||
|
GlobalRRD(os.path.join(self.directory, "nodes.rrd")).update(
|
||
|
nodecount,
|
||
|
clients
|
||
|
)
|