14
14
class IndexHandler (RequestHandler ):
15
15
def initialize (self , ** kwargs ):
16
16
self .logger = kwargs .get ("logger" )
17
+ self .mysql = kwargs .get ("mysql" )
17
18
self .redis = tornadoredis .Client (connection_pool = kwargs ["redis" ])
18
- self .mysql = torndb .Connection ("localhost" , "mysql" )
19
19
self .template = Template ("op -cmd {{ cmd }} -value {{ value }}" )
20
20
21
21
def _customize (self ):
@@ -24,20 +24,25 @@ def _customize(self):
24
24
25
25
@tornado .web .asynchronous
26
26
@tornado .gen .engine
27
- def _redis (self ):
28
- info = yield tornado .gen .Task (self .redis .info )
29
- yield tornado .gen .Task (self .redis .disconnect )
30
- return info
31
-
32
27
def _handle (self , ** kwargs ):
33
28
self ._customize ()
34
- try :
29
+ db = None
30
+ try :
31
+ db = torndb .Connection (self .mysql ['host' ], self .mysql ['database' ],
32
+ user = self .mysql ['user' ], password = self .mysql ['password' ])
33
+ hosts = [host for host in db .query ("SELECT Host FROM user WHERE User = 'root'" )]
34
+ info = yield tornado .gen .Task (self .redis .info )
35
+ yield tornado .gen .Task (self .redis .disconnect )
35
36
data = { 'cmd' : "any" , 'value' : str (time .time ()) }
36
37
response = { 'status' : 200 ,
37
38
'msg' : self .template .generate (** data ),
38
- 'redis' : _redis ['redis_version' ] }
39
+ 'redis' : info ['redis_version' ],
40
+ 'mysql' : hosts }
39
41
except Exception as ex :
40
42
response = { 'status' : 500 , 'msg' : str (ex ) }
43
+ finally :
44
+ if db :
45
+ db .close ()
41
46
if response ['status' ] != 200 :
42
47
self .set_status (response ['status' ])
43
48
self .write (json_encode (response ))
0 commit comments