summaryrefslogtreecommitdiffstats
path: root/reports/brpt/reports/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'reports/brpt/reports/views.py')
-rw-r--r--reports/brpt/reports/views.py38
1 files changed, 16 insertions, 22 deletions
diff --git a/reports/brpt/reports/views.py b/reports/brpt/reports/views.py
index be61910f8..1c2d09e70 100644
--- a/reports/brpt/reports/views.py
+++ b/reports/brpt/reports/views.py
@@ -41,9 +41,6 @@ def config_item_modified(request, eyedee =None, timestamp = 'now'):
if timestamp == 'now':
timestamp = datetime.now().isoformat('@')
- for q in connection.queries:
- print q
-
return render_to_response('config_items/index.html', {'item':item,
'mod_or_bad':mod_or_bad,
'associated_client_list':associated_client_list,
@@ -79,10 +76,6 @@ def config_item_bad(request, eyedee = None, timestamp = 'now'):
if timestamp == 'now':
timestamp = datetime.now().isoformat('@')
-
- for q in connection.queries:
- print q
-
return render_to_response('config_items/index.html', {'item':item,
'mod_or_bad':mod_or_bad,
'associated_client_list':associated_client_list,
@@ -106,29 +99,16 @@ def client_detail(request, hostname = None, pk = None):
interaction = client.current_interaction
else:
interaction = client.interactions.get(pk=pk)#can this be a get object or 404?
-
- #for q in connection.queries:
- # print q
-
return render_to_response('clients/detail.html', {'client': client, 'interaction': interaction})
def display_sys_view(request, timestamp = 'now'):
client_lists = prepare_client_lists(request, timestamp)
-
- #for q in connection.queries:
- # print q
-
-
return render_to_response('displays/sys_view.html', client_lists)
def display_summary(request, timestamp = 'now'):
client_lists = prepare_client_lists(request, timestamp)
#this returns timestamp and the timestamp parts too
-
- #for q in connection.queries:
- # print q
-
return render_to_response('displays/summary.html', client_lists)
def display_timing(request, timestamp = 'now'):
@@ -213,7 +193,21 @@ def prepare_client_lists(request, timestamp = 'now'):
[clean_client_list.append(x) for x in Client.objects.filter(id__in=[y.client_id for y in interact_queryset.filter(state='clean')])]
[bad_client_list.append(x) for x in Client.objects.filter(id__in=[y.client_id for y in interact_queryset.filter(state='dirty')])]
- [down_client_list.append(x) for x in Client.objects.filter(id__in=[y.client_id for y in interact_queryset.filter(pingable='N')])]#need to change the PINGING data structure
+
+ client_ping_dict = {}
+ [client_ping_dict.__setitem__(x,'Y') for x in client_interaction_dict.keys()]#unless we know otherwise...
+
+ try:
+ cursor.execute("select reports_ping.status, x.client_id from (select client_id, MAX(endtime) "+
+ "as timer from reports_ping GROUP BY client_id) x, reports_ping where "+
+ "reports_ping.client_id = x.client_id AND reports_ping.endtime = x.timer")
+ [client_ping_dict.__setitem__(x[1],x[0]) for x in cursor.fetchall()]
+ except:
+ pass #This is to fix problems when you have only zero records returned
+
+ client_down_ids = [y for y in client_ping_dict.keys() if client_ping_dict[y]=='N']
+ if not client_down_ids == []:
+ [down_client_list.append(x) for x in Client.objects.filter(id__in=client_down_ids)]
if (timestamp == 'now' or timestamp == None):
cursor.execute("select client_id, MAX(timestamp) as timestamp from reports_interaction GROUP BY client_id")
@@ -225,7 +219,7 @@ def prepare_client_lists(request, timestamp = 'now'):
datetimestamp = datetime(t[0], t[1], t[2], t[3], t[4], t[5])
stale_all_client_list = Client.objects.filter(id__in=[x[0] for x in cursor.fetchall() if datetimestamp - x[1] > timedelta(days=1)])
- [stale_up_client_list.append(x) for x in stale_all_client_list if client_interaction_dict[x.id].pingable=='Y']
+ [stale_up_client_list.append(x) for x in stale_all_client_list if not client_ping_dict[x.id]=='N']
cursor.execute("SELECT reports_client.id FROM reports_client, reports_interaction, reports_modified_interactions WHERE reports_client.id=reports_interaction.client_id AND reports_interaction.id = reports_modified_interactions.interaction_id GROUP BY reports_client.id")