Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)