auf dem Kartenserver mache ich folgendes: Wuppertal ist weiterhin auf bat0. GL auf bat-bcd und GM auf bat-rdv bis dahin nichts besonderes. Nun kommt der Trick mit anderem Socket:
alfred -m -b bat-bcd -i bat-bcd -u /var/run/alfred-bcd.sock
batadv-vis -s -i bat-bcd -u /var/run/alfred-bcd.sock
alfred -m -b bat-rdv -i bat-rdv -u /var/run/alfred-rdv.sock
batadv-vis -s -i bat-rdv -u /var/run/alfred-rdv.sock
und da ich alles vergessen habe, was ich über Python gelernt habe, habe ich den Backend auf die Schnelle gehackt. Beispiel für RDV:
--- a/alfred.py
+++ b/alfred.py
@@ -7,7 +7,7 @@ class alfred:
self.request_data_type = request_data_type
def aliases(self):
- output = subprocess.check_output(["alfred-json","-r",str(self.request_data_type),"-f","json","-z"])
+ output = subprocess.check_output(["alfred-json","-r",str(self.request_data_type),"-f","json","-z","-s","/var/run/alfred-rdv.sock"])
alfred_data = json.loads(output.decode("utf-8"))
alias = {}
for mac,node in alfred_data.items():
--- a/bat2nodes.py
+++ b/bat2nodes.py
@@ -38,6 +38,10 @@ parser.add_argument('-A', '--alfred', action='store_true',
parser.add_argument('-d', '--destination-directory', action='store',
help='destination directory for generated files',required=True)
+parser.add_argument('-u', '--unix-path', action='store',
+ default=["/var/run/alfred.sock"],
+ help='path to unix socket used for alfred server communication')
+
args = parser.parse_args()
options = vars(args)
--- a/batman.py
+++ b/batman.py
@@ -36,14 +36,14 @@ class batman:
def vis_data_batadv_vis(self):
""" Parse "batadv-vis -i <mesh_interface> -f json" into an array of dictionaries.
"""
- output = subprocess.check_output(["batadv-vis","-i",self.mesh_interface,"-f","json"])
+ output = subprocess.check_output(["batadv-vis","-u","/var/run/alfred-rdv.sock","-f","json"])
lines = output.splitlines()
return self.vis_data_helper(lines)
def gateway_list(self):
""" Parse "batctl -m <mesh_interface> gwl -n" into an array of dictionaries.
"""
- output = subprocess.check_output(["batctl","-m",self.mesh_interface,"gwl","-n"])
+ output = subprocess.check_output(["batctl","-m","bat-rdv","gwl","-n"])
output_utf8 = output.decode("utf-8")
lines = output_utf8.splitlines()
das war 's. Dazu wurde bereits etwas geschrieben Fehler bei der Anzahl der Clients - #4 von phip