示例#1
0
文件: deploy.py 项目: masterpy/myops
def clean_info(remote_ip,tag="no"):
        '''
            清理配置
        '''
        tool = my_lib.Public_tool()
        e = multiprocessing.Event()
        w = multiprocessing.Process(name='block',
                                 target=tool.timer_progress,
                                 args=(e,))

        if tag == "yes":
            w.start()
            command = '/bin/bash /opt/opbin/tools/scripts/vlan_start.sh stop'
            result,error = tool.ssh_cmd(remote_ip,command)
            e.set()
            w.join()

            if len(error) == 0:
                command = '/usr/bin/python /opt/opbin/tools/gerenate_route.py -o del'
                result,error = tool.ssh_cmd(remote_ip,command)

                if len(error) == 0:
                    return True
                else:
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m %s.\n" % error,'e')
                    return False
            else:
                my_lib.writelog("\033[1;31;40m**Error**\033[0m %s.\n" % error,'e')
                return False

            return True
示例#2
0
文件: deploy.py 项目: masterpy/myops
def confirm_info(tag):
    '''
        退出部署
    '''
    if tag == 'quit':
        name = '\033[1;32;40m退出部署\033[0m'
    elif tag == 'deploy':
        name = '\033[1;32;40m进行绑定\033[0m'
    elif tag == 'switch':
        name = '\033[1;32;40m进行切换\033[0m'
    elif tag == 'clean':
        name = '\033[1;32;40m清理配置\033[0m'

    info = '【 请输入 y/n 】'
    while True:
        try:
            quit_info = raw_input("\n是否 %s%s  >>" % (name,info))
            # my_lib.writelog("\n是否 %s%s>>\n" % (name,info),i)
            print
            if quit_info.strip() == "y" or quit_info.strip() == "Y":
                #my_lib.writelog(quit_info,'i')
                return True
            if quit_info.strip() == "n" or quit_info.strip() == "N":
                #my_lib.writelog(quit_info,'i')
                return False
            if quit_info.strip() == "exit":
                my_lib.writelog("exit",'i')
                main()
            else:
                continue
        except KeyboardInterrupt:
            sys.exit(1)
示例#3
0
文件: deploy.py 项目: masterpy/myops
    def do_operation(self,action,host_info,remote_ip):
        '''
            执行操作选项的主函数
        '''

        if action == 'deploy':
            #新配置
            if self.do_deloy(host_info,remote_ip):
                return True
            else:
                return False

        elif action == 'switch':
            #vlan ip切换
            if host_info['vipbusi' ] is not None and host_info['vipdata'] is not None:
                temp = host_info['mipbusi']
                host_info['mipbusi'] =  host_info['sipbusi']
                host_info['sipbusi'] =  temp
                url = "http://10.13.195.150/system/server/updateservertype?busi_key=ip_switch&name=%s&vip=%s&sip=%s&mip=%s" % (host_info['service'],host_info['vipbusi'],host_info['sipbusi'],host_info['mipbusi'])
                if self.do_switch(host_info,remote_ip):
                    result = self.tool.update_bizmonitor(url)
                    if result:
                        my_lib.writelog("\033[1;32;40m**Success**\033[0m bizop平台信息更新成功.\n",'i')
                        return True
        return False
示例#4
0
文件: deploy.py 项目: masterpy/myops
 def do_switch(self,host_info,remote_ip):
     '''
         执行vlan ip切换的主函数
     '''
     #vlan ip在bizop平台已配置
     #print host_info
     if len(host_info['vipbusi']) > 0 and len(host_info['vipdata']) > 0:
         result = self.do_deloy(host_info,remote_ip)
         if result:
             return True
     my_lib.writelog("\033[1;31;40m**Error**\033[0m 无法获取vlan ip.\n",'e')
     return False
示例#5
0
文件: deploy.py 项目: masterpy/myops
    def get_info_by_name(self,mode_name):
        '''
            依据模块名称获取hostinfo
        '''
        host_info = {}
        url = "http://10.13.195.150/system/server/getipinfo?busi_key=ip_switch&service=%(mode_name)s" % {'mode_name':str(mode_name)}
        host_info = self.tool.get_host_info(url)

        if host_info:
            return host_info
        else:
            my_lib.writelog("\033[1;31;40m**Error**\033[0m 无法获取主机信息.\n",'e')
            return False
示例#6
0
文件: deploy.py 项目: masterpy/myops
def confirm_quit():
    info = '\033[1;32;40m【 请输入y/n 】 \033[0m'
    while True:
        try:
            name = raw_input("**是否退出** Quit? %s >> " % info)
            # my_lib.writelog("**是否退出** Quit? %s >> " % info,'i')
            if name.strip() == "y" or name.strip() == "Y":
                my_lib.writelog("\n\n\033[1;32;40m**Success**\033[0m Good Luck Boys.........\n",'i')
                return True
            elif name.strip() == "n" or name.strip() == "N":

                main()

            else:
                my_lib.writelog("%s" % info,'i')
                continue
        except KeyboardInterrupt:
            sys.exit(1)
示例#7
0
文件: deploy.py 项目: masterpy/myops
 def check_vlanip_network(self,host_info):
     net_status = self.check_vlan_net(host_info['vipbusi'],host_info['vipdata'],host_info['mipbusi'],host_info['mipdata'])
     for key,value in net_status.items():
         if int(value) == 0:
             if key == host_info['vipbusi'] or key == host_info['vipdata']:
               my_lib.writelog("\033[1;32;40m**Success**\033[0m vlan ip: %s  网络畅通.\n" % key,'i')
               continue
             my_lib.writelog("\033[1;32;40m**Success**\033[0m machine ip: %s  网络畅通.\n" % key,'i')
         else:
             if key == host_info['vipbusi'] or key == host_info['vipdata']:
                 my_lib.writelog("\033[1;31;40m**Success**\033[0m vlan ip: %s  网络中断.\n" % key,'e')
             continue
             my_lib.writelog("\033[1;31;40m**Success**\033[0m machine ip: %s  网络中断.\n" % key,'e')
示例#8
0
文件: deploy.py 项目: masterpy/myops
def confirm_vlan_info(machineip):
    '''
        防止清理未配置vlan ip 服务的主机
    '''
    tool = my_lib.Public_tool()

    command = 'test -e \"/var/lib/vlan/vlan_stats\" && cat /var/lib/vlan/vlan_stats | grep \"v_device_list\" | cut -d \":\" -f2'
    result_dev,error = tool.ssh_cmd(machineip,command)

    if len(result_dev) == 0:
        my_lib.writelog("\033[1;31;40m**Error**\033[0m vlan ip 未配置!无法清理.\n",'e')
        return False

    for dev in result_dev.strip().split():
        command = 'ifconfig  %s | grep \"inet addr:\" | cut -d \":\" -f2 | awk \'{print $1}\'' % dev
        result,error = tool.ssh_cmd(machineip,command)
        if len(result) == 0:
            my_lib.writelog("\033[1;31;40m**Error**\033[0m vlan ip 未配置!无法清理.\n",'e')
            return False

        if result.strip() == machineip:
            my_lib.writelog("\033[1;31;40m**Error**\033[0m 输入ip地址非法,请输入机器的ip(eth0或者eth1)!\n",'e')
            return False

    return True
示例#9
0
文件: deploy.py 项目: masterpy/myops
def main():
    print "\n"*1
    word = ""
    print(word.center(100,"*"))
    #print ("DEPLOY VLAN IP - MAIN MENU")
    word = "*    DEPLOY OR SWITCH VLAN IP - MAIN MENU    *"
    print(word.center(90," "))
    print
    word = "%s1. deploy new vlan ip on remote server by ip" % (" "*20)
    print(word.ljust(2))
    word = "%s2. deploy new vlan ip on remote server by module_name" % (" "*20)
    print(word.ljust(2))
    word = "%s3. switch vlan ip on remote server by module_name" % (" "*20)
    print(word.ljust(2))
    word = "%s4. (when server has no vlan ip) switch ip on remote server by module_name" % (" "*20)
    print(word.ljust(2))
    word = "%s5. show vlan ip associated with module_name" % (" "*20)
    print(word.ljust(2))
    word = "%s6. clean vlan ip on remote server" % (" "*20)
    print(word.ljust(2))
    word = "%s7. check network for vlan ip" % (" "*20)
    print(word.ljust(2))
    word = "%s8. quit" % (" "*20)
    print(word.ljust(2))
    print
    word = ""
    print(word.center(100,"*"))
    print "\n"*2
    is_valid=0

    while not is_valid :
        try :
            choice = int ( raw_input('输入您的选择: [1-7] :'))
            is_valid = 1
        except ValueError, e :
            my_lib.writelog("\033[1;31;40m**Error**\033[0m 输入的选项不正确.\n",'e')
        except KeyboardInterrupt:
            sys.exit(1)
示例#10
0
文件: deploy.py 项目: masterpy/myops
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
示例#11
0
文件: deploy.py 项目: masterpy/myops
    def switch_remote_vlanip(self,host_info):
        '''
            切换(vlan ip和主机ip)主函数入口
        '''
        e1 = multiprocessing.Event()
        w1 = multiprocessing.Process(name='block',
                                 target=self.tool.timer_progress,
                                 args=(e1,))
        w1.start()
        m_connect_ip,s_connect_ip = self.get_alive_remote_ip(host_info['mipbusi'],host_info['mipdata'],host_info['sipbusi'],host_info['sipdata'] )

        self.show_vlanip_info(host_info,'switch')
        e1.set()
        w1.join()

        result = confirm_info('switch')
        if result:
            #如果备机网络通畅,主机宕机
            if len(m_connect_ip) == 0 and len(s_connect_ip) > 0:
                    result = self.do_operation('switch',host_info,s_connect_ip)
                    if result:
                        return 1
            #主机网络通畅,备机网络通畅
            elif len(m_connect_ip) > 0 and len(s_connect_ip) > 0:
                result = clean_info(m_connect_ip,"yes")
                if result:
                    result = self.do_operation('switch',host_info,s_connect_ip)
                    if result:
                        return 1
                else:
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m 清理远程主机:%s vlan ip配置失败!\n" % m_connect_ip,'e')
            else:
                my_lib.writelog("\033[1;31;40m**Error**\033[0m 远程主机:%s 远程备机: %s 全部宕机!\n"(m_connect_ip,s_connect_ip),'e')
        else:
            my_lib.writelog("\033[1;31;40m**Success**\033[0m 退出部署.\n",'i')
            return 2

        return False
示例#12
0
文件: deploy.py 项目: masterpy/myops
    def switch_remote_ip(self,host_info):
        '''
            切换server ip
        '''
        import commands
        e1 = multiprocessing.Event()
        w1 = multiprocessing.Process(name='block',
                                 target=self.tool.timer_progress,
                                 args=(e1,))
        e2 = multiprocessing.Event()
        w2 = multiprocessing.Process(name='block',
                                 target=self.tool.timer_progress,
                                 args=(e2,))

        mhostname = host_info['mhostname']
        shostname = host_info['shostname']
        master_busi_ip = host_info['mipbusi']
        master_data_ip = host_info['mipdata']
        slave_busi_ip = host_info['sipbusi']
        slave_data_ip = host_info['sipbusi']

        bash_dir = os.path.join(os.path.split(os.path.dirname(__file__))[0],'bash_scripts')
        m_connect_ip,s_connect_ip = self.get_alive_remote_ip(host_info['mipbusi'],host_info['mipdata'],host_info['sipbusi'],host_info['sipdata'])

        if  host_info['vipbusi'] is None and host_info['vipdata'] is None:
            w1.start()
            self.show_vlanip_info(host_info,'switch')
            e1.set()
            w1.join()

            if confirm_info('switch'):
                #主机宕机,而备机畅通 传入s
                if len(m_connect_ip) == 0 and len(s_connect_ip) > 0:
                    w2.start()
                    cmd = "bash %(bash_dir)s/switch.sh %(opt)s %(mhostname)s %(shostname)s %(master_data_ip)s %(master_busi_ip)s %(slave_data_ip)s %(slave_busi_ip)s" % {'bash_dir':bash_dir,'opt':"s",'mhostname':mhostname,'shostname':shostname,'master_data_ip':master_data_ip,'master_busi_ip':master_busi_ip,'slave_data_ip':slave_data_ip,'slave_busi_ip':slave_busi_ip}

                    status,result = commands.getstatusoutput(cmd)
                    e2.set()
                    w2.join()

                    if not status:
                        return True
                    else :
                        return False

                elif len(m_connect_ip) > 0 and len(s_connect_ip) > 0:
                    #主机备机都畅通 传入ms
                    w2.start()
                    cmd = "bash %(bash_dir)s/switch.sh %(opt)s %(mhostname)s %(shostname)s %(master_data_ip)s %(master_busi_ip)s %(slave_data_ip)s %(slave_busi_ip)s" % {'bash_dir':bash_dir,'opt':"ms",'mhostname':mhostname,'shostname':shostname,'master_data_ip':master_data_ip,'master_busi_ip':master_busi_ip,'slave_data_ip':slave_data_ip,'slave_busi_ip':slave_busi_ip}
                    status,result = commands.getstatusoutput(cmd)
                    e2.set()
                    w2.join()

                    if not status:
                        return True
                    else :
                        return False
                else:
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m 备机宕机,无法切换!\n",'e')
        else:
            my_lib.writelog("\033[1;31;40m**Error**\033[0m 此选项不支持vlan ip切换,请更换选项!\n",'e')
        return False
示例#13
0
文件: deploy.py 项目: masterpy/myops
    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()
示例#14
0
文件: deploy.py 项目: masterpy/myops
    def input_by_name(self,tag):
        '''
            按照模块名方式输入,输入模块前请提前在bizmonitor平台配置好相关信息
        '''

        host_info = {}
        if tag == "deploy_by_name":
            show_header_info('deploy_by_name')

        elif tag == "switch_has_vlan":
            show_header_info('switch_has_vlan')

        elif tag == "show_vlan_info":
            show_header_info('show_vlan_info')

        while True:
            try:
                mode_name = raw_input("\n【相关Module Name可以在bizop平台(http://bizop.sogou-inc.com)进行查询】\n **请输入模块名称**  >>")
                #mode_name = "centre-dubhe"
                # my_lib.writelog("\n【相关Mode Name可以在bizop平台(http://bizop.sogou-inc.com)进行查询】\n **请输入模块名称** >>",'i',False)
                if mode_name.strip() == "":
                    continue
                elif mode_name.strip() == "exit":
                    my_lib.writelog("exit",'i')
                    main()
                elif mode_name.strip() == "quit":
                    if confirm_quit():
                        sys.exit(1)
            except KeyboardInterrupt:
                sys.exit(1)


            if self.tool.ipFormatChk(mode_name.strip()):
                my_lib.writelog("\033[1;31;40m**Error**\033[0m 输入的模块名非法!\n",'e')
                continue
            else:
                pass

            host_info = self.get_info_by_name(mode_name)

            if host_info:
                host_info['date_time'] = time.strftime("%Y-%m-%d %H:%M",time.localtime())
                host_info['user'] = getpass.getuser()
            else:
                continue

            if tag == 'deploy_by_name':
                result = self.set_info_by_name(host_info,'name')
                if result == 1:
                    my_lib.writelog("\033[1;32;40m**Success**\033[0m 配置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
                    else:
                        my_lib.writelog("\033[1;31;40m**Error**\033[0m 发送邮件 失败! 请检查收件人是否配置正确.\n",'e')

                elif result == 2:
                    continue

                else:
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m 配置vlan ip 失败!\n",'e')

            elif tag == 'switch_has_vlan' :
                result = self.switch_remote_vlanip(host_info)
                if  result == 1:
                    my_lib.writelog("\033[1;32;40m**Success**\033[0m 切换vlan ip 成功!\n",'i')
                    content = my_lib.html_result(host_info,'vs')
                    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')
                elif result == 2:
                    continue
                else:
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m 切换vlan ip 失败!\n",'e')

            elif tag == 'switch_no_vlan':
                if self.switch_remote_ip(host_info):
                    my_lib.writelog("\033[1;32;40m**Success**\033[0m 切换server ip 成功!\n",'i')
                    content = my_lib.html_result(host_info,'ms')
                    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')
                else:
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m 切换server ip 失败!\n",'e')

            elif tag == 'show_vlan_info':
                e1 = multiprocessing.Event()
                w1 = multiprocessing.Process(name='block',
                                 target=self.tool.timer_progress,
                                 args=(e1,))
                w1.start()
                self.show_vlanip_info(host_info,'switch')
                e1.set()
                w1.join()
                return True

            elif tag == 'check_vlan_net':
                e1 = multiprocessing.Event()
                w1 = multiprocessing.Process(name='block',
                                 target=self.tool.timer_progress,
                                 args=(e1,))
                w1.start()
                self.check_vlanip_network(host_info)
                e1.set()
                w1.join()
                return True

            else:
                my_lib.writelog("\033[1;31;40m**Error**\033[0m 非法参数.\n",'e')
示例#15
0
文件: deploy.py 项目: masterpy/myops
    def set_info_by_name(self,host_info,tag):
        '''
            配置vlan ip
        '''
        # e = multiprocessing.Event()
        # w = multiprocessing.Process(name='block',
        #                          target=self.tool.timer_progress,
        #                          args=(e,))
        m_connect_ip = ""
        s_connect_ip = ""
        net_status = {}
        e1 = multiprocessing.Event()
        w1 = multiprocessing.Process(name='block',
                                 target=self.tool.timer_progress,
                                 args=(e1,))
        w1.start()
        m_connect_ip,s_connect_ip = self.get_alive_remote_ip(host_info['mipbusi'],host_info['mipdata'],host_info['sipbusi'],host_info['sipdata'] )

        if host_info['vipbusi'] is not None:

            net_status = self.check_vlan_net(host_info['vipbusi'],host_info['vipdata'])

            #从bizop获取得到vlan ip
            if net_status[host_info['vipbusi']] == 0 or net_status[host_info['vipdata']] == 0:
            #vlan ip存活,不能配置
                my_lib.writelog("\033[1;31;40m**Error**\033[0m vlan ip已在本地网络中其他机器配置,请联系系统管理员\n",'e')
                e1.set()
                w1.join()

                if confirm_info('quit'):
                    sys.exit(1)
                else:
                    return False
            else:

                if tag == 'name':
                    self.show_vlanip_info(host_info,'deploy')
                if tag == 'ip':
                    self.show_vlanip_info(host_info,'deploy_ip')

                e1.set()
                w1.join()
                if confirm_info('deploy'):
                    if len(m_connect_ip) > 0:

                        result = self.do_operation('deploy',host_info,m_connect_ip)

                        if result:
                            my_lib.writelog("\033[1;32;40m**Success**\033[0m 远程主机vlan ip部署成功!\n",'i')

                            return 1
                        else:
                            my_lib.writelog("\033[1;31;40m**Error**\033[0m 远程主机vlan ip部署 失败!\n",'i')
                    else:
                        my_lib.writelog("\033[1;31;40m**Error**\033[0m  远程主机:%s 网络不可达。失败!\n" % m_connect_ip,'e')
                else:
                    my_lib.writelog("\033[1;31;40m**Success**\033[0m 退出部署.\n",'i')
                    return 2
        else:
            my_lib.writelog("\033[1;31;40m**Error**\033[0m 该主机在bizop平台没有配置vlan ip.\n",'e')
        return False
示例#16
0
文件: deploy.py 项目: masterpy/myops
    def do_deloy(self,host_info,remote_ip):
        '''
            执行新配置
        '''
        e = multiprocessing.Event()
        w = multiprocessing.Process(name='block',
                                 target=self.tool.timer_progress,
                                 args=(e,))

        if host_info['vipbusi' ] is not None and host_info['vipdata'] is not None:
            command = "/usr/bin/python /opt/opbin/tools/gerenate_route.py -b %(vipbusi)s -d %(vipdata)s -o add -m %(mc_type)s" % {'vipbusi':host_info['vipbusi'],'vipdata':host_info['vipdata'],'mc_type':host_info['isvirtual']}
            result,error_a = self.tool.ssh_cmd(remote_ip,command)
            if len(result) > 10:
                print result
                sys.exit(1)
            if len(error_a) == 0:
                w.start()
                command = "/bin/bash /opt/opbin/tools/scripts/vlan_start.sh csmode"
                result,error_b = self.tool.ssh_cmd(remote_ip,command)
                e.set()
                w.join()

                if result.strip() == "5":
                    return True
                elif result.strip() == "1":
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m vlan ip已经在网络中的其他服务器使用,请联系系统管理员.\n",'e')
                elif result.strip() == "2":
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m 远程主机网卡启动失败.\n",'e')
                elif result.strip() == "3":
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m 远程主机路由表不正确.\n",'e')
                elif result.strip() == "4":
                    my_lib.writelog("\033[1;31;40m**Error**\033[0m 远程主机vlan ip网关不可达.\n",'e')
                else:
                    my_lib.writelog(error_b,'e')
            else:
                my_lib.writelog(error_a,'e')
        return False
示例#17
0
文件: deploy.py 项目: masterpy/myops
        deploy_cls.input_by_name('switch_has_vlan')

    elif choice == 4:
        deploy_cls.input_by_name('switch_no_vlan')

    elif choice == 5:
        deploy_cls.input_by_name("show_vlan_info")

    elif choice == 6:
        clean_by_ip()

    elif choice == 7:
        deploy_cls.input_by_name("check_vlan_net")

    elif choice == 8:
        result = confirm_quit()
        if result:
            sys.exit(1)
    else:
        my_lib.writelog("\033[1;31;40m**Error**\033[0m 输入的选项不正确.\n",'e')


    result = confirm_quit()
    if result:
        sys.exit(1)


if __name__ == "__main__":
    main()