2 Created on Mar 05, 2014 6 @link: http://hierarchical-cluster-engine.com/ 7 @copyright: Copyright © 2013-2014 IOIX Ukraine 8 @license: http://hierarchical-cluster-engine.com/license/ 13 import cPickle
as pickle
33 logger = logging.getLogger(CONSTANTS.LOGGER_NAME)
40 TASK_DATA_MANAGER_SERV_NAME =
"Server" 41 TASK_DATA_MANAGER_SERV_CONFIG_NAME =
"ServerName" 46 def __init__(self, config, connectionBuilder=None):
47 BaseServerManager.__init__(self)
75 except ConfigParser.NoSectionError:
76 logger.error(
">>> TasksDataManager can't read config - Section Error")
77 except ConfigParser.NoOptionError:
78 logger.error(
">>> TasksDataManager can't read config - Option Error")
86 dic = dict(self.
config.
items(CONSTANTS.DB_CONFIG_SECTION))
97 if eventType == EVENT.NEW_TASK:
99 elif eventType == EVENT.FETCH_TASK_DATA:
100 ret = self.
dbi.fetch(data,
"id=%s" % data.id)
101 elif eventType == EVENT.UPDATE_TASK:
102 self.
dbi.update(data,
"id=%s" % data.id)
103 elif eventType == EVENT.DELETE_TASK_DATA:
104 self.
dbi.delete(data,
"id=%s" % data.id)
105 elif eventType == EVENT.INSERT_EE_DATA:
106 self.
dbi.insert(data)
107 elif eventType == EVENT.FETCH_EE_DATA:
108 ret = self.
dbi.fetch(data,
"id=%s" % data.id)
109 elif eventType == EVENT.DELETE_EE_DATA:
110 self.
dbi.delete(data,
"id=%s" % data.id)
121 retEventType = EVENT.GENERAL_RESPONSE
123 if eventType == EVENT.NEW_TASK:
124 retEventType = EVENT.NEW_TASK_RESPONSE
125 elif eventType == EVENT.FETCH_TASK_DATA:
126 retEventType = EVENT.FETCH_TASK_DATA_RESPONSE
127 elif eventType == EVENT.UPDATE_TASK:
128 retEventType = EVENT.UPDATE_TASK_RESPONSE
129 elif eventType == EVENT.DELETE_TASK_DATA:
130 retEventType = EVENT.DELETE_TASK_DATA_RESPONSE
131 elif eventType == EVENT.INSERT_EE_DATA:
132 retEventType = EVENT.INSERT_EE_DATA_RESPONSE
133 elif eventType == EVENT.FETCH_EE_DATA:
134 retEventType = EVENT.FETCH_EE_DATA_RESPONSE
135 elif eventType == EVENT.DELETE_EE_DATA:
136 retEventType = EVENT.DELETE_EE_DATA_RESPONSE
144 serializeStr = pickle.dumps(event.eventObj)
145 if event.eventType == EVENT.NEW_TASK
or \
146 event.eventType == EVENT.FETCH_TASK_DATA
or \
147 event.eventType == EVENT.UPDATE_TASK
or \
148 event.eventType == EVENT.DELETE_TASK_DATA:
152 data.id = event.eventObj.id
153 data.data = serializeStr
160 if res
is not None and len(res) > 0
and res[0] !=
None and hasattr(res[0],
'data')
and res[0].data !=
None:
161 dbiRet = pickle.loads(str(res[0].data))
163 except DBIErr
as err:
164 logger.error(
"DB error: %s", str(err))
165 dbiRet.errorCode = err.errCode
166 dbiRet.errorMessage =
"Some DB error in TasksDataManager.eventProcessing [" + str(err) +
"]" 167 except Exception, err:
168 logger.error(
"Error: %s", str(err))
169 dbiRet.errorMessage =
"Some error in TasksDataManager.eventProcessing [" + str(err) +
"]" 171 retEvent = self.
eventBuilder.build(retEventType, dbiRet)
178 errorStr = msg + str(event.eventType)
186 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [NEW_TASK_REQUEST] Handler start"))
187 if event.eventType != EVENT.NEW_TASK:
188 self.
badEventType(
">>> Wrong Event type [NEW_TASK_REQUEST] != ", event)
190 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [NEW_TASK_REQUEST] Handler finish"))
194 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [FETCH_TASK_REQUEST] Handler start"))
195 if event.eventType != EVENT.FETCH_TASK_DATA:
196 self.
badEventType(
">>> Wrong Event type [FETCH_TASK_REQUEST] != ", event)
198 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [FETCH_TASK_REQUEST] Handler finish"))
202 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [UPDATE_TASK_REQUEST] Handler start"))
203 if event.eventType != EVENT.UPDATE_TASK:
204 self.
badEventType(
">>> Wrong Event type [UPDATE_TASK_REQUEST] != ", event)
206 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [UPDATE_TASK_REQUEST] Handler finish"))
210 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [DELETE_TASK_DATA_REQUEST] Handler start"))
211 if event.eventType != EVENT.DELETE_TASK_DATA:
212 self.
badEventType(
">>> Wrong Event type [DELETE_TASK_DATA_REQUEST] != ", event)
214 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [DELETE_TASK_DATA_REQUEST] Handler finish"))
218 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [INSERT_EE_REQUEST] Handler start"))
219 if event.eventType != EVENT.INSERT_EE_DATA:
220 self.
badEventType(
">>> Wrong Event type [INSERT_EE_REQUEST] != ", event)
222 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [INSERT_EE_REQUEST] Handler finish"))
226 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [FETCH_EE_REQUEST] Handler start"))
227 if event.eventType != EVENT.FETCH_EE_DATA:
228 self.
badEventType(
">>> Wrong Event type [FETCH_EE_REQUEST] != ", event)
230 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [FETCH_EE_REQUEST] Handler finish"))
234 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [DELETE_EE_REQUEST] Handler start"))
235 if event.eventType != EVENT.DELETE_EE_DATA:
236 self.
badEventType(
">>> Wrong Event type [DELETE_EE_REQUEST] != ", event)
238 logger.debug(
LogFormatterEvent(event, [],
">>> TasksDataManager [DELETE_EE_REQUEST] Handler finish"))
def reply(self, event, reply_event)
wrapper for sending event in reply for event
def badEventType(self, msg, event)
eventProcessing method Method contains main error processing for incoming events
def onFetchTask(self, event)
def eventProcessing(self, event)
eventProcessing method Method contains main processing with incoming events
def onUpdateTask(self, event)
GeneralResponse event object, represents general state response for multipurpose usage.
def onFetchEEResponse(self, event)
def __init__(self, config, connectionBuilder=None)
constructor initialise all class variable and recieve config as param
def setEventHandler(self, eventType, handler)
set event handler rewrite the current handler for eventType
def connectionInit(self)
connectionInit method initializes internal inproc connection
def addConnection(self, name, connection)
This is app base class for management server connection end-points and parallel transport messages pr...
def onNewTask(self, event)
Callbacks methods Event callbacks.
Class hides routines of bulding connection objects.
def dbiProcessing(self, data, eventType)
dbiProcessing method Method contains main processing with database API
def onInsertEEResponse(self, event)
string TASK_DATA_MANAGER_SERV_NAME
Class contents TasksDataManager module implementation.
def getResponceEventType(self, eventType)
Get responce event type method.
string TASK_DATA_MANAGER_SERV_CONFIG_NAME
def onDeleteTask(self, event)
def onDeleteEEResponse(self, event)
def dbInit(self)
dbInit method initializes internal database API