X-Git-Url: http://git.onelab.eu/?p=monitor.git;a=blobdiff_plain;f=monitor%2Fgeneric.py;h=c1680d24dc51df088e22d9fbfc1c86ee61a6bd48;hp=50488e9bc480b5b622870a8223a11e65e7425710;hb=f4f26439ae2db33f8f9a55e1a3350f6ed4f78278;hpb=82a17d43e5329fea99340b25dfda4ec646ea1095 diff --git a/monitor/generic.py b/monitor/generic.py index 50488e9..c1680d2 100644 --- a/monitor/generic.py +++ b/monitor/generic.py @@ -1,4 +1,5 @@ import sys +from datetime import datetime, timedelta def d_from_l(l, key, using=None, key_as=str, using_as=None): d = {} @@ -37,6 +38,7 @@ def dsn_from_dsln(d_sites, id2lb, l_nodes): lb2hn = {} dsn = {} hn2lb = {} + exclude = [] for id in id2lb: if id2lb[id] not in lb2hn: lb2hn[id2lb[id]] = [] @@ -47,6 +49,7 @@ def dsn_from_dsln(d_sites, id2lb, l_nodes): login_base = id2lb[node['site_id']] else: print >>sys.stderr, "%s has a foreign site_id %s" % (node['hostname'], node['site_id']) + exclude.append(node['hostname']) continue for i in id2lb: print i, " ", id2lb[i] @@ -65,4 +68,26 @@ def dsn_from_dsln(d_sites, id2lb, l_nodes): dsn[login_base][hostname]['monitor'] = {} hn2lb[hostname] = login_base - return (dsn, hn2lb, lb2hn) + return (dsn, hn2lb, lb2hn, exclude) + + +class Time: + @classmethod + def dt_to_ts(cls, dt): + t = time.mktime(dt.timetuple()) + return t + + @classmethod + def ts_to_dt(cls, ts): + d = datetime.fromtimestamp(ts) + return d + + @classmethod + def str_to_dt(cls, date_str, format="%Y-%m-%d %H:%M:%S"): + dt = datetime.strptime(date_str[:date_str.find('.')], format) + return dt + + @classmethod + def str_to_ts(cls, date_str, format="%Y-%m-%d %H:%M:%S"): + ts = time.mktime(time.strptime(date_str[:date_str.find('.')], format)) + return ts