Kiln » Kiln Storage Service Read More
Clone URL:  
queuestats.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from flask import request, render_template import settings from handlers import get, post, jsonify from redis import Redis from redis.cli import RedisCli queue_data = dict( lists = [ 'kiln:queue', 'kiln:queue:high', 'kiln:queue:low', 'kiln:cancelations', 'kiln:queue:running', 'opengrok:index:running', 'opengrok:cancelations', ], zsets = [ 'opengrok:index', ], keys = [ 'updaterepo:*:repo', 'updaterepo:*:__failcount', 'httppost:*:url', 'httppost:*:__failcount', ], ) def _get_redis(): return Redis(host=settings.REDIS_HOST, port=settings.REDIS_PORT, db=settings.REDIS_DB) @get('/queuestats/', as_json=False) def queuestats(): r = _get_redis() data = {} for l in queue_data['lists']: data[l] = r.llen(l) for z in queue_data['zsets']: data[z] = r.zcard(z) for k in queue_data['keys']: data[k] = len(r.keys(k)) if request.headers.get('X-Requested-With', '').lower() == 'xmlhttprequest': return jsonify(data) return render_template('queuestats.html', data=data) @post('/queuestats/redis/cli/') def cli(): cmd = request.form['cmd'] try: r = RedisCli(settings.REDIS_HOST, settings.REDIS_PORT).onecmd(cmd) except Exception, e: r = '*** Unknown exception: %s' % e if r is None: r = '' elif isinstance(r, list): r = '\n'.join(r) d = dict(response=r) if isinstance(r, basestring) and (r.startswith('Error') or r.startswith('***')): d['type'] = 'error' else: d['type'] = 'success' return d