Beispiel #1
0
    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
Beispiel #2
0
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
Beispiel #3
0
    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()