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 == ''):
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