27

来源:互联网 发布:易赛充值软件 编辑:程序博客网 时间:2024/04/29 15:27
            return oErrorBase.base_failed;
        for elem in self.__list_ip_if_info:
            file_if_status.write('#\n');
            file_if_status.write('if_ip:');
            file_if_status.write(elem.m_str_ip);
            file_if_status.write('\n');
            file_if_status.write('if_id:');
            file_if_status.write(str(elem.m_str_id));
            file_if_status.write('\n');
            file_if_status.write('if_status:');
            file_if_status.write('\n');
            for key in elem.m_dict_if_status:
                file_if_status.write(str(key) + '@' + elem.m_dict_if_status[key]);
                file_if_status.write('\n');
        file_if_status.close();
        log_manager.GetInstance().CoutLog(' end to exec SaveIfStatusInfile',Com_if_status_manager);
        return oErrorBase.base_succeed;


    def LoadNewIfStatusFromFile(self,p_str_db_ip,p_str_db_user,p_str_db_pw):
        self.__list_new_ip_if_info = [];
        iResult = oErrorBase.base_succeed;
        log_manager.GetInstance().CoutLog(' begin to exec LoadNewIfStatusFromFile',Com_if_status_manager);
        file_if_status = None;
        try:
            file_if_status =  open(dir.output_config_file_dir +'new_if_status.cfg','r');
        except Exception, e:
            log_manager.GetInstance().CoutLog('open file failed,file name:' + 'output_config/new_if_status.cfg',Com_if_status_manager);
            return oErrorBase.base_failed;
        if file_if_status:
            line = file_if_status.readline();
            while ('' != line):
                if (line.find('#') != -1):
                    t_ip_if_status_info = ip_if_status_info();
                    line = file_if_status.readline();
                else:
                    if (line.find('if_ip') != -1):
                        str_ip = line.replace('if_ip:','');
                        str_ip = str_ip.replace('\n','');
                        t_ip_if_status_info.m_str_ip = str_ip;
                        line = file_if_status.readline();
                    elif (line.find('if_id') != -1):
                        str_id = line.replace('if_id:','');
                        str_id = str_id.replace('\n','');
                        int_id = int(str_id);
                        t_ip_if_status_info.m_str_id = int_id;
                        line = file_if_status.readline();
                    elif (line.find('if_status') != -1):
                        line = file_if_status.readline();
                        while (line.find('@') != -1):
                            if_index = '';
                            if_status = ''
                            pa_if_desc = re.compile('.*@');
                            ma_if_desc = pa_if_desc.search(line);
                            if ma_if_desc:
                                if_desc = ma_if_desc.group();
                                if_desc = if_desc.replace('@','');
                                if_desc = str(if_desc);
                            pa_if_status = re.compile('@.*');
                            ma_if_status = pa_if_status.search(line);
                            if ma_if_status:
                                if_status = ma_if_status.group();
                                if_status = if_status.replace('@','');
                                if_status = if_status.replace('\n','');
                            t_ip_if_status_info.m_dict_if_status[if_desc] = if_status;
                            line = file_if_status.readline();
                        self.__list_new_ip_if_info.append(t_ip_if_status_info);
        file_if_status.close();


        db_tools.GetInstance().SetDBInfo(p_str_db_ip,p_str_db_user,p_str_db_pw);
        t_list_ip_if_info = [];
        for elem in self.__list_new_ip_if_info:
            t_elem = ip_if_status_info();
            str_dev_ip = m_port_manager.GetInstance().GetMPort(elem.m_str_ip);
            iResult,int_dev_id = db_tools.GetInstance().QueryDevIDByDevIP(str_dev_ip);
            if (iResult != oErrorBase.base_succeed):
                return iResult;
            if (None != int_dev_id):
                t_elem.m_str_id = int_dev_id;
                t_elem.m_str_ip = str_dev_ip;
                inter_match_manager.GetInstance().GetInterMatchFileDictByIP(elem.m_str_ip);
                for key in elem.m_dict_if_status:
                    iResult,str_new_if_desc = inter_match_manager.GetInstance().GetDIBySIFromDic(key);
                    if (iResult != oErrorBase.base_succeed):
                        log_manager.GetInstance().CoutLog(' fail to exec LoadNewIfStatusFromFile',Com_if_status_manager);
                        return iResult;
                    if ('' != str_new_if_desc):
                        t_elem.m_dict_if_status[str_new_if_desc] = elem.m_dict_if_status[key];
                t_list_ip_if_info.append(t_elem);
        self.__list_new_ip_if_info = t_list_ip_if_info;


        file_if_status = None;
        try:
            file_if_status =  open(dir.output_config_file_dir +'simu_if_status.cfg','w+');
        except Exception, e:
            log_manager.GetInstance().CoutLog('open file failed,file name:' + 'output_config/simu_if_status.cfg',Com_if_status_manager);
            return oErrorBase.base_failed;
        for elem in t_list_ip_if_info:
            file_if_status.write('#\n');
            file_if_status.write('if_ip:');
            file_if_status.write(elem.m_str_ip);
            file_if_status.write('\n');
            file_if_status.write('if_id:');
            file_if_status.write(str(elem.m_str_id));
            file_if_status.write('\n');
            file_if_status.write('if_status:');
            file_if_status.write('\n');
            for key in elem.m_dict_if_status:
                file_if_status.write(str(key) + '@' + elem.m_dict_if_status[key]);
                file_if_status.write('\n');
        file_if_status.close();
        log_manager.GetInstance().CoutLog(' end to exec LoadNewIfStatusFromFile',Com_if_status_manager);
        return oErrorBase.base_succeed;


    def UpdateIfStatus(self,p_str_db_ip,p_str_db_user,p_str_db_pw):
        iResult = oErrorBase.base_succeed;
        log_manager.GetInstance().CoutLog(' begin to exec UpdateIfStatus',Com_if_status_manager);
        rest_tools.GetInstance().SetRestInfo(self.__des_imc_user,self.__des_imc_pw,self.__des_imc_url);
        db_tools.GetInstance().SetDBInfo(p_str_db_ip,p_str_db_user,p_str_db_pw);


        for elem in self.__list_ip_if_info:
            for elem_new in self.__list_new_ip_if_info:
                if (elem.m_str_id == elem_new.m_str_id):
                    for key in elem.m_dict_if_status:
                        for key_new in elem_new.m_dict_if_status:
                            if (key == key_new and elem.m_dict_if_status[key] != elem_new.m_dict_if_status[key_new]):
                                str_dev_ip = (elem.m_str_ip);
                                iResult,int_dev_id = db_tools.GetInstance().QueryDevIDByDevIP(str_dev_ip);
                                if (iResult != oErrorBase.base_succeed):
                                    return iResult;
                                if (None != int_dev_id):
0 0
原创粉丝点击