diff options
Diffstat (limited to 'retiolum/scripts/adv_graphgen/tinc_stats/Availability.py')
-rwxr-xr-x | retiolum/scripts/adv_graphgen/tinc_stats/Availability.py | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/retiolum/scripts/adv_graphgen/tinc_stats/Availability.py b/retiolum/scripts/adv_graphgen/tinc_stats/Availability.py deleted file mode 100755 index 66defa44..00000000 --- a/retiolum/scripts/adv_graphgen/tinc_stats/Availability.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/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 availability 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 as 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 - 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 - last = ts - all_the_time = last - begin - try: - return uptime/ all_the_time - except: - return 1 - -if __name__ == "__main__": - generate_stats() |