diff options
Diffstat (limited to 'retiolum/scripts')
| -rwxr-xr-x | retiolum/scripts/adv_graphgen/find_legacy_hosts.py | 59 | ||||
| -rwxr-xr-x | retiolum/scripts/tinc_setup/install.sh | 16 | 
2 files changed, 70 insertions, 5 deletions
| diff --git a/retiolum/scripts/adv_graphgen/find_legacy_hosts.py b/retiolum/scripts/adv_graphgen/find_legacy_hosts.py new file mode 100755 index 00000000..52388b6d --- /dev/null +++ b/retiolum/scripts/adv_graphgen/find_legacy_hosts.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf8 -*- + +import sys,json +""" TODO: Refactoring needed to pull the edges out of the node structures again, +it should be easier to handle both structures""" +DUMP_FILE = "/krebs/db/availability" + +def get_all_nodes(): +  import os +  return os.listdir("/etc/tinc/retiolum/hosts") +def generate_stats(): +  """ Generates some statistics of the network and nodes +  """ +  import json +  jlines = [] +  try: +    f = open(DUMP_FILE,'r') +    for line in f: +      jlines.append(json.loads(line)) +    f.close() +  except Exception,e: +    pass +  all_nodes = {} +  for k in get_all_nodes(): +    all_nodes[k] = get_node_availability(k,jlines) +  print ( json.dumps(all_nodes)) + +def get_node_availability(name,jlines): +  """ calculates the node availability by reading the generated dump file +  adding together the uptime of the node and returning the time +	parms: +          name - node name +          jlines - list of already parsed dictionaries node archive +  """ +  begin = last = current = 0 +  uptime = 0 +  #sys.stderr.write ( "Getting Node availability of %s\n" % name) +  for stat in jlines: +    if not stat['nodes']: +      continue +    ts = stat['timestamp'] +    if not begin: +      begin = last = ts +    current = ts +    if stat['nodes'].get(name,{}).get('to',[]): +      uptime += current - last +    else: +      pass +      #sys.stderr.write("%s offline at timestamp %f\n" %(name,current)) +    last = ts +  all_the_time = last - begin +  try: +    return uptime/ all_the_time +  except: +    return 1 + + +generate_stats() diff --git a/retiolum/scripts/tinc_setup/install.sh b/retiolum/scripts/tinc_setup/install.sh index a550a068..2198589b 100755 --- a/retiolum/scripts/tinc_setup/install.sh +++ b/retiolum/scripts/tinc_setup/install.sh @@ -22,11 +22,15 @@ echo "added known hosts:"  ls -1 hosts | LC_ALL=C sort  echo "delete the nodes you do not trust!" +hostname="${HOSTNAME-`cat /etc/hostname`}"  myname="${1:-}"  if [ ! "$myname" ]   then -  echo "select username: " +  printf "select node name [$hostname]: "    read myname +  if test -z "$myname"; then +    myname="$hostname" +  fi  fi  if [ ! -e "hosts/$myname" ]  then @@ -35,11 +39,13 @@ then    if [ ! "$myipv4" ]     then -    echo "select v4 subnet ip (1-255) :" +    printf 'select v4 subnet ip (1-255): '      read v4num -    if ! $MYBIN/check-free-retiolum-v4 $v4num;then -      exit 1 -    fi +    until $MYBIN/check-free-retiolum-v4 $v4num; do +      echo "your're an idiot!" +      printf 'select unused v4 subnet ip (1-255): ' +      read v4num +    done      myipv4="10.7.7.$v4num"    fi    echo "Subnet = $myipv4" > hosts/$myname | 
