23

来源:互联网 发布:仿淘宝手机商城模板 编辑:程序博客网 时间:2024/04/30 16:19
        return oErrorBase.base_succeed;


    def ClosePipe(self):
        if (None != self.__hcl_pipe):
            os.close(self.__hcl_pipe);


    def CopyHclFileToHclServer(self,t_list_hcl_param):
        log_manager.GetInstance().CoutLog('begin to exec CopyHclFileToHclServer',Com_hcl_manager);
        for elem in t_list_hcl_param:
            str_name = '';
            pa_dir = re.compile('.*/');
            ma_dir = pa_dir.search(elem.m_str_hcl_project_dir_file);
            if ma_dir:
                str_dir = ma_dir.group();
                str_name = elem.m_str_hcl_project_dir_file.replace(str_dir,'');
            else:
                log_manager.GetInstance().CoutLog('get file name failed',Com_hcl_manager);
                return oErrorBase.base_failed;
            str_des_file = elem.m_str_hcl_project_dir_file;
            pa_q = re.compile('.*:');
            ma_q = pa_q.search(str_des_file);
            if ma_q:
                str_q = ma_q.group();
                str_des_file = str_des_file.replace(str_q,'');
                str_des_file = '\\\\' + elem.m_str_ip + str_des_file;
            else:
                log_manager.GetInstance().CoutLog('hcl dir is not correct',Com_hcl_manager);
                return oErrorBase.base_failed;
            str_src_file = './' + dir.output_config_file_dir + 'new_' + str_name;
            if os.path.exists(str_src_file):
                try:
                    shutil.copyfile(str_src_file,str_des_file);
                except Exception, e:
                    log_manager.GetInstance().CoutLog('copy file error,srcfile:' + str_src_file + ' desfile:' + str_des_file,Com_hcl_manager);
                    log_manager.GetInstance().CoutLog(str(e),Com_hcl_manager);
                    return oErrorBase.base_failed;
                log_manager.GetInstance().CoutLog('copy ok',Com_hcl_manager);
            else:
                log_manager.GetInstance().CoutLog('new hcl file is not exist',Com_hcl_manager);
                return oErrorBase.base_failed;
        log_manager.GetInstance().CoutLog('end to exec CopyHclFileToHclServer',Com_hcl_manager);
        return oErrorBase.base_succeed;


    def CopyDesConfigFileToHclServer(self,str_des_dir,p_str_hcl_server_dir,p_str_server_ip):
        list_des_file = os.listdir(dir.des_config_file_dir);#从该读取目录读取设备原始配置文件,修改后的配置文件放在des_config_file目录下
        if (0 == len(list_des_file)):
            log_manager.GetInstance().CoutLog('there is no new config file in the dir',Com_hcl_manager);
            return oErrorBase.base_failed;
        str_hcl_server_config_file = '';
        for elem in list_des_file:
            str_des_file = './' + dir.des_config_file_dir + elem;
            if os.path.exists(str_des_file):
                str_hcl_server_config_file = '\\\\' + p_str_server_ip + '/' + p_str_hcl_server_dir + elem;
                try:
                    shutil.copyfile(str_des_file,str_hcl_server_config_file);
                except Exception, e:
                    log_manager.GetInstance().CoutLog(str(e),Com_hcl_manager);
                    log_manager.GetInstance().CoutLog('copy failed,file name:' + str_hcl_server_config_file,Com_hcl_manager);
                    return oErrorBase.base_failed;
        return oErrorBase.base_succeed;




**********************************


文件名:hcl_modify_manager.py
**********************************
# -*- coding: utf8 -*-
import re;
from link_manager import *;
import sys;
from error_manager import *;
from data_struct_manager import *;
from log_manager import *;


class hcl_modify_manager:


    def __init__(self):
        self.__instance = None;
        self.__net_file_header = '';
        self.list_hcldev_info = [];
        self.__list_ip_sim = [];
        self.__list_ip_multi = [];
        self.__dict_ip_hcl_to_data = {};
        self.__str_hcl_file_name = '';
        self.proj = '';
        self.list_remote_dev = [];


    @staticmethod
    def GetInstance():
        if (None == hcl_modify_manager.__instance):
            hcl_modify_manager.__instance =  hcl_modify_manager();
        return hcl_modify_manager.__instance;


    def IsDevInThisProj(self,p_str_dev_ip):
        log_manager.GetInstance().CoutLog('begin to exec IsDevInThisProj',Com_hcl_modify_manager);
        for elem in self.__list_ip_sim:
            if p_str_dev_ip == elem:
                log_manager.GetInstance().CoutLog('end to exec IsDevInThisProj',Com_hcl_modify_manager);
                return True;
        for elem in self.__list_ip_multi:
            if p_str_dev_ip == elem:
                log_manager.GetInstance().CoutLog('end to exec IsDevInThisProj',Com_hcl_modify_manager);
                return True;
        log_manager.GetInstance().CoutLog('end to exec IsDevInThisProj',Com_hcl_modify_manager);
        return False;
    
    def LoadNetFile(self,str_file_name):
        log_manager.GetInstance().CoutLog('begin to LoadNetFile',Com_hcl_modify_manager);
        self.list_hcldev_info = [];
        self.__str_hcl_file_name = str_file_name;
        self.proj = str_file_name.replace('.net','');
        file_hclnet = None;
        try:
            file_hclnet = open(dir.user_config_file_dir + str_file_name,'r');
        except Exception, e:
            log_manager.GetInstance().CoutLog('file open failed,file name:' + dir.user_config_file_dir + str_file_name,Com_hcl_modify_manager);
            return oErrorBase.base_failed;
        while True:
            pa_head_over = re.compile('udp =.*?\n');
            line = file_hclnet.readline();
            ma_head_over = pa_head_over.search(line);
            if ma_head_over:
                self.__net_file_header = self.__net_file_header + line;
                break;
            else:
                self.__net_file_header = self.__net_file_header + line;
        while True:
            t_hcldev_info = hcl_dev_info();
            line = file_hclnet.readline();
            if (line == ''):
                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();
                    ma_info_head = pa_info_head.search(line);
                    if ma_info_head:
                        self.list_hcldev_info.append(t_hcldev_info);
                        t_hcldev_info = hcl_dev_info();
                        t_hcldev_info.str_dev_content = '';
                        t_hcldev_info.str_dev_header = line;
                    elif (line.find('[GNS3-DATA]') != -1):
                        self.list_hcldev_info.append(t_hcldev_info);
                        t_hcldev_info = hcl_dev_info();
                        break;
                    elif (line == ''):
                        self.list_hcldev_info.append(t_hcldev_info);
                        break;
                    else:
                        t_hcldev_info.str_dev_content = t_hcldev_info.str_dev_content + line;
            while True:
                line = file_hclnet.readline();
                if (line == ''):
0 0
原创粉丝点击