def handle_cmd(self, frame): """ Method: handle_cmd Description: 处理消息 Parameter: frame: AppFrame Return: Others: """ ne_id = int(frame.get_data()) self.ne_id = ne_id # 获取内存中的状态 # 如果已经在同步了,那么就不用理会本次请求 ret = NEInfoMgr.change_ne_state_to_exp(ne_id, self.get_worker().get_mit()) if ret != 0: tracelog.error("can not start sync full task. ne_id: %d" % ne_id) return tracelog.info("start sync full, ne_id:%d" % ne_id) # 如果不存在需要同步的MOC,那么就直接退出 mocs = self.get_worker().get_app().get_synchronized_mocs() if len(mocs) == 0: tracelog.info("NE has no MOC to sync, ne_id:%d" % ne_id) NEInfoMgr.change_ne_state_to_normal(self.ne_id , self.get_worker().get_mit() , False) return if self.__prepare_file_dir() != 0: tracelog.error("can not start sync full task. ne_id: %d" % ne_id) self.__change_ne_state_when_exp_failed(True) return # 获取NE的pid,向其发起同步 self.__send_request_to_ne()
def __change_ne_state_when_exp_failed(self, need_retry): """ Method: __change_ne_state_when_exp_failed Description: 当网元导出失败时,修改网元状态 Parameter: need_retry: 是否需要下次全同步 Return: Others: """ ret = NEInfoMgr.change_ne_state_to_normal(self.ne_id , self.get_worker().get_mit() , need_retry) if ret != 0: tracelog.error("__change_ne_state_when_exp_failed failed." "ne_id:%d" % self.ne_id)
def __change_ne_state_when_imp_ok(self): """ Method: __change_ne_state_when_imp_ok Description: 当导入网元的数据成功时修改网元的状态 Parameter: 无 Return: Others: """ ret = NEInfoMgr.change_ne_state_to_normal(self.ne_id , self.get_worker().get_mit() , False) if ret != 0: tracelog.error("__change_ne_state_when_imp_failed failed." "ne_id:%d" % self.ne_id)