标签:购物 操作方法 序号 color back weight 输入输出 操作 forward
购物车模拟
需求:
说明:
haproxy.conf配置文件内容:
global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info defaults log global mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms option dontlognull listen stats :8888 stats enable stats uri /admin stats auth admin:1234 frontend oldboy.org bind 0.0.0.0:80 option httplog option httpclose option forwardfor log global acl www hdr_reg(host) -i www.oldboy.org use_backend www.oldboy.org if www backend www.oldboy.org server 100.1.7.9 weight 20 maxconn 3000 backend www.qq.com server 100.1.7.10 weight 20 maxconn 3000 backend www.cnblog.com server 100.1.7.14 weight 20 maxconn 3000
代码:
# /usr/bin/env python
# -*- coding: utf-8 -*-
# AUTHOR:Fio
import os
import json
arg = {
‘backend‘: ‘www.yahoo.com‘,
‘record‘: {
‘ip‘: ‘100.1.7.13‘,
‘weight‘: ‘20‘,
‘maxconn‘: ‘3000‘
}
}
def select_info(url):
flag = False
with open(‘./haproxy.conf‘, ‘r‘) as conf:
for line in conf:
if line.strip().startswith("backend %s" % url):
flag = True
continue
if flag:
record_info = line.strip()
flag = False
print(record_info)
def insert_info(info):
server_info = eval(info)
url = server_info[‘backend‘]
ip = server_info[‘record‘][‘ip‘]
weight = server_info[‘record‘][‘weight‘]
maxconn = server_info[‘record‘][‘maxconn‘]
flag = False
with open(‘./haproxy.conf‘, ‘r‘) as conf1:
for line in conf1:
if line.strip().startswith(‘backend %s‘ % url):
print("配置已存在")
flag = False
break
else:
flag = True
continue
if flag:
with open(‘./haproxy.conf‘, ‘a‘) as conf2:
conf2.write(‘backend ‘ + url + ‘\n‘)
conf2.write(‘ server %s weight %s maxconn %s\n‘ % (ip, weight, maxconn))
print("配置%s插入成功" % url)
def delete_info(url):
flag = False
with open(‘./haproxy.conf‘, ‘r+‘) as conf1:
with open(‘./haproxy_tmp.conf‘, ‘w‘) as conf2:
for line1 in conf1:
if line1.strip().startswith(‘backend %s‘ % url):
conf2.write("")
flag = True
continue
elif flag and line1.strip().startswith(‘server‘):
conf2.write("")
flag = False
continue
else:
conf2.write(line1)
continue
os.remove(‘./haproxy.conf‘)
os.rename(‘./haproxy_tmp.conf‘, ‘./haproxy.conf‘)
print(‘backend %s内容已删除‘ % url)
if __name__ == "__main__":
print(‘‘‘
###############################
# 请选择操作方法:
# 1. 查询
# 2. 插入
# 3. 删除
###############################
‘‘‘)
order_num = input("选择的序号:")
if order_num == ‘1‘:
URL = input("请选择要查询的域名:")
select_info(URL)
elif order_num == ‘2‘:
INFO = input(‘‘‘请输入完整的配置,
示例格式({ ‘backend‘: ‘www.yahoo.com‘, ‘record‘: { ‘ip‘: ‘100.1.7.13‘, ‘weight‘: ‘20‘, ‘maxconn‘: ‘3000‘ }})
:‘‘‘)
insert_info(INFO)
elif order_num == ‘3‘:
URL = input("请输入要删除的域名配置:")
delete_info(URL)
else:
print("请输入正确的序号!")
标签:购物 操作方法 序号 color back weight 输入输出 操作 forward
原文地址:http://www.cnblogs.com/cirnobaka/p/6930923.html