summaryrefslogtreecommitdiffstats
path: root/retiolum/scripts/adv_graphgen/tinc_stats/Availability.py
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2015-09-16 08:30:04 +0200
committermakefu <github@syntax-fehler.de>2015-09-16 08:30:04 +0200
commit147044be891c92b3c0c1bcc3a4e53e2d0eef9963 (patch)
tree13ed3ac36d514347f503043b454dddaee51b03ac /retiolum/scripts/adv_graphgen/tinc_stats/Availability.py
parent9bf9f8d045801b17956d12f599bb166e608ed6dd (diff)
parent219fab970c7fe455d3dd9bc48e909d96a234046b (diff)
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to 'retiolum/scripts/adv_graphgen/tinc_stats/Availability.py')
-rwxr-xr-xretiolum/scripts/adv_graphgen/tinc_stats/Availability.py58
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()