From a0d0290a640fefad2af8ebb7a02a33208414c494 Mon Sep 17 00:00:00 2001 From: Thomas Hooge Date: Sun, 4 Dec 2016 12:46:48 +0100 Subject: [PATCH] =?UTF-8?q?Pr=C3=BCfung=20in=20alfred-announce.py=20eingeb?= =?UTF-8?q?aut,=20ob=20fastd=20grunds=C3=A4tzlich=20aktiviert=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- alfred-announce.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/alfred-announce.py b/alfred-announce.py index 53e449b..31fde61 100755 --- a/alfred-announce.py +++ b/alfred-announce.py @@ -20,7 +20,7 @@ Es werden ermittelt: Hinweis(e): - https://github.com/ffnord/ffnord-alfred-announce - - http://www.open-mesh.org/projects/alfred/wiki + - http://www.open-mesh.org/projects/alfred/wiki - ifstat ansehen - dstat ansehen (Python) - Konfigurationsverzeichnis: /etc/alfred @@ -42,6 +42,7 @@ Version Datum Änderung(en) von import os import sys +import glob import platform import getopt import signal @@ -100,7 +101,7 @@ def fn_node_net_mesh_ifaces(): # "network": { "mesh": { "bat0": { "interfaces": { "tunnel": [ ... # Die Stelle mit "bat0" müßte dynamisch aufgrund der Interfaces # zusammengebaut werden - return [open('/sys/class/net/' + iface + '/address').read().strip() + return [open('/sys/class/net/' + iface + '/address').read().strip() for iface in map(lambda line: line.split(':')[0], call(['batctl', '-m', cfg['interface'], 'if']))] def fn_exitvpn_provider(): @@ -121,7 +122,7 @@ def fn_exitvpn_provider(): pass return 'n/a' -def fn_exitvpn_country(): +def fn_exitvpn_country(): """ ISO 3166 Country Code """ @@ -138,7 +139,17 @@ def fn_batman_version(): return open('/sys/module/batman_adv/version').read().strip() def fn_fastd_enabled(): - return True + """ + Prüfe, ob das init-script existiert und in rc.d aktiviert ist + - aktuellen Runlevel ermitteln + - suche einen passenden Link im RC-Verzeichnis + - prüfe, ob das Script tatsächlich existiert + """ + runlevel = int(call(['runlevel'])[0].split(' ')[1]) + fname = glob.glob("/etc/rc%d.d/S??fastd" % runlevel) + if not fname: + return False + return os.path.isfile(fname[0]) def fn_fastd_version(): return call(['fastd', '-v'])[0].split(' ')[1] @@ -234,7 +245,7 @@ item = { 'node.software.batman_adv.version': { 'interval': 3600, 'exec': fn_batman_version }, 'node.software.fastd.version': { 'interval': 3600, 'exec': fn_fastd_version }, 'node.software.fastd.enabled': { 'interval': 60, 'exec': fn_fastd_enabled }, - 'node.software.fastd.port': { 'interval': 36000, 'exec': fn_fastd_port }, + 'node.software.fastd.port': { 'interval': 3600, 'exec': fn_fastd_port }, 'node.software.firmware.base': { 'interval': 3600, 'exec': fn_firmware_base }, 'node.software.firmware.release': { 'interval': 3600, 'exec': fn_firmware_release }, 'node.hardware.model': { 'interval': 3600, 'exec': fn_hardware_model }, @@ -288,12 +299,12 @@ def merge_dict(d1, d2): def set_loglevel(nr): # Nummer nach Level umsetzen levels = [None, logging.CRITICAL, logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG] - try: + try: level = levels[nr] except: level = logging.INFO return level - + def usage(): print "Alfred Announce Daemon for Gateways" print "Version %s" % __version__ @@ -355,7 +366,7 @@ if __name__ == "__main__": merge_dict(data, statics) # Aufteilen in die jew. Datentypen - nodeinfo = data['node'] + nodeinfo = data['node'] statistics = data['statistics'] cnodeinfo = zlib.compress(json.dumps(nodeinfo))