def check_vlan_net(self,*args): ''' 检查vlan ip 网络 0 : 网络通 1 : 网络不通 ''' net_status = {} if len(args) > 0: for ip in args: if ip is None: net_status[ip] = 1 elif my_ping.verbose_ping(ip): net_status[ip] = 0 else: net_status[ip] = 1 return net_status
def clean_by_ip(): ''' 清理远程主机的vlan ip配置 ''' tool = my_lib.Public_tool() show_header_info('clean_by_ip') while True: try: real_ip = raw_input("\n【退到主菜单输入 exit】请输入\033[1;32;40m remote Machine ip \033[0m; >>") if real_ip.strip() == "exit": my_lib.writelog("exit",'i') main() if real_ip.strip() == "quit": if confirm_quit(): sys.exit(1) except KeyboardInterrupt: sys.exit(1) if tool.ipFormatChk(real_ip.strip()): realip = real_ip.strip() else: my_lib.writelog("\033[1;31;40m**Error**\033[0m 输入的ip地址非法!\n",'e') continue if my_ping.verbose_ping(realip): pass else: my_lib.writelog("\033[1;31;40m**Error**\033[0m 网络不可达!\n",'e') continue if confirm_vlan_info(realip): if confirm_info("clean"): if clean_info(realip,"yes"): my_lib.writelog("\033[1;32;40m**Success**\033[0m 远程主机%s vlan ip配置清理成功!\n" % realip,'i') else: continue else: continue
def input_by_ip(self): ''' 按照ip地址方式输入,必须验证ip合法性 ''' show_header_info('deploy_by_ip') while True: try: realip = raw_input("\n【退到主菜单输入 exit】请输入 \033[1;32;40m Machine ip \033[0m; >>") # my_lib.writelog("【退到主菜单输入 exit】请输入\033[1;32;40m Machine ip \033[0m;【**Not Vlan IP**】 >>",'i') if realip.strip() == "exit": my_lib.writelog("exit",'i') main() if len(realip.strip()) == 0: my_lib.writelog("\033[1;31;40m**Error**\033[0m 输入的ip地址非法!\n",'e') continue if realip.strip() == "quit": if confirm_quit(): sys.exit(1) except KeyboardInterrupt: sys.exit(1) if self.tool.ipFormatChk(realip.strip()): real_ip = realip.strip() else: my_lib.writelog("\033[1;31;40m**Error**\033[0m 输入的ip地址非法!\n",'e') continue if my_ping.verbose_ping(real_ip): break else: my_lib.writelog("\033[1;31;40m**Error**\033[0m 网络不可达!\n",'e') continue while True: try: vlanip = raw_input("\n【退到主菜单输入 exit】请输入\033[1;32;40m VLAN IP \033[0m; >>") if len(vlanip.strip()) == 0: continue if vlanip.strip() == "exit": my_lib.writelog("exit",'i') main() if vlanip.strip() == "quit": if confirm_quit(): sys.exit(1) except KeyboardInterrupt: sys.exit(1) if self.tool.ipFormatChk(vlanip.strip()): vlan_ip = vlanip.strip() else: my_lib.writelog("\033[1;31;40m**Error**\033[0m 输入的ip地址非法!\n",'e') continue url = "http://10.13.195.150/system/server/getserverinfo?busi_key=ip_switch&mip=%(real_ip)s&vip=%(vlan_ip)s" % {'real_ip':real_ip,'vlan_ip':vlan_ip} host_info = self.tool.get_hostinfo_by_ip(url,real_ip,vlan_ip) host_info['date_time'] = time.strftime("%Y-%m-%d %H:%M",time.localtime()) host_info['user'] = getpass.getuser() if (host_info): result = self.set_info_by_name(host_info,'ip') if result == 1: my_lib.writelog("\033[1;32;40m**Success**\033[0m 按照ip方式部署vlan ip 成功!\n",'i') content = my_lib.html_result(host_info,'vc') if self.tool.send_email(content): my_lib.writelog("\033[1;32;40m**Success**\033[0m 发送邮件 成功!\n",'i') return True else: my_lib.writelog("\033[1;31;40m**Error**\033[0m 发送邮件 失败! 请检查收件人是否配置正确.\n",'e') break elif result == 2: break else: my_lib.writelog("\033[1;31;40m**Error**\033[0m 按照ip方式部署vlan ip 失败!\n",'i') break else: my_lib.writelog("\033[1;31;40m**Error**\033[0m 无法获取主机信息.\n",'e') break main()