35
来源:互联网 发布:日本三菱电梯知乎 编辑:程序博客网 时间:2024/05/01 16:55
self.__file_log = None;
@staticmethod
def GetInstance():
if (None == log_manager.__instance):
log_manager.mutex.acquire()
log_manager.__instance = log_manager();
log_manager.mutex.release()
return log_manager.__instance;
def OpenLogFile(self):
pass;
#print 'begin to open log file';
#t_str_time = time.strftime('%Y-%m-%d',time.localtime(time.time()));
#try:
#self.__file_log = open(t_str_time + 'scdl' + '.log','a');
#except Exception, e:
#print 'open failed';
#return False;
#print self.__file_log;
#print 'end to open log file';
#return True;
def CloseLogFile(self):
pass;
#if (None != self.__file_log):
#self.__file_log.close();
def CoutLog(self,p_str_log_info,p_o_com):
t_str_date = time.strftime('%Y-%m-%d',time.localtime(time.time()));
try:
self.__file_log = open(dir.output_config_file_dir + t_str_date + 'scdl' + '.log','a');
except Exception, e:
print 'open failed';
return False;
t_str_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()));
t_str_log = t_str_time+ '@' + p_o_com.compnone_name + ': ' + p_str_log_info;
if (2 == p_o_com.log_type):
try:
print t_str_log;
except Exception, e:
print t_str_log.encode('utf-8');
try:
self.__file_log.write(t_str_log);
except Exception, e:
pass;
self.__file_log.write("\n");
self.__file_log.close();
**********************************
文件名:remote_manager.py
**********************************
from hcl_modify_manager import *;
from data_struct_manager import *;
from log_manager import *;
class remote_manager:
__instance = None;
list_h_m_m = [];
list_str_tunnel_num = [];
def __init__(self):
pass;
@staticmethod
def GetInstance():
if (None == remote_manager.__instance):
remote_manager.__instance = remote_manager();
for var in range(1,10000):
remote_manager.__instance.list_str_tunnel_num.append(str(var));
return remote_manager.__instance;
def __RandTunnelName(self):
log_manager.GetInstance().CoutLog('begin to exec RandTunnelName',Com_remote_manager);
str_num = self.list_str_tunnel_num[0];
del self.list_str_tunnel_num[0];
str_tunnel_name = 'tunnel' + str_num;
log_manager.GetInstance().CoutLog('end to exec RandTunnelName',Com_remote_manager);
return str_tunnel_name;
def SetRemoteInfo(self):
log_manager.GetInstance().CoutLog('begin to exec SetRemoteInfo',Com_remote_manager);
for elem_h_m_m in self.list_h_m_m:
for elem_hcl_dev in elem_h_m_m.list_hcldev_info:
if ('remote' == elem_hcl_dev.str_dev_type or 'host' == elem_hcl_dev.str_dev_type):
continue;
for elem_opp_info in elem_hcl_dev.list_opp_ip_inter:
pa_inter = re.compile(' GE_.*');
ma_inter = pa_inter.search(elem_opp_info);
str_opp_ip = '';
str_opp_inter = '';
str_self_inter = '';
if ma_inter:
str_opp_ip = elem_opp_info.replace(ma_inter.group(),'');
str_opp_inter = ma_inter.group();
str_opp_inter = str_opp_inter.replace(' ','');
pa_self_inter = re.compile('.*@');
ma_self_inter = pa_self_inter.search(elem_opp_info);
if ma_self_inter:
str_opp_ip = str_opp_ip.replace(ma_self_inter.group(),'');
str_self_inter = ma_self_inter.group();
str_self_inter = str_self_inter.replace('@','');
if (not elem_h_m_m.IsDevInThisProj(str_opp_ip)):
for elem_h_m_m_a in self.list_h_m_m:
if elem_h_m_m.proj == elem_h_m_m_a.proj:
continue;
if (elem_h_m_m_a.IsDevInThisProj(str_opp_ip)):
t = tunnel();
t.m_str_left_ip = elem_hcl_dev.str_dev_ip;
t.m_str_left_inter = str_self_inter;
t.m_str_right_ip = str_opp_ip;
t.m_str_right_inter = str_opp_inter;
for elem_remote_dev_a in elem_h_m_m_a.list_remote_dev:
if (elem_remote_dev_a.m_str_remote_proj == elem_h_m_m.proj):
for elem_tunnel_a in elem_remote_dev_a.m_list_tunnel:
if (elem_tunnel_a.m_str_left_ip == t.m_str_right_ip and elem_tunnel_a.m_str_right_ip == t.m_str_left_ip):
t.m_str_tunnel_name = elem_tunnel_a.m_str_tunnel_name;
break;
break;
if ('' == t.m_str_tunnel_name):
t.m_str_tunnel_name = self.__RandTunnelName();
for elem_remote_dev in elem_h_m_m.list_remote_dev:
if (elem_remote_dev.m_str_remote_proj == elem_h_m_m_a.proj):
elem_remote_dev.m_list_tunnel.append(t);
str_opp_info = elem_opp_info.replace(ma_self_inter.group(),'');
elem_hcl_dev.str_dev_content.replace(str_opp_info,t.m_str_tunnel_name);
for elem_h_m_m in self.list_h_m_m:
for elem_hcl_dev in elem_h_m_m.list_hcldev_info:
if ('remote' == elem_hcl_dev.str_dev_type):
for elem_remote_dev in elem_h_m_m.list_remote_dev:
if (elem_hcl_dev.str_dev_content.find(elem_remote_dev.m_str_remote_server_ip) != -1 and elem_hcl_dev.str_dev_content.find(elem_remote_dev.m_str_remote_proj) != -1):
for elem_tunnel in elem_remote_dev.m_list_tunnel:
str_line = ' ' + elem_tunnel.m_str_tunnel_name + ' = ' + elem_tunnel.m_str_left_ip + ' ' + elem_tunnel.m_str_left_inter + '\n';
elem_hcl_dev.str_dev_content = elem_hcl_dev.str_dev_content + str_line;
elif ('sim' == elem_hcl_dev.str_dev_type or 'multi' == elem_hcl_dev.str_dev_type or 'SR99' == elem_hcl_dev.str_dev_type):
for elem_remote_dev in elem_h_m_m.list_remote_dev:
for elem_tunnel in elem_remote_dev.m_list_tunnel:
if (elem_hcl_dev.str_dev_ip == elem_tunnel.m_str_left_ip):
@staticmethod
def GetInstance():
if (None == log_manager.__instance):
log_manager.mutex.acquire()
log_manager.__instance = log_manager();
log_manager.mutex.release()
return log_manager.__instance;
def OpenLogFile(self):
pass;
#print 'begin to open log file';
#t_str_time = time.strftime('%Y-%m-%d',time.localtime(time.time()));
#try:
#self.__file_log = open(t_str_time + 'scdl' + '.log','a');
#except Exception, e:
#print 'open failed';
#return False;
#print self.__file_log;
#print 'end to open log file';
#return True;
def CloseLogFile(self):
pass;
#if (None != self.__file_log):
#self.__file_log.close();
def CoutLog(self,p_str_log_info,p_o_com):
t_str_date = time.strftime('%Y-%m-%d',time.localtime(time.time()));
try:
self.__file_log = open(dir.output_config_file_dir + t_str_date + 'scdl' + '.log','a');
except Exception, e:
print 'open failed';
return False;
t_str_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()));
t_str_log = t_str_time+ '@' + p_o_com.compnone_name + ': ' + p_str_log_info;
if (2 == p_o_com.log_type):
try:
print t_str_log;
except Exception, e:
print t_str_log.encode('utf-8');
try:
self.__file_log.write(t_str_log);
except Exception, e:
pass;
self.__file_log.write("\n");
self.__file_log.close();
**********************************
文件名:remote_manager.py
**********************************
from hcl_modify_manager import *;
from data_struct_manager import *;
from log_manager import *;
class remote_manager:
__instance = None;
list_h_m_m = [];
list_str_tunnel_num = [];
def __init__(self):
pass;
@staticmethod
def GetInstance():
if (None == remote_manager.__instance):
remote_manager.__instance = remote_manager();
for var in range(1,10000):
remote_manager.__instance.list_str_tunnel_num.append(str(var));
return remote_manager.__instance;
def __RandTunnelName(self):
log_manager.GetInstance().CoutLog('begin to exec RandTunnelName',Com_remote_manager);
str_num = self.list_str_tunnel_num[0];
del self.list_str_tunnel_num[0];
str_tunnel_name = 'tunnel' + str_num;
log_manager.GetInstance().CoutLog('end to exec RandTunnelName',Com_remote_manager);
return str_tunnel_name;
def SetRemoteInfo(self):
log_manager.GetInstance().CoutLog('begin to exec SetRemoteInfo',Com_remote_manager);
for elem_h_m_m in self.list_h_m_m:
for elem_hcl_dev in elem_h_m_m.list_hcldev_info:
if ('remote' == elem_hcl_dev.str_dev_type or 'host' == elem_hcl_dev.str_dev_type):
continue;
for elem_opp_info in elem_hcl_dev.list_opp_ip_inter:
pa_inter = re.compile(' GE_.*');
ma_inter = pa_inter.search(elem_opp_info);
str_opp_ip = '';
str_opp_inter = '';
str_self_inter = '';
if ma_inter:
str_opp_ip = elem_opp_info.replace(ma_inter.group(),'');
str_opp_inter = ma_inter.group();
str_opp_inter = str_opp_inter.replace(' ','');
pa_self_inter = re.compile('.*@');
ma_self_inter = pa_self_inter.search(elem_opp_info);
if ma_self_inter:
str_opp_ip = str_opp_ip.replace(ma_self_inter.group(),'');
str_self_inter = ma_self_inter.group();
str_self_inter = str_self_inter.replace('@','');
if (not elem_h_m_m.IsDevInThisProj(str_opp_ip)):
for elem_h_m_m_a in self.list_h_m_m:
if elem_h_m_m.proj == elem_h_m_m_a.proj:
continue;
if (elem_h_m_m_a.IsDevInThisProj(str_opp_ip)):
t = tunnel();
t.m_str_left_ip = elem_hcl_dev.str_dev_ip;
t.m_str_left_inter = str_self_inter;
t.m_str_right_ip = str_opp_ip;
t.m_str_right_inter = str_opp_inter;
for elem_remote_dev_a in elem_h_m_m_a.list_remote_dev:
if (elem_remote_dev_a.m_str_remote_proj == elem_h_m_m.proj):
for elem_tunnel_a in elem_remote_dev_a.m_list_tunnel:
if (elem_tunnel_a.m_str_left_ip == t.m_str_right_ip and elem_tunnel_a.m_str_right_ip == t.m_str_left_ip):
t.m_str_tunnel_name = elem_tunnel_a.m_str_tunnel_name;
break;
break;
if ('' == t.m_str_tunnel_name):
t.m_str_tunnel_name = self.__RandTunnelName();
for elem_remote_dev in elem_h_m_m.list_remote_dev:
if (elem_remote_dev.m_str_remote_proj == elem_h_m_m_a.proj):
elem_remote_dev.m_list_tunnel.append(t);
str_opp_info = elem_opp_info.replace(ma_self_inter.group(),'');
elem_hcl_dev.str_dev_content.replace(str_opp_info,t.m_str_tunnel_name);
for elem_h_m_m in self.list_h_m_m:
for elem_hcl_dev in elem_h_m_m.list_hcldev_info:
if ('remote' == elem_hcl_dev.str_dev_type):
for elem_remote_dev in elem_h_m_m.list_remote_dev:
if (elem_hcl_dev.str_dev_content.find(elem_remote_dev.m_str_remote_server_ip) != -1 and elem_hcl_dev.str_dev_content.find(elem_remote_dev.m_str_remote_proj) != -1):
for elem_tunnel in elem_remote_dev.m_list_tunnel:
str_line = ' ' + elem_tunnel.m_str_tunnel_name + ' = ' + elem_tunnel.m_str_left_ip + ' ' + elem_tunnel.m_str_left_inter + '\n';
elem_hcl_dev.str_dev_content = elem_hcl_dev.str_dev_content + str_line;
elif ('sim' == elem_hcl_dev.str_dev_type or 'multi' == elem_hcl_dev.str_dev_type or 'SR99' == elem_hcl_dev.str_dev_type):
for elem_remote_dev in elem_h_m_m.list_remote_dev:
for elem_tunnel in elem_remote_dev.m_list_tunnel:
if (elem_hcl_dev.str_dev_ip == elem_tunnel.m_str_left_ip):
0 0
- 35
- 35
- 35
- 35
- 35
- 35
- ...35岁...
- 【程序35】
- 35years
- 35岁
- Blog@35
- 35岁
- nyoj-35
- 技术35
- nyoj 35
- 35十包宽高
- ocp-35
- noitisoPtresnIhcraeS.35
- Android开发中非常实用的方法,API等
- openssl建立证书,非常详细配置ssl+apache
- 34
- java中 ==与equals方法的区别
- UVa 658 It's not a Bug, it's a Feature!(最短路问题)
- 35
- 基于机器人操作系统ROS的无人驾驶系统,这些优缺点要知道
- Python 3.5安装Mysql-Python
- 表单设计优化Tips——如何避免设计师常犯的15个错误
- Java Floating-Point Literals
- [水晶报表]水晶报表的使用经验和资料总结
- UBUNTU64 打开terminal的三种方式
- 36
- 数据化决策的魅力