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
dtm.ClientInterfaceService.ClientInterfaceService Class Reference

The gateway for dmt client communications. More...

Inheritance diagram for dtm.ClientInterfaceService.ClientInterfaceService:
Collaboration diagram for dtm.ClientInterfaceService.ClientInterfaceService:

Public Member Functions

def __init__ (self, configParser, connectBuilderLight)
 constructor initialise all connections and event handlers More...
 
def onTaskManagerRoute (self, event)
 handler to route all event to TaksManager More...
 
def onEEManagerRoute (self, event)
 handler to route all event to EEManager More...
 
def onDTMClientRoute (self, event)
 handler to route all response event to DTMClient More...
 
def registreEvent (self, event)
 add event in map of processing events More...
 
def getRequestEvent (self, event)
 get request event from processEvents map More...
 
def unregisteEvent (self, event)
 delete event in map of processing events More...
 
- Public Member Functions inherited from app.BaseServerManager.BaseServerManager
def __init__ (self, poller_manager=None, admin_connection=None, conectionLightBuilder=None, exceptionForward=False, dumpStatVars=True)
 constructor More...
 
def addConnection (self, name, connection)
 
def setEventHandler (self, eventType, handler)
 set event handler rewrite the current handler for eventType More...
 
def send (self, connect_name, event)
 send event More...
 
def reply (self, event, reply_event)
 wrapper for sending event in reply for event More...
 
def poll (self)
 poll function polling connections receive as multipart msg, the second argument is pickled pyobj More...
 
def process (self, event)
 process event call the event handler method that was set by user or on_unhandled_event method if not set More...
 
def run (self)
 
def is_connection_registered (self, name)
 check is a connection was registered in a instance of BaseServerManager i object More...
 
def on_poll_timeout (self)
 function will call every time when ConnectionTimeout exception arrive More...
 
def on_unhandled_event (self, event)
 function will call every time when arrive doesn't set handler for event type of event.evenType More...
 
def build_poller_list (self)
 
def clear_poller (self)
 
def onAdminState (self, event)
 onAdminState event handler process admin SHUTDOWN command More...
 
def onAdminFetchStatData (self, event)
 onAdminState event handler process admin command More...
 
def onAdminSuspend (self, event)
 onAdminState event handler process admin command More...
 
def getStatDataFields (self, fields)
 getStatDataFields returns stat data from storage More...
 
def getSystemStat (self)
 getSystemStat returns stat data for system indicators: RAMV, RAMR and CPU More...
 
def getConfigVarsFields (self, fields)
 getConfigVarsFields returns config vars from storage More...
 
def onAdminGetConfigVars (self, event)
 onAdminGetConfigVars event handler process getConfigVars admin command, fill and return config vars array from internal storage More...
 
def onAdminSetConfigVars (self, event)
 onAdminSetConfigVars event handler process setConfigVars admin command More...
 
def setConfigVars (self, setConfigVars)
 processSetConfigVars sets config vars in storage More...
 
def sendAdminReadyEvent (self)
 send ready event to notify adminInterfaceService More...
 
def createLogMsg (self, event)
 from string message from event object More...
 
def initStatFields (self, connect_name)
 add record in statFields More...
 
def updateStatField (self, field_name, value, operation=STAT_FIELDS_OPERATION_ADD)
 update values of stat field - default sum More...
 
def processSpecialConfigVars (self, name, value)
 send ready event to notify adminInterfaceService More...
 
def getLogLevel (self)
 Get log level from first of existing loggers. More...
 
def setLogLevel (self, level)
 Set log level for all loggers. More...
 
def saveStatVarsDump (self)
 Save stat vars in json file. More...
 
def loadStatVarsDump (self)
 Load stat vars in json file. More...
 
def getStatVarsDumpFileName (self)
 Get stat vars file name. More...
 
def createDBIDict (self, configParser)
 

Public Attributes

 beforeStop
 
 cfg_section
 
 processEvents
 
- Public Attributes inherited from app.BaseServerManager.BaseServerManager
 dumpStatVars
 
 poller_manager
 
 eventBuilder
 
 exit_flag
 
 pollTimeout
 
 connections
 
 event_handlers
 
 statFields
 stat fields container More...
 
 configVars
 
 exceptionForward
 

Static Public Attributes

string SERVER_TCP = "server_tcp"
 
string SERVER_INPROC = "server"
 
string CONFIG_SERVER_HOST = "serverHost"
 
string CONFIG_SERVER_PORT = "serverPort"
 
string TASKS_MANAGER_CLIENT = "clientTasksManager"
 
string EXECUTION_ENVIRONMENT_MANAGER_CLINET = "clientExecutionEnvironmentManager"
 
- Static Public Attributes inherited from app.BaseServerManager.BaseServerManager
string ADMIN_CONNECT_ENDPOINT = "Admin"
 
string ADMIN_CONNECT_CLIENT = "Admin"
 
int POLL_TIMEOUT_DEFAULT = 3000
 
int STAT_FIELDS_OPERATION_ADD = 0
 
int STAT_FIELDS_OPERATION_SUB = 1
 
int STAT_FIELDS_OPERATION_SET = 2
 
int STAT_FIELDS_OPERATION_INIT = 3
 
string POLL_TIMEOUT_CONFIG_VAR_NAME = "POLL_TIMEOUT"
 
string LOG_LEVEL_CONFIG_VAR_NAME = "LOG_LEVEL"
 
string STAT_DUMPS_DEFAULT_DIR = "/tmp/"
 
string STAT_DUMPS_DEFAULT_NAME = "%APP_NAME%_%CLASS_NAME%_stat_vars.dump"
 
dictionary LOGGERS_NAMES = {APP_CONSTS.LOGGER_NAME, "dc", "dtm", "root", ""}
 

Detailed Description

The gateway for dmt client communications.

Definition at line 24 of file ClientInterfaceService.py.

Constructor & Destructor Documentation

◆ __init__()

def dtm.ClientInterfaceService.ClientInterfaceService.__init__ (   self,
  configParser,
  connectBuilderLight 
)

constructor initialise all connections and event handlers

Parameters
configParserconfig parser object
connectBuilderLightinstance of ConnectBuilderLight object
Constructor

Definition at line 38 of file ClientInterfaceService.py.

38  def __init__(self, configParser, connectBuilderLight):
39  '''
40  Constructor
41  '''
42  super(ClientInterfaceService, self).__init__()
43 
44  self.beforeStop = False
45  self.cfg_section = self.__class__.__name__
46 
47  serverAddrInproc = configParser.get(self.cfg_section, self.SERVER_INPROC)
48  serverHost = configParser.get(CONFIG_SECTION, self.CONFIG_SERVER_HOST)
49  serverPort = configParser.get(CONFIG_SECTION, self.CONFIG_SERVER_PORT)
50  serverAddrTcp = serverHost + ":" + str(serverPort)
51  clientTaskManager = configParser.get(CONFIG_SECTION, self.TASKS_MANAGER_CLIENT)
52  clientExecutionEnvironmentManager = configParser.get(CONFIG_SECTION, self.EXECUTION_ENVIRONMENT_MANAGER_CLINET)
53 
54  serverConnectionInproc = connectBuilderLight.build(consts.SERVER_CONNECT, serverAddrInproc)
55  serverConnectionTcp = connectBuilderLight.build(consts.SERVER_CONNECT, serverAddrTcp, consts.TCP_TYPE)
56  taskManagerConnection = connectBuilderLight.build(consts.CLIENT_CONNECT, clientTaskManager)
57  eeManagerConnection = connectBuilderLight.build(consts.CLIENT_CONNECT, clientExecutionEnvironmentManager)
58 
59  self.addConnection(self.SERVER_TCP, serverConnectionTcp)
60  self.addConnection(self.SERVER_INPROC, serverConnectionInproc)
61  self.addConnection(self.TASKS_MANAGER_CLIENT, taskManagerConnection)
62  self.addConnection(self.EXECUTION_ENVIRONMENT_MANAGER_CLINET, eeManagerConnection)
63 
64  self.setEventHandler(EVENT_TYPES.NEW_TASK, self.onTaskManagerRoute)
65  self.setEventHandler(EVENT_TYPES.UPDATE_TASK, self.onTaskManagerRoute)
66  self.setEventHandler(EVENT_TYPES.GET_TASK_STATUS, self.onTaskManagerRoute)
67  self.setEventHandler(EVENT_TYPES.FETCH_RESULTS_CACHE, self.onTaskManagerRoute)
68  self.setEventHandler(EVENT_TYPES.DELETE_TASK, self.onTaskManagerRoute)
69  self.setEventHandler(EVENT_TYPES.UPDATE_TASK_FIELDS, self.onTaskManagerRoute)
70  self.setEventHandler(EVENT_TYPES.FETCH_AVAILABLE_TASK_IDS, self.onTaskManagerRoute)
71 
72  self.setEventHandler(EVENT_TYPES.CHECK_TASK_STATE, self.onEEManagerRoute)
73  self.setEventHandler(EVENT_TYPES.FETCH_TASK_RESULTS, self.onEEManagerRoute)
74  self.setEventHandler(EVENT_TYPES.DELETE_TASK_RESULTS, self.onEEManagerRoute)
75 
76  self.setEventHandler(EVENT_TYPES.NEW_TASK_RESPONSE, self.onDTMClientRoute)
77  self.setEventHandler(EVENT_TYPES.UPDATE_TASK_RESPONSE, self.onDTMClientRoute)
78  self.setEventHandler(EVENT_TYPES.CHECK_TASK_STATE_RESPONSE, self.onDTMClientRoute)
79  self.setEventHandler(EVENT_TYPES.GET_TASK_STATUS_RESPONSE, self.onDTMClientRoute)
80  self.setEventHandler(EVENT_TYPES.FETCH_TASK_RESULTS_RESPONSE, self.onDTMClientRoute)
81  self.setEventHandler(EVENT_TYPES.DELETE_TASK_RESPONSE, self.onDTMClientRoute)
82  self.setEventHandler(EVENT_TYPES.DELETE_TASK_RESULTS_RESPONSE, self.onDTMClientRoute)
83  self.setEventHandler(EVENT_TYPES.UPDATE_TASK_FIELDS_RESPONSE, self.onDTMClientRoute)
84  self.setEventHandler(EVENT_TYPES.AVAILABLE_TASK_IDS_RESPONSE, self.onDTMClientRoute)
85 
86  #map of incoming event, which are in processing
87  # event.uid => event without eventObj field
88  self.processEvents = dict()
89 
90 
def __init__(self)
constructor
Definition: UIDGenerator.py:19

Member Function Documentation

◆ getRequestEvent()

def dtm.ClientInterfaceService.ClientInterfaceService.getRequestEvent (   self,
  event 
)

get request event from processEvents map

Parameters
eventinstance of Event object
Returns
event instance of Event object

Definition at line 138 of file ClientInterfaceService.py.

138  def getRequestEvent(self, event):
139  return self.processEvents[event.uid]
140 
141 
Here is the caller graph for this function:

◆ onDTMClientRoute()

def dtm.ClientInterfaceService.ClientInterfaceService.onDTMClientRoute (   self,
  event 
)

handler to route all response event to DTMClient

Parameters
eveninstance of Event object

Definition at line 118 of file ClientInterfaceService.py.

118  def onDTMClientRoute(self, event):
119  try:
120  request_event = self.getRequestEvent(event)
121  self.reply(request_event, event)
122  self.unregisteEvent(request_event)
123  except KeyError as err:
124  logger.error(str(err.message))
125 
126 
Here is the call graph for this function:

◆ onEEManagerRoute()

def dtm.ClientInterfaceService.ClientInterfaceService.onEEManagerRoute (   self,
  event 
)

handler to route all event to EEManager

Parameters
eveninstance of Event object

Definition at line 110 of file ClientInterfaceService.py.

110  def onEEManagerRoute(self, event):
111  self.send(self.EXECUTION_ENVIRONMENT_MANAGER_CLINET, event)
112  self.registreEvent(event)
113 
114 
Here is the call graph for this function:

◆ onTaskManagerRoute()

def dtm.ClientInterfaceService.ClientInterfaceService.onTaskManagerRoute (   self,
  event 
)

handler to route all event to TaksManager

Parameters
eveninstance of Event object

Definition at line 94 of file ClientInterfaceService.py.

94  def onTaskManagerRoute(self, event):
95  if not self.beforeStop:
96  if event.eventType == EVENT_TYPES.DELETE_TASK and event.eventObj.deleteTaskId == DeleteTask.GROUP_DELETE:
97  self.beforeStop = True
98  self.send(self.TASKS_MANAGER_CLIENT, event)
99  self.registreEvent(event)
100  else:
101  defaultObject = GeneralResponse(GeneralResponse.ERROR_OK, "DTM in prestopped state")
102  responseEvent = self.eventBuilder.build(EVENT_TYPES.GENERAL_RESPONSE, defaultObject)
103  self.reply(event, responseEvent)
104 
105 
106 
Here is the call graph for this function:

◆ registreEvent()

def dtm.ClientInterfaceService.ClientInterfaceService.registreEvent (   self,
  event 
)

add event in map of processing events

Parameters
eveninstance of Event object

Definition at line 130 of file ClientInterfaceService.py.

130  def registreEvent(self, event):
131  event.eventObj = None
132  self.processEvents[event.uid] = event
133 
134 
Here is the caller graph for this function:

◆ unregisteEvent()

def dtm.ClientInterfaceService.ClientInterfaceService.unregisteEvent (   self,
  event 
)

delete event in map of processing events

Parameters
eveninstance of Event object

Definition at line 145 of file ClientInterfaceService.py.

145  def unregisteEvent(self, event):
146  del self.processEvents[event.uid]
147 
Here is the caller graph for this function:

Member Data Documentation

◆ beforeStop

dtm.ClientInterfaceService.ClientInterfaceService.beforeStop

Definition at line 44 of file ClientInterfaceService.py.

◆ cfg_section

dtm.ClientInterfaceService.ClientInterfaceService.cfg_section

Definition at line 45 of file ClientInterfaceService.py.

◆ CONFIG_SERVER_HOST

string dtm.ClientInterfaceService.ClientInterfaceService.CONFIG_SERVER_HOST = "serverHost"
static

Definition at line 28 of file ClientInterfaceService.py.

◆ CONFIG_SERVER_PORT

string dtm.ClientInterfaceService.ClientInterfaceService.CONFIG_SERVER_PORT = "serverPort"
static

Definition at line 29 of file ClientInterfaceService.py.

◆ EXECUTION_ENVIRONMENT_MANAGER_CLINET

string dtm.ClientInterfaceService.ClientInterfaceService.EXECUTION_ENVIRONMENT_MANAGER_CLINET = "clientExecutionEnvironmentManager"
static

Definition at line 31 of file ClientInterfaceService.py.

◆ processEvents

dtm.ClientInterfaceService.ClientInterfaceService.processEvents

Definition at line 88 of file ClientInterfaceService.py.

◆ SERVER_INPROC

string dtm.ClientInterfaceService.ClientInterfaceService.SERVER_INPROC = "server"
static

Definition at line 27 of file ClientInterfaceService.py.

◆ SERVER_TCP

string dtm.ClientInterfaceService.ClientInterfaceService.SERVER_TCP = "server_tcp"
static

Definition at line 26 of file ClientInterfaceService.py.

◆ TASKS_MANAGER_CLIENT

string dtm.ClientInterfaceService.ClientInterfaceService.TASKS_MANAGER_CLIENT = "clientTasksManager"
static

Definition at line 30 of file ClientInterfaceService.py.


The documentation for this class was generated from the following file: