summaryrefslogtreecommitdiffstats
path: root/Tools/QueueStatusServer
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/QueueStatusServer')
-rw-r--r--Tools/QueueStatusServer/handlers/queuestatus.py20
-rw-r--r--Tools/QueueStatusServer/index.yaml7
-rw-r--r--Tools/QueueStatusServer/main.py1
-rw-r--r--Tools/QueueStatusServer/templates/includes/singlequeuestatus.html2
-rw-r--r--Tools/QueueStatusServer/templates/queuestatus.html4
5 files changed, 28 insertions, 6 deletions
diff --git a/Tools/QueueStatusServer/handlers/queuestatus.py b/Tools/QueueStatusServer/handlers/queuestatus.py
index 54c0fdd..e5dc95f 100644
--- a/Tools/QueueStatusServer/handlers/queuestatus.py
+++ b/Tools/QueueStatusServer/handlers/queuestatus.py
@@ -56,17 +56,31 @@ class QueueStatus(webapp.RequestHandler):
def _build_status_groups(self, statuses):
return [list(group) for key, group in itertools.groupby(statuses, self._grouping_key_for_status)]
- def get(self, queue_name):
+ def _fetch_statuses(self, queue, bot_id):
+ statuses = queuestatus.QueueStatus.all()
+ statuses = statuses.filter("queue_name =", queue.name())
+ if bot_id:
+ statuses.filter("bot_id =", bot_id)
+ return statuses.order("-date").fetch(15)
+
+ def _page_title(self, queue, bot_id):
+ title = "%s Messages" % queue.display_name()
+ if bot_id:
+ title += " from \"%s\"" % (bot_id)
+ return title
+
+ def get(self, queue_name, bot_id=None):
queue_name = queue_name.lower()
queue = Queue.queue_with_name(queue_name)
if not queue:
self.error(404)
return
- statuses = queuestatus.QueueStatus.all().filter("queue_name =", queue.name()).order("-date").fetch(15)
+ statuses = self._fetch_statuses(queue, bot_id)
template_values = {
- "display_queue_name": queue.display_name(),
+ "page_title": self._page_title(queue, bot_id),
"work_item_rows": self._rows_for_work_items(queue),
"status_groups": self._build_status_groups(statuses),
+ "bot_id": bot_id,
}
self.response.out.write(template.render("templates/queuestatus.html", template_values))
diff --git a/Tools/QueueStatusServer/index.yaml b/Tools/QueueStatusServer/index.yaml
index 6c9a3b2..9724760 100644
--- a/Tools/QueueStatusServer/index.yaml
+++ b/Tools/QueueStatusServer/index.yaml
@@ -25,6 +25,13 @@ indexes:
- kind: QueueStatus
properties:
+ - name: bot_id
+ - name: queue_name
+ - name: date
+ direction: desc
+
+- kind: QueueStatus
+ properties:
- name: queue_name
- name: date
diff --git a/Tools/QueueStatusServer/main.py b/Tools/QueueStatusServer/main.py
index 3fbee5c..446f36b 100644
--- a/Tools/QueueStatusServer/main.py
+++ b/Tools/QueueStatusServer/main.py
@@ -62,6 +62,7 @@ routes = [
(r'/results/(.*)', ShowResults),
(r'/status-bubble/(.*)', StatusBubble),
(r'/svn-revision/(.*)', SVNRevision),
+ (r'/queue-status/(.*)/bots/(.*)', QueueStatus),
(r'/queue-status/(.*)', QueueStatus),
(r'/next-patch/(.*)', NextPatch),
(r'/release-patch', ReleasePatch),
diff --git a/Tools/QueueStatusServer/templates/includes/singlequeuestatus.html b/Tools/QueueStatusServer/templates/includes/singlequeuestatus.html
index 0adbfbd..94393c0 100644
--- a/Tools/QueueStatusServer/templates/includes/singlequeuestatus.html
+++ b/Tools/QueueStatusServer/templates/includes/singlequeuestatus.html
@@ -1,6 +1,6 @@
<span class="status-date">{{ status.date|timesince }} ago
{% if status.bot_id %}
-({{ status.bot_id }})
+(<a href="/queue-status/{{status.queue_name}}/bots/{{status.bot_id}}">{{ status.bot_id }}</a>)
{% endif %}
</span>
<span class="status-message">{{ status.message|force_escape|urlize|webkit_linkify|safe }}</span>
diff --git a/Tools/QueueStatusServer/templates/queuestatus.html b/Tools/QueueStatusServer/templates/queuestatus.html
index 1b98952..c68abf1 100644
--- a/Tools/QueueStatusServer/templates/queuestatus.html
+++ b/Tools/QueueStatusServer/templates/queuestatus.html
@@ -1,11 +1,11 @@
<!DOCTYPE html>
<html>
<head>
-<title>{{ display_queue_name }} Status</title>
+<title>{{ page_title }}</title>
<link type="text/css" rel="stylesheet" href="/stylesheets/dashboard.css" />
</head>
<body>
-<h1>{{ display_queue_name }} Status</h1>
+<h1>{{ page_title }}</h1>
<h3>Recent Status</h3>