comparison web/templog.py @ 486:bb713e6d0e48

merge
author Matt Johnston <matt@ucc.asn.au>
date Fri, 07 Feb 2014 08:00:10 +0800
parents d68af9e84485
children ae5efca89001
comparison
equal deleted inserted replaced
481:87acca3f5986 486:bb713e6d0e48
6 import zlib 6 import zlib
7 from datetime import datetime, timedelta 7 from datetime import datetime, timedelta
8 import time 8 import time
9 import urllib 9 import urllib
10 import sys 10 import sys
11 import os
12 import traceback
13 import fcntl
11 14
12 import bottle 15 import bottle
13 from bottle import route, request, response 16 from bottle import route, request, response
14 17
15 import config 18 import config
16 import log 19 import log
20 import secure
17 21
18 DATE_FORMAT = '%Y%m%d-%H.%M' 22 DATE_FORMAT = '%Y%m%d-%H.%M'
19 ZOOM_SCALE = 2.0 23 ZOOM_SCALE = 2.0
20 24
21 @route('/update', method='post') 25 @route('/update', method='post')
41 start = end - timedelta(minutes=length_minutes) 45 start = end - timedelta(minutes=length_minutes)
42 46
43 response.set_header('Content-Type', 'image/png') 47 response.set_header('Content-Type', 'image/png')
44 start_epoch = time.mktime(start.timetuple()) 48 start_epoch = time.mktime(start.timetuple())
45 return log.graph_png(start_epoch, length_minutes * 60) 49 return log.graph_png(start_epoch, length_minutes * 60)
50
51 @route('/set')
52 def set():
53 return bottle.template('set',
54 inline_data = log.get_params(),
55 csrf_blob = secure.get_csrf_blob())
56
57 @route('/set_current.json')
58 def set_fresh():
59 response.set_header('Content-Type', 'application/javascript')
60 return log.get_current()
46 61
47 @route('/') 62 @route('/')
48 def top(): 63 def top():
49 64
50 minutes = int(request.query.get('length', 26*60)) 65 minutes = int(request.query.get('length', 26*60))
85 @route('/debug') 100 @route('/debug')
86 def debuglog(): 101 def debuglog():
87 response.set_header('Content-Type', 'text/plain') 102 response.set_header('Content-Type', 'text/plain')
88 return log.tail_debug_log() 103 return log.tail_debug_log()
89 104
105 @route('/env')
106 def env():
107 response.set_header('Content-Type', 'text/plain')
108 return '\n'.join(traceback.format_stack())
109 #return '\n'.join(("%s %s" % k) for k in request.environ.items())
110 #return str(request.environ)
111 #yield "\n"
112 #var_lookup = environ['mod_ssl.var_lookup']
113 #return var_lookup("SSL_SERVER_I_DN_O")
114
115 @bottle.get('/<filename:re:.*\.js>')
116 def javascripts(filename):
117 response.set_header('Cache-Control', "public, max-age=1296000")
118 return bottle.static_file(filename, root='static')
119
120 @route('/setparams', method='post')
121 def update():
122 post_json = json.loads(request.forms.data)
123
124 csrf_blob = post_json['csrf_blob']
125
126 return str(post_json['params'])
127
128 secure.setup_csrf()
129
90 def main(): 130 def main():
91 #bottle.debug(True) 131 #bottle.debug(True)
92 #bottle.run(reloader=True) 132 #bottle.run(reloader=True)
93 bottle.run(server='cgi', reloader=True) 133 bottle.run(server='cgi', reloader=True)
94 #bottle.run(port=9999, reloader=True) 134 #bottle.run(port=9999, reloader=True)