24

来源:互联网 发布:易赛充值软件 编辑:程序博客网 时间:2024/04/30 16:05
                    break;
                pa_info_head = re.compile('\[\[.*?\]\]');
                ma_info_head = pa_info_head.search(line);
                if ma_info_head:
                    t_hcldev_info.str_dev_header = line;
                    while True:
                        line = file_hclnet.readline();
                        if (line == ''):
                            self.list_hcldev_info.append(t_hcldev_info);
                            break;
                        ma_info_head = pa_info_head.search(line);
                        if ma_info_head:
                            t_hcldev_info.str_dev_type = 'host';
                            self.list_hcldev_info.append(t_hcldev_info);
                            t_hcldev_info = hcl_dev_info();
                            t_hcldev_info.str_dev_header = line;
                        else:
                            t_hcldev_info.str_dev_content = t_hcldev_info.str_dev_content + line;
        for elem in self.list_hcldev_info:
            if (elem.str_dev_header.find('SR66') != -1):
                elem.str_dev_type = 'multi';
            elif (elem.str_dev_header.find('SR99') != -1):
                elem.str_dev_type = 'SR99';
            elif (elem.str_dev_header.find('SIM1105') != -1):
                elem.str_dev_type = 'sim';
            elif (elem.str_dev_header.find('Cloud') != -1):
                elem.str_dev_type = 'host';
            elif (elem.str_dev_header.find('Remote') != -1):
                elem.str_dev_type = 'remote';
                elem.str_dev_name = elem.str_dev_header.replace('    [[Remote ','');
                elem.str_dev_name = elem.str_dev_name.replace(']]\n','');
                pa_remote_ip = re.compile('remoteServerIP.*\n');
                ma_remote_ip = pa_remote_ip.search(elem.str_dev_content);
                str_remote_ip = '';
                str_remote_proj = '';
                if ma_remote_ip:
                    str_remote_ip = ma_remote_ip.group();
                    str_remote_ip = str_remote_ip.replace('remoteServerIP = ','');
                    str_remote_ip = str_remote_ip.replace('\n','');
                pa_remote_proj = re.compile('remoteProjectName.*\n');
                ma_remote_proj = pa_remote_proj.search(elem.str_dev_content);
                if ma_remote_proj:
                    str_remote_proj = ma_remote_proj.group();
                    str_remote_proj = str_remote_proj.replace('remoteProjectName = ','');
                    str_remote_proj = str_remote_proj.replace('\n','');   
                rdi = remote_dev_info();
                rdi.m_str_dev_name = elem.str_dev_name;
                rdi.m_str_remote_server_ip = str_remote_ip;
                rdi.m_str_remote_proj = str_remote_proj;
                rdi.m_str_proj = str_file_name.replace('.net','');
                self.list_remote_dev.append(rdi);
        file_hclnet.close();
        log_manager.GetInstance().CoutLog('end to LoadNetFile',Com_hcl_modify_manager);
        return oErrorBase.base_succeed;


    def PrintDevInfoList(self):
        for elem in self.list_hcldev_info:
            print (elem.str_dev_header + elem.str_dev_content);
        log_manager.GetInstance().CoutLog('simip:',Com_hcl_modify_manager);
        for elem in self.__list_ip_sim:
            print elem;
        log_manager.GetInstance().CoutLog('multiip:',Com_hcl_modify_manager);
        for elem in self.__list_ip_multi:
            print elem;


    def __ModifyRemoteInfo(self):
        pass;


    def ModifDevInfoListA(self,p_str_topo_name):
        iResult = self.__CheckHclFileAndRealDevMatch();
        if (oErrorBase.base_succeed != iResult):
            return iResult;
        t_list_remote_dev_info = [];
        log_manager.GetInstance().CoutLog('begin to ModifDevInfoList',Com_hcl_modify_manager);
        self.__dict_ip_hcl_to_date = {};
        t_list_link_info = link_manager.GetInstance().GetLinkInfoList();
        for elem in self.list_hcldev_info:
            if ('host' == elem.str_dev_type or 'remote' == elem.str_dev_type):
                continue;
            int_i = 0;
            for elem_link_info in t_list_link_info:
                int_i = int_i + 1;
                if (elem_link_info.str_dev_type != elem.str_dev_type):
                    continue;
                else:
                    pa_order = re.compile('\s\w.*?]');
                    ma_order = pa_order.search(elem.str_dev_header);
                    if ma_order:
                        str_order = ma_order.group();
                        str_hcl_ip = str_order.replace(' ','');
                        str_hcl_ip = str_order.replace(']','');
                        self.__dict_ip_hcl_to_data[str_hcl_ip] = elem_link_info.str_dev_ip;
                        t_ip = elem_link_info.str_dev_ip;
                        t_str_ip = ' ' + t_ip + ']';
                        elem.str_dev_header = elem.str_dev_header.replace(str_order,t_str_ip);
                        link_manager.GetInstance().GetDevLinkInfoFromDB(elem_link_info.str_dev_ip,p_str_topo_name,None,0);
                        elem_link_info.dict_link = link_manager.GetInstance().GetDevLinkNewDict();
                        if ('sim' == elem.str_dev_type):
                            self.__list_ip_sim.append(elem_link_info.str_dev_ip);
                            elem.str_dev_ip = elem_link_info.str_dev_ip;
                            str_slot0_inter = '';
                            for key in elem_link_info.dict_link:
                                opp_ip_inter = elem_link_info.dict_link[key];
                                pa_ip = re.compile('.*?@');
                                ma_ip = pa_ip.search(opp_ip_inter);
                                if ma_ip:
                                    t_ip = ma_ip.group();
                                    str_opp_ip = t_ip.replace('@','');
                                    opp_inter = opp_ip_inter.replace(t_ip,'');
                                    if (link_manager.GetInstance().IsMultiDev(str_opp_ip) == 0):
                                        opp_inter = opp_inter.replace('GigabitEthernet0/','GE_');
                                    key = key.replace('GigabitEthernet0/','GE_');
                                    line = '        ' + key + ' = ' + str_opp_ip + ' ' + opp_inter;
                                    str_opp_info = key + '@' + str_opp_ip + ' ' + (opp_inter.replace('GigabitEthernet','GE_'));
                                    elem.list_opp_ip_inter.append(str_opp_info);
                                    line = line.replace('GigabitEthernet','GE_');
                                    str_slot0_inter = str_slot0_inter + line + '\n';
                            pa_slot0 = re.compile('slot0.*?\n');
                            ma_slot0 = pa_slot0.search(elem.str_dev_content);
                            if ma_slot0:
                                str_slot0 = ma_slot0.group();
                                elem.str_dev_content = elem.str_dev_content.replace(str_slot0,str_slot0 + str_slot0_inter);
                        elif ('multi' == elem.str_dev_type or 'SR99' == elem.str_dev_type):
0 0
原创粉丝点击