|
@@ -129,25 +129,33 @@ def ffpb_findnode(name):
|
|
|
return node
|
|
|
|
|
|
# still not found -> try peers_repo
|
|
|
- peerfilename = '/home/ffpb-statusbot/knoten/' + name
|
|
|
+ peer_name = None
|
|
|
peer_mac = None
|
|
|
|
|
|
- if os.path.exists(peerfilename):
|
|
|
- peerfile = open(peerfilename, "r")
|
|
|
+ if not peers_repo is None:
|
|
|
+ for b in peers_repo.heads.master.commit.tree.blobs:
|
|
|
+ if b.name.lower() == name.lower():
|
|
|
+ peer_name = b.name
|
|
|
+ peer_file = b.abspath
|
|
|
+ break
|
|
|
+
|
|
|
+ if os.path.exists(peer_file):
|
|
|
+ peerfile = open(peer_file, "r")
|
|
|
for line in peerfile:
|
|
|
if line.startswith("# MAC:"):
|
|
|
peer_mac = line[6:].strip()
|
|
|
peerfile.close()
|
|
|
|
|
|
- print("peer '", name, "': file '", peerfilename, "', MAC ", peer_mac, sep='')
|
|
|
-
|
|
|
if not (peer_mac is None):
|
|
|
- return mac2ipv6(peer_mac)
|
|
|
+ return { "hostname": peer_name, "network": { "addresses": [ mac2ipv6(peer_mac, "fdca:ffee:ff12:132:") ], "mac": peer_mac } }
|
|
|
|
|
|
return None
|
|
|
|
|
|
-def mac2ipv6(mac):
|
|
|
- return str(netaddr.EUI(mac).ipv6_link_local())
|
|
|
+def mac2ipv6(mac, prefix=None):
|
|
|
+ result = str(netaddr.EUI(mac).ipv6_link_local())
|
|
|
+ if (not prefix is None) and (result.startswith("fe80::")):
|
|
|
+ result = prefix + result[6:]
|
|
|
+ return result
|
|
|
|
|
|
@willie.module.interval(30)
|
|
|
def ffpb_updatealfred(bot):
|