From 0664d81031b6bbc80fb50bd36b95353a80dff82b Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Mon, 19 Apr 2010 08:44:30 +0200 Subject: [PATCH] Rispettata la variabile max_time --- phcstats.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/phcstats.py b/phcstats.py index a19aafa..bba76f9 100755 --- a/phcstats.py +++ b/phcstats.py @@ -18,7 +18,7 @@ database_directory = '/home/robol/client_stats/' # max_time controlla il massimo numero di secondi di cui possono # essere "vecchie" le informazioni conservate dallo script. -max_time = 86400 * 10 / 3 / 60 # ~ 10 giorni +max_time = 86400 * 30 # ~ 1 mese # Questo è il gruppo di dsh da cui rilevare le informazioni sui client # da monitorare. In realtà può essere un qualsiasi file di testo con @@ -112,7 +112,7 @@ def LoadClientData(client): sono nella forma di un dizionario con gli oggetti time e Valori True o False """ - LockDatabase() + data = {} try: f = open(database_directory + client, 'r') @@ -124,12 +124,27 @@ def LoadClientData(client): alive = ("True" in alive) data[float(time)] = alive f.close() - UnlockDatabase() + return data def AppendClientData(client, t, alive): + """ + Aggiunge in coda i dati sul client e controlla che + non ci siano dati troppo vecchi, nel qual caso li + elimina + """ LockDatabase() + + data = LoadClientData(client) + filtered_data = filter(lambda i: i[0] > float(time.time()) - max_time, data.items()) + if len(filtered_data) < len(data): + Verbose ("There are %d of %d records to delete" % (len(data) - len(filtered_data), len(data))) + data = dict(filtered_data) + f = open(database_directory + client, 'w') + for (t, v) in data.items(): + f.write(str(t) + ":" + str(v) + "\n") + f.close() f = open(database_directory + client, 'a') f.write(str(t) + ":" + str(alive) + "\n") f.close () -- 2.1.4