diff options
author | makefu <github@syntax-fehler.de> | 2015-09-16 08:30:04 +0200 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2015-09-16 08:30:04 +0200 |
commit | 147044be891c92b3c0c1bcc3a4e53e2d0eef9963 (patch) | |
tree | 13ed3ac36d514347f503043b454dddaee51b03ac /retiolum/scripts/adv_graphgen/tinc_stats/Availability.py | |
parent | 9bf9f8d045801b17956d12f599bb166e608ed6dd (diff) | |
parent | 219fab970c7fe455d3dd9bc48e909d96a234046b (diff) |
Merge branch 'master' of github.com:krebscode/painload
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() |