diff options
Diffstat (limited to 'retiolum/scripts')
| -rwxr-xr-x | retiolum/scripts/adv_graphgen/tinc_stats/Graph.py | 43 | ||||
| -rw-r--r-- | retiolum/scripts/adv_graphgen/tinc_stats/Services.py | 17 | ||||
| -rw-r--r-- | retiolum/scripts/adv_graphgen/tinc_stats/__init__.py | 1 | 
3 files changed, 54 insertions, 7 deletions
| diff --git a/retiolum/scripts/adv_graphgen/tinc_stats/Graph.py b/retiolum/scripts/adv_graphgen/tinc_stats/Graph.py index 9d80e62d..2fb09a58 100755 --- a/retiolum/scripts/adv_graphgen/tinc_stats/Graph.py +++ b/retiolum/scripts/adv_graphgen/tinc_stats/Graph.py @@ -2,6 +2,7 @@  from BackwardsReader import BackwardsReader  import sys,json,os  from Supernodes import check_all_the_super +from Services import add_services  from Availability import get_node_availability  import sys,json  from time import time @@ -128,21 +129,46 @@ def print_node(k,v):        tinc    """ -  node = "  "+k+"[label=\"" -  node += k+"\\l" -  node += "availability: %f\\l" % v['availability']  +  node = "  "+k+"[label=<<TABLE border='0' title='%s' cellborder='1' >" %k +  node += "<TR><TD colspan='2'><B>%s</B></TD></TR>"%k +  if 'availability' in v: +    node += "<TR><TD>availability:</TD><TD>%f</TD></TR>" % v['availability']  +    if 'num_conns' in v: -    node += "Num Connects:"+str(v['num_conns'])+"\\l" -  node += "external:"+v['external-ip']+":"+v['external-port']+"\\l" +    node += "<TR><TD>Num Connects:</TD><TD>%s</TD></TR>"%str(v['num_conns']) + +  node += "<TR><TD>external:</TD><TD>"+v['external-ip']+":"+v['external-port']+"</TD></TR>"    for addr in v.get('internal-ip',['dunno lol']):  -    node += "internal:%s\\l"%addr -  node +="\"" +    node += "<TR><TD>internal:</TD><TD>%s</TD></TR>"%addr + +  if 'services' in v: +    node +="<TR><TD colspan='2'><B>Services:</B></TD></TR>" +    for service in v['services']: +      try:uri,comment = service.split(" ",1) +      except:  +        uri = service +        comment ="" +      node +="<TR >" +      uri_proto=uri.split(":")[0] +      uri_rest = uri.split(":")[1]  +      if not uri_rest: +        node +="<TD title='{0}' align='left' colspan='2' \ +href='{0}'><font color='darkred'>{0}</font>".format(uri) +      else: +        node +="<TD title='{0}' align='left' colspan='2' \ +href='{0}'><U>{0}</U>".format(uri) +      if comment: +        node += "<br align='left'/>    <I>{0}</I>".format(comment) +      node +="</TD></TR>" +  # end label +  node +="</TABLE>>"    if v['num_conns'] == 1:      node += ",fillcolor=red"    elif k in supernodes:      node += ",fillcolor=steelblue1"    node += "]" +    print(node)  def print_anonymous_node(k,v): @@ -206,7 +232,9 @@ if __name__ == "__main__":    elif sys.argv[1] == "complete":      for supernode,addr in check_all_the_super():        supernodes.append(supernode) +      generate_availability_stats(nodes) +    add_services(nodes)      for k,v in nodes.items():        print_node(k,v)        print_edge(k,v) @@ -219,3 +247,4 @@ if __name__ == "__main__":    print_stat_node(nodes)    print ('}') +# vim: set sw=2:ts=2 diff --git a/retiolum/scripts/adv_graphgen/tinc_stats/Services.py b/retiolum/scripts/adv_graphgen/tinc_stats/Services.py new file mode 100644 index 00000000..6752e116 --- /dev/null +++ b/retiolum/scripts/adv_graphgen/tinc_stats/Services.py @@ -0,0 +1,17 @@ +services_dir="/home/makefu/r/services" +def add_services(nodes): +    for k,v in nodes.items(): +        n = nodes[k] +        try: +            with open("{0}/{1}".format(services_dir,k)) as f: +                n["services"] = [] +                for line in f.readlines(): +                    n["services"].append(line.strip()) +        except Exception as e: +            n["services"] = ["Error: No Service File!"] +    return nodes +if __name__ == "__main__": +    import json,sys +    nodes = add_services(json.load(sys.stdin)) +    print (json.dumps(nodes,indent=4)) +# vim: set expandtab:ts=4:sw=4 diff --git a/retiolum/scripts/adv_graphgen/tinc_stats/__init__.py b/retiolum/scripts/adv_graphgen/tinc_stats/__init__.py index 62f541d1..f0fc8520 100644 --- a/retiolum/scripts/adv_graphgen/tinc_stats/__init__.py +++ b/retiolum/scripts/adv_graphgen/tinc_stats/__init__.py @@ -4,3 +4,4 @@ import Log2JSON  import Supernodes  import Geo  import Graph +import Services | 
