summaryrefslogtreecommitdiffstats
path: root/retiolum/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'retiolum/scripts')
-rwxr-xr-xretiolum/scripts/adv_graphgen/find_legacy_hosts.py59
-rwxr-xr-xretiolum/scripts/tinc_setup/install.sh16
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
[cgit] Unable to lock slot /tmp/cgit/a3000000.lock: Permission denied (13)