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_ExecutionEnvironmentManager.py
Go to the documentation of this file.
1 '''
2 HCE project, Python bindings, Distributed Tasks Manager application.
3 ExecutionEnvironmentManager object functional tests.
4 
5 @package: dtm
6 @author bgv bgv.hce@gmail.com
7 @link: http://hierarchical-cluster-engine.com/
8 @copyright: Copyright © 2013-2014 IOIX Ukraine
9 @license: http://hierarchical-cluster-engine.com/license/
10 @since: 0.1
11 '''
12 
13 import ConfigParser
14 import logging
15 import sys
16 import time
17 
18 from app.BaseServerManager import BaseServerManager
19 import dtm.EventObjects
21 from transport.ConnectionBuilderLight import ConnectionBuilderLight
22 from transport.Event import EventBuilder
23 import dtm.Constants as DTM_CONSTS
24 import transport.Consts as TRANSPORT_CONSTS
25 
26 
27 if __name__ == "__main__":
28  logger = logging.getLogger()
29 
30  ch = logging.StreamHandler(sys.stdout)
31  ch.setLevel(logging.DEBUG)
32  formatter = logging.Formatter('%(asctime)s - %(thread)ld - %(threadName)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s')
33  ch.setFormatter(formatter)
34  logger.addHandler(ch)
35 
36 if __name__ == "__main__":
37  TEST_TITLE = "Test "
38  TEST_TITLE_OBJECT = " object:\n"
39  TTL = 7
40 
41  #Test ExecutionEnvironmentManager instantiation
42  CONFIG_SECTION = "ExecutionEnvironmentManager"
43  config = ConfigParser.RawConfigParser()
44  config.add_section(CONFIG_SECTION)
45  config.set(CONFIG_SECTION, "server", CONFIG_SECTION)
46  config.set(CONFIG_SECTION, "clientTasksManager", "TasksManager")
47  config.set(CONFIG_SECTION, "clientTasksManagerData", "TasksManagerData")
48  config.set(CONFIG_SECTION, "DRCEHost", "localhost")
49  config.set(CONFIG_SECTION, "DRCEPort", "5557")
50  config.set(CONFIG_SECTION, "DRCETimeout", "1000")
51  config.set(CONFIG_SECTION, "HCENodeAdminTimeout", "1000")
52 
53 
54  print(sys.version)
55 
56  connectionBuilderLight = ConnectionBuilderLight()
57 
58  #Admin server connection sumulator
59  adminServerConnection = connectionBuilderLight.build(TRANSPORT_CONSTS.SERVER_CONNECT,
60  BaseServerManager.ADMIN_CONNECT_ENDPOINT)
61  #TasksManager object server connection simulator
62  tasksManagerConnection = connectionBuilderLight.build(TRANSPORT_CONSTS.SERVER_CONNECT, "TasksManager")
63  #TasksManagerData object server connection simulator
64  tasksManagerDataConnection = connectionBuilderLight.build(TRANSPORT_CONSTS.SERVER_CONNECT, "TasksManagerData")
65 
66  time.sleep(1)
67 
68  #Create instance
70 
71  print TEST_TITLE + eem.__class__.__name__ + TEST_TITLE_OBJECT, vars(eem)
72 
73  eem.setName(eem.__class__.__name__)
74  eem.start()
75 
76  #Simulate ExecuteTask request
77  eventBuilder = EventBuilder()
78  executeTask = dtm.EventObjects.ExecuteTask(111)
79  event = eventBuilder.build(DTM_CONSTS.EVENT_TYPES.EXECUTE_TASK, executeTask)
80  eem.onExecuteTask(event)
81  print "ExecuteTask event sent"
82 
83  time.sleep(TTL)
84 
85  eem.exit_flag = True
86 
87  print "Stopped after" + str(TTL) + " sec of run!"
88 
89 
ExecuteTask event object, to set task to execute on EE.
Class hides routines of bulding connection objects.