码迷,mamicode.com
首页 > 编程语言 > 详细

HA proxy文件的插入,查询、删除,python实现

时间:2017-06-29 00:50:14      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:ha proxy文件的插入   查询、删除   python实现   

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Longyi
import os



def find(address):
    backend = []
    server = []
    select = []
    count = 0
    with open ("haproxy",‘r‘) as obj1:
        for line in obj1:
            if line.strip().startswith("backend"):
                backend.append(line.strip())
            if line.strip().startswith("server"):
                server.append(line.strip())

        for i in backend:
            select.append(i.split())
            if select[count][1] == address:
                break
            count = count+1
    return server[count]

def new_insert(data_str):
    backend = "backend " + data_str["backend"] + "\n"
    record = "server " + data_str["record"]["server"] + " weight " + data_str["record"]["weight"] + " maxconn " +              data_str["record"]["maxconn"] + "\n"
    new2 = backend + record
    a = []
    i = 0
    with open("haproxy", ‘r‘) as obj1_r:
        for line in obj1_r:
            a.append(line)
            str = line.split()
            if "server" in str:
                i = a.index(line)
        a.insert(i + 1, new2)

    with open("haproxy_new_aaaa", ‘w‘) as obj1_w:
        for j in a:
            obj1_w.write(j)
    #os.rename(‘haproxy‘, ‘haproxy_new_aaaa‘)
    os.rename(‘haproxy‘, ‘haproxy.bak‘)
    os.rename(‘haproxy_new_aaaa‘, ‘haproxy‘)
    os.remove(‘haproxy.bak‘)
    #os.remove(‘haproxy_new_aaaa‘)

    return "success"

def del_backend(data_str):
    backend = "backend " + data_str["backend"] + "\n"
    record = "server " + data_str["record"]["server"] + " weight " + data_str["record"]["weight"] + " maxconn " +              data_str["record"]["maxconn"] + "\n"

    backend_list = backend.split()
    record_list = record.split()

    print backend_list
    print record_list
    a = []
    i = 0
    with open("haproxy", ‘r‘) as obj1_r:
        for line in obj1_r:
            print  line
            a.append(line)
            str = line.split()
            #print str
            if str == backend_list:
                a.remove(line)
            if str == record_list:
                a.remove(line)

    with open("haproxy_new_aaaa", ‘w‘) as obj1_w:
        for j in a:
            obj1_w.write(j)

    os.rename(‘haproxy‘, ‘haproxy.bak‘)
    os.rename(‘haproxy_new_aaaa‘, ‘haproxy‘)
    os.remove(‘haproxy.bak‘)
    #os.remove(‘haproxy_new_aaaa‘)
    return "success"





if __name__ == "__main__":
    print "1.查询记录\n2.添加记录\n3.删除记录\n"
    select_num = raw_input("please input number:")

    if select_num == "1":
        address = raw_input("请输入要查询的地址:")
        find_list = find(address)
        print find_list
    elif select_num == "2":
        print "plz input like this example:"
        print ‘{"backend":"ttt.oldboy.org","record":{"server":"100.1.7.9","weight":"20","maxconn":"3000"}}‘
        data_str = eval(raw_input("please input record>>>"))
        new_insert_list = new_insert(data_str)
        if new_insert_list == "success":
            print "记录插入成功,请查看文件内容"
    else:
        print "plz input like this example:"
        print ‘{"backend":"ttt.oldboy.org","record":{"server":"100.1.7.9","weight":"20","maxconn":"3000"}}‘
        data_str = eval(raw_input("please input record>>>"))
        del_backend_list = del_backend(data_str)
        if del_backend_list == "success":
            print "记录删除成功,请查看文件内容"


HA proxy文件的插入,查询、删除,python实现

标签:ha proxy文件的插入   查询、删除   python实现   

原文地址:http://1047295.blog.51cto.com/1037295/1942851

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!