HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
ftest_STAT_admin_command.py
Go to the documentation of this file.
1 '''
2 Created on Apr 1, 2014
3 
4 @author: igor
5 '''
6 from app.BaseServerManager import BaseServerManager
7 from dtm.Constants import EVENT_TYPES
8 from dtm.EventObjects import AdminState, AdminStatData
9 from transport.Event import EventBuilder
10 from transport.ConnectionBuilderLight import ConnectionBuilderLight
11 import transport.Consts as consts
12 
13 
15 
16 
17  def __init__(self):
18  super(UserClass, self).__init__()
19 
20 
21 
22 if __name__ == "__main__":
23  connectBuilder = ConnectionBuilderLight()
24  adminServer = connectBuilder.build(consts.SERVER_CONNECT, BaseServerManager.ADMIN_CONNECT_ENDPOINT)
25  eventBuilder = EventBuilder()
26 
27  someConnect = connectBuilder.build(consts.SERVER_CONNECT, "127.0.0.1:9080", consts.TCP_TYPE)
28 
29  userClass = UserClass()
30  userClass.addConnection("FakeConnection", someConnect)
31  userClass.start()
32 
33  ready_event = adminServer.recv()
34  ready_response = ready_event.eventObj
35  if isinstance(ready_response, AdminState) and ready_response.command == AdminState.STATE_READY:
36  print "Userclass is ready"
37 
38  #get all stat fields
39  admin_request = AdminStatData(ready_response.className)
40  request_event = eventBuilder.build(EVENT_TYPES.ADMIN_FETCH_STAT_DATA, admin_request)
41  request_event.connect_identity = ready_event.connect_identity
42 
43  adminServer.send(request_event)
44 
45  stat_response_event = adminServer.recv()
46  adminStatData = stat_response_event.eventObj
47 
48  print "Get stat, class ", adminStatData.className
49  print adminStatData.fields
50 
51  #get some stat fields
52  admin_request = AdminStatData(ready_response.className, dict({"Admin_send_cnt":None, "no_such_field":None}))
53  request_event = eventBuilder.build(EVENT_TYPES.ADMIN_FETCH_STAT_DATA, admin_request)
54  request_event.connect_identity = ready_event.connect_identity
55 
56  adminServer.send(request_event)
57 
58  stat_response_event = adminServer.recv()
59  adminStatData = stat_response_event.eventObj
60 
61  print "Get stat, class ", adminStatData.className
62  print adminStatData.fields
63 
64 
65  adminState = AdminState(ready_response.className, AdminState.STATE_SHUTDOWN)
66  adminEvent = eventBuilder.build(EVENT_TYPES.ADMIN_STATE, adminState)
67  adminEvent.connect_identity = ready_event.connect_identity
68  adminServer.send(adminEvent)
69 
70  userClass.join()
71  print "OK"
This is app base class for management server connection end-points and parallel transport messages pr...
AdminState event object, for admin manage change application state commands, like shutdown...
Class hides routines of bulding connection objects.
AdminStatData event object, for admin fetch stat fields and possible data from any threaded classes i...