예제 #1
0
def del_record():
    '''
    删除记录函数
    :return:
    '''
    flag = True

    while flag:
        record = input("请输入要新加的记录(r返回上级菜单):").strip()  #获取用户输入的字符串
        if record == 'r':  # 如果是r退出循环,返回上级菜单
            flag = False
        else:
            import json
            try:
                tmp_dic = json.loads(record)  # 将用户输入的json格式字符串转为python字典格式
            except Exception:
                input('输入的格式错误,按任意键继续')
                continue
            record = tmp_dic.get('record')  # 获取record
            backend_name = tmp_dic.get('backend')  # 获取backend名称
            if backend_name and record:  # 判断是否存在backend和record字段
                server_name = tmp_dic.get('record').get('server')  # 获取ip地址
                if haproxy.check_ip(server_name):  # 检测ip地址是否合法
                    if haproxy.del_record(
                            backend_name,
                            server_name):  # 调用haproxy的del_record方法删除record
                        input('删除成功,按任意键继续')
                else:
                    input('输入ip地址不合法请检查,或不存在server字段,按任意键继续')
            else:
                input('输入错误,请检查json字符串的第一层key是否包含是否包含backend或record,按任意键继续')

    pass
def del_record():
    '''
    删除记录函数
    :return:
    '''
    flag = True

    while flag:
        record = input("请输入要新加的记录(r返回上级菜单):").strip() #获取用户输入的字符串
        if record == 'r': # 如果是r退出循环,返回上级菜单
            flag = False
        else:
            import json
            try:
                tmp_dic = json.loads(record) # 将用户输入的json格式字符串转为python字典格式
            except Exception:
                input('输入的格式错误,按任意键继续')
                continue
            record = tmp_dic.get('record') # 获取record
            backend_name = tmp_dic.get('backend') # 获取backend名称
            if backend_name and record: # 判断是否存在backend和record字段
                server_name = tmp_dic.get('record').get('server') # 获取ip地址
                if haproxy.check_ip(server_name): # 检测ip地址是否合法
                    if haproxy.del_record(backend_name, server_name): # 调用haproxy的del_record方法删除record
                        input('删除成功,按任意键继续')
                else:
                    input('输入ip地址不合法请检查,或不存在server字段,按任意键继续')
            else:
                input('输入错误,请检查json字符串的第一层key是否包含是否包含backend或record,按任意键继续')



    pass
예제 #3
0
def insert_backend_record():
    '''
    插入或修改record信息
    :return: 无
    '''
    flag = True
    while flag:
        record = input(
            "\033[31;1m请输入要新加的记录(r返回上级菜单)\033[0m:").strip()  #获取用户输入的字符串
        if record == 'r':  # 如果是r退出循环,返回上级菜单
            flag = False
        elif record == 'q':
            sys.exit('已退出程序')
        else:
            import json
            try:
                tmp_dic = json.loads(record)  # 将用户输入的json格式字符串转为python字典格式
            except Exception:
                # 如果转化异常说明如数的格式有错误
                input('输入的格式错误,按任意键继续')
                continue
            record = tmp_dic.get('record')  # 获取record
            backend_name = tmp_dic.get('backend')  # 获取backend名称
            if record and backend_name:  #判断record和backend是否为空,如果有一个为空说明输入的不合法
                #print(record)
                record_ord_dic = collections.OrderedDict(
                )  # 定义空的有序字典保存record信息
                #print(record.keys())
                if haproxy.check_record_option_key(
                        record.keys()) and haproxy.check_record_option_type(
                            record):  # 判断record的options是否合法
                    # 合法执行
                    if haproxy.check_ip(tmp_dic.get('record').get(
                            'server')):  # 检查server字段是否存在且ip地址是否合法
                        for op in conf.record_op_list:  # 通过遍历conf.py的record_op_list的顺序获取record的对应的值
                            record_value = record.get(op)  # 从用户输入的获取对应的值
                            if record_value:  # 如果这个值存在,加入到用来保存record信息的有序字典中
                                record_ord_dic[op] = record_value
                        #print(record_ord_dic)
                        haproxy.add_record(
                            backend_name, record_ord_dic
                        )  # 调用haproxy的add_record方法加入到指定backend节点中
                        input('添加或修改成功,按任意键继续')
                    else:
                        input('输入ip地址不合法请检查,或不存在server字段,按任意键继续')
                        pass
                else:
                    input('输入record包含不合法关键字或record参数类型错误,请检查,按任意键继续')
                    pass
            else:
                input('输入错误,请检查json字符串的第一层key是否包含是否包含backend或record,按任意键继续')
                pass
def insert_backend_record():
    '''
    插入或修改record信息
    :return: 无
    '''
    flag = True
    while flag:
        record = input("请输入要新加的记录(r返回上级菜单):").strip() #获取用户输入的字符串
        if record == 'r': # 如果是r退出循环,返回上级菜单
            flag = False
        else:
            import json
            try:
                tmp_dic = json.loads(record) # 将用户输入的json格式字符串转为python字典格式
            except Exception:
                # 如果转化异常说明如数的格式有错误
                input('输入的格式错误,按任意键继续')
                continue
            record = tmp_dic.get('record') # 获取record
            backend_name = tmp_dic.get('backend') # 获取backend名称
            if record and backend_name: #判断record和backend是否为空,如果有一个为空说明输入的不合法
                #print(record)
                record_ord_dic = collections.OrderedDict() # 定义空的有序字典保存record信息
                #print(record.keys())
                if haproxy.check_record_option_key(record.keys()) and haproxy.check_record_option_type(record): # 判断record的options是否合法
                    # 合法执行
                    if haproxy.check_ip(tmp_dic.get('record').get('server')): # 检查server字段是否存在且ip地址是否合法
                        for op in conf.record_op_list: # 通过遍历conf.py的record_op_list的顺序获取record的对应的值
                            record_value = record.get(op) # 从用户输入的获取对应的值
                            if record_value: # 如果这个值存在,加入到用来保存record信息的有序字典中
                                record_ord_dic[op] = record_value
                        #print(record_ord_dic)
                        haproxy.add_record(backend_name,record_ord_dic) # 调用haproxy的add_record方法加入到指定backend节点中
                        input('添加或修改成功,按任意键继续')
                    else:input('输入ip地址不合法请检查,或不存在server字段,按任意键继续')

                else:
                    input('输入record包含不合法关键字或record参数类型错误,请检查,按任意键继续')
                    # for op in conf.record_op:
                    #     #record_ord_dic[op] = record[op]
                    #     pass
                #print(record_ord_dic)
            else:
                input('输入错误,请检查json字符串的第一层key是否包含是否包含backend或record,按任意键继续')