1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 DEFAULT_HTTP_PORT = 8091
16
17 import Globals
18
19 from Products.ZenHub.PBDaemon import PBDaemon
20 from RenderServer import RenderServer as OrigRenderServer
21 from Products.ZenUtils.ObjectCache import ObjectCache
22
23 from twisted.web import resource, server
24 from twisted.internet import reactor
25
26 import mimetypes
27
38
40
41 isLeaf = True
42
44 args = request.args.copy()
45 for k, v in args.items():
46 if len(v) == 1:
47 args[k] = v[0]
48 command = request.postpath[-1]
49 zr.log.debug("Processing %s request" % command)
50 args.setdefault('ftype', 'PNG')
51 ftype = args['ftype']
52 del args['ftype']
53 mimetype = mimetypes.guess_type('.%s'%ftype)[0]
54 if not mimetype: mimetype = 'image/%s'%ftype
55 request.setHeader('Content-type', mimetype)
56 return getattr(zr, 'remote_' + command)(**args)
57
59
60 initialServices = ['EventService', 'ZenRender']
61 name = 'zenrender'
62
66
68 if self.options.cycle:
69 self.heartbeat()
70
74
76 return self.rs.render(*args, **kw)
77
80
83
86
89
92
94 return self.rs.plugin(*args, **kw)
95
97 return self.rs.summary(*args, **kw)
98
101
104
113
114
115 if __name__ == '__main__':
116 zr = zenrender()
117 reactor.listenTCP(int(zr.options.httpport), server.Site(HttpRender()))
118 zr.run()
119