add alfred socket support (--alfred-sock)
This commit is contained in:
parent
c74b7b95fb
commit
6fba8ad21b
|
@ -11,7 +11,8 @@ from datetime import datetime
|
|||
import networkx as nx
|
||||
from networkx.readwrite import json_graph
|
||||
|
||||
from lib import alfred, graph, nodes
|
||||
from lib import graph, nodes
|
||||
from lib.alfred import Alfred
|
||||
from lib.batman import Batman
|
||||
from lib.rrddb import RRD
|
||||
|
||||
|
@ -34,6 +35,8 @@ def main(params):
|
|||
for node_id, node in nodedb['nodes'].items():
|
||||
node['flags']['online'] = False
|
||||
|
||||
alfred = Alfred(unix_sockpath=params['alfred_sock'])
|
||||
|
||||
nodes.import_nodeinfo(nodedb['nodes'], alfred.nodeinfo(),
|
||||
now, assume_online=True)
|
||||
|
||||
|
@ -91,6 +94,9 @@ if __name__ == '__main__':
|
|||
parser.add_argument('-m', '--mesh', action='append',
|
||||
default=['bat0'],
|
||||
help='batman mesh interface (defaults to bat0)')
|
||||
parser.add_argument('-s', '--alfred-sock',
|
||||
default=None,
|
||||
help='alfred unix socket path')
|
||||
parser.add_argument('-d', '--dest-dir', action='store',
|
||||
help='destination directory for generated files',
|
||||
required=True)
|
||||
|
|
|
@ -1,20 +1,35 @@
|
|||
import subprocess
|
||||
import json
|
||||
import os
|
||||
|
||||
|
||||
def _fetch(data_type):
|
||||
output = subprocess.check_output(
|
||||
["alfred-json", "-z", "-f", "json", "-r", str(data_type)])
|
||||
return json.loads(output.decode("utf-8")).values()
|
||||
class Alfred(object):
|
||||
"""
|
||||
Bindings for the alfred-json utility
|
||||
"""
|
||||
def __init__(self, unix_sockpath=None):
|
||||
if unix_sockpath:
|
||||
if os.path.exists(unix_sockpath):
|
||||
self.unix_sock = unix_sockpath
|
||||
else:
|
||||
raise RuntimeError('alfred: invalid unix socket path given')
|
||||
|
||||
def _fetch(self, data_type):
|
||||
cmd = ['alfred-json',
|
||||
'-z',
|
||||
'-f', 'json',
|
||||
'-r', data_type]
|
||||
if self.unix_sock:
|
||||
cmd.extend(['-s', self.unix_sock])
|
||||
|
||||
def nodeinfo():
|
||||
return _fetch(158)
|
||||
output = subprocess.check_output(cmd)
|
||||
return json.loads(output.decode("utf-8")).values()
|
||||
|
||||
def nodeinfo(self):
|
||||
return self._fetch(158)
|
||||
|
||||
def statistics():
|
||||
return _fetch(159)
|
||||
def statistics(self):
|
||||
return self._fetch(159)
|
||||
|
||||
|
||||
def vis():
|
||||
return _fetch(160)
|
||||
def vis(self):
|
||||
return self._fetch(160)
|
||||
|
|
Loading…
Reference in a new issue