def build_WLexec_finish_msg(wroklistid, rsp_event, dict_ret): """ function description: build worklist exec finish message parameters: wroklistid, rsp_event return: success--(CONSTRUCT_WLREQUEST_SUC,build_obj) localFail--(CONSTRUCT_WLREQUEST_FAIL,err_info) """ # create MessageProcessing object to build message build_obj = messageprocessing.MessageProcessing() build_obj.key_msg_type = event.EVENT_WORKLIST_GROUP build_obj.key_queue = event.QUEUE_WAIT build_obj.key_event = event.EV_WORKLIST_EXEC_FINISH_RQST build_obj.key_priority_level = event.PRIORITY_NORMAL # build key_object tmp_obj = event.MsgWorklistExecFinish(wroklistid, rsp_event, dict_ret) build_obj.key_obj = tmp_obj ret, ret_info = build_obj.build_message() if ret == messageprocessing.MSG_PROCESS_FAIL: err_info = ret_info log.run_err(err_info) return ConstructWLRequestHandle.CONSTRUCT_WLREQUEST_FAIL, err_info return ConstructWLRequestHandle.CONSTRUCT_WLREQUEST_SUC, build_obj
def build_WLexec_start_msg(wroklistid, wlbind_sn): """ function description: build worklist exec start request message parameters: worklistid return: success--(CONSTRUCT_WLREQUEST_SUC,build_obj) localFail--(CONSTRUCT_WLREQUEST_FAIL,err_info) """ # create MessageProcessing object to build message build_obj = messageprocessing.MessageProcessing() build_obj.key_msg_type = event.EVENT_WORKLIST_GROUP build_obj.key_queue = event.QUEUE_WAIT build_obj.key_event = event.EV_WORKLIST_EXEC_START_RQST build_obj.key_priority_level = event.PRIORITY_HIGH #PRIORITY_NORMAL # added by wangjun 2014-4-19 build_obj.key_sn = wlbind_sn # build key_object tmp_obj = event.MsgWorklistExecStart(wroklistid) build_obj.key_obj = tmp_obj ret, ret_info = build_obj.build_message() if ret == messageprocessing.MSG_PROCESS_FAIL: err_info = ret_info log.run_err(err_info) return ConstructWLRequestHandle.CONSTRUCT_WLREQUEST_FAIL, err_info return ConstructWLRequestHandle.CONSTRUCT_WLREQUEST_SUC, build_obj
def build_message(self): """ build message """ ret = MSG_PROCESS_SUC if self.key_msg_type == None or self.key_obj == None or self.key_event == None: err_info = "Message must including msg_type, key_obj, and msg_event!" log.run_err(err_info) return MSG_PROCESS_FAIL, err_info # if don't set KEY_QUEUE value, set default value "WAIT" if self.key_queue == None: self.key_queue = event.QUEUE_WAIT # build dict structure tmp_dict = {} tmp_dict[event.KEY_MESSAGE_TYPE] = self.key_msg_type tmp_dict[event.KEY_MESSAGE] = self.key_event tmp_dict[event.KEY_QUEUE] = self.key_queue tmp_dict[event.KEY_SN] = self.key_sn #add by wangjun-2013-04-16 if self.key_priority_level == None: self.key_priority_level = event.PRIORITY_NORMAL tmp_dict[event.KEY_PRIORITY_LEVEL] = self.key_priority_level #add by wangjun-20130525 if self.key_sender == None: self.key_sender = event.KEY_SENDER_AGENT tmp_dict[event.KEY_SENDER] = self.key_sender #add by wangjun 20130715 tmp_dict[event.KEY_SEQUENCE] = MessageProcessing.construct_sequence_id(self.key_sender) # pickle KEY_OBJECT value try: strio = StringIO() pickle.dump(self.key_obj, strio) tmp_dict[event.KEY_OBJECT] = strio.getvalue() except Exception,e: err_info = "pickle event.KEY_OBJECT occurs error:%s" % e log.run_err(err_info) return MSG_PROCESS_FAIL, err_info
def parse_message(self): """ parse message """ ret = MSG_PROCESS_SUC if not self.message: err_info = "The message is empty, don't need to parse!" log.run_err(err_info) return MSG_PROCESS_FAIL, err_info # convert type of message, from string to dict try: dict_msg = eval(self.message) except Exception,e: err_info = "eval message occurs error:%s" % e log.run_err(err_info) return MSG_PROCESS_FAIL, err_info
log.run_err(err_info) return MSG_PROCESS_FAIL, err_info # parse dict items self.key_event = dict_msg.get(event.KEY_MESSAGE) self.key_msg_type = dict_msg.get(event.KEY_MESSAGE_TYPE) self.key_sn = dict_msg.get(event.KEY_SN) self.key_queue = dict_msg.get(event.KEY_QUEUE) #add by wangjun-2013-04-16 self.key_priority_level=dict_msg.get(event.KEY_PRIORITY_LEVEL) #add by wangjun-20130525 self.key_sender=dict_msg.get(event.KEY_SENDER) #add by wangjun 20130715 self.key_sequence=dict_msg.get(event.KEY_SEQUENCE) # unpickle KEY_OBJECT value try: tmp_obj = dict_msg.get(event.KEY_OBJECT) strio = StringIO(tmp_obj) self.key_obj = pickle.load(strio) except Exception,e: err_info = "Unpickle event.KEY_OBJECT occurs error:%s" % e log.run_err(err_info) return MSG_PROCESS_FAIL, err_info ret_info = "parse message success" return ret, ret_info