zoukankan      html  css  js  c++  java
  • 第三周作业

    HAproxy配置文件操作

      1 #!/usr/bin/env python
      2 
      3 # _*_ coding:utf-8 _*_
      4 import json,os
      5 
      6 def fetch(backend):
      7     flag = False
      8     fetch_list = []
      9     with open('b.txt') as obj:
     10         for line in obj:
     11             if line.strip() == "backend %s"%(backend):
     12                 flag = True
     13                 continue
     14             if line.strip().startswith("backend"):
     15                 flag = False
     16             if flag and line.strip():
     17                 fetch_list.append(line.strip())
     18     return fetch_list
     19 
     20 
     21 def add(dict_info):
     22 
     23     backend_title = dict_info.get("backend")
     24     context_title = "backend %s" % (backend_title)
     25     record_title = dict_info["backend"]
     26     context_record = "server %s %s weight %s maxconn %s" %(record_title["server"],record_title["server"],record_title["weight"],record_title["maxconn"])
     27     fetch_list = fetch(backend_title)
     28 
     29     if fetch_list:
     30         flag =False
     31         has_write = False
     32         with open('b.txt') as read_obj,open('b.new.txt','w')as write_obj:
     33             for line in read_obj:
     34                 if line.strip() == context_title:
     35                     flag = True
     36                     continue
     37                 if flag and line.startswith("backend"):
     38                     flag = False
     39                 if flag:
     40                     for new_line in fetch_list:
     41                         if not has_write:
     42                             temp = '%s%s'%(" "*8,new_line)
     43                             write_obj.write(temp)
     44                             has_write = True
     45                 else:
     46                     write_obj.write(line)
     47 
     48     else:
     49         with open('b.txt')as read_obj,open('b.new.txt','w')as write_obj:
     50             for line in read_obj:
     51                 write_obj.write(line)
     52             write_obj.write('
    '+context_title+'
    ')
     53             temp = " "*8+context_record+'
    '
     54             write_obj.write(temp)
     55 
     56     os.rename('b.txt','b.bak.txt')
     57     os.rename('b.new.txt','b.txt')
     58 
     59 
     60 def delete(dict_info):
     61     del_backend = dict_info["backend"]
     62     del_record = dict_info ["crecord"]
     63 
     64     context_title = "backend %s" %(del_backend)
     65     context_record = "server %s %s weight %s maxconn %s"%(del_record["server"],del_record["server"],del_record["weight"],del_record["maxconn"])
     66 
     67     fecth_list = fetch(del_backend)
     68 
     69     if not fecth_list:
     70         return
     71     else:
     72         if context_record not in fecth_list:
     73             print('mei you zhao dao')
     74             return
     75         else:
     76             fecth_list.remove(context_record)
     77 
     78         with open('b.txt','r')as read_obj,open('b.new.txt','w')as write_obj:
     79             flag = False
     80             has_write = False
     81             for line in read_obj:
     82                 if line.strip() == context_title:
     83                     write_obj.write(line)
     84                     flag = True
     85                     continue
     86                 if flag and line.startswith("backend"):
     87                     flag = False
     88                 if flag:
     89                     if not has_write:
     90                         print(fecth_list)
     91                         for new_line in fecth_list:
     92                             temp = '%s%s 
    '%(' '*8,new_line)
     93                             write_obj.write(temp)
     94                         has_write = True
     95                 else:
     96                     write_obj.write(line)
     97 
     98     os.rename('b.txt','b.bak.txt')
     99     os.rename('b.new.txt','b.txt')
    100 """
    101 s = '{"backend":"ttt.oldboy.org","record":{"server":"100.1.7.9","weight":"20","maxconn":"3000"}}'
    102 data_info=json.loads(s)
    103 add(data_info)
    104 delete(data_info)
    105 """
    106 if __name__ == "__main__":
    107     print('1.获取记录 2.添加记录 3.删除记录')
    108     select_num = input('plz input backend:')
    109 
    110     if select_num == "1":
    111         backend = input('plz input backend:')
    112         fetch_list = fetch(backend)
    113         for i in fetch_list:
    114             print(i)
    115         else:
    116             print("shu ru cuo wu")
    117             data_str = input("plz input record>>>")
    118             data_dict = json.loads(data_str)
    119             if select_num == "2":
    120                 add(data_dict)
    121             elif select_num == "3":
    122                 delete(data_dict)
    123             else:
    124                 print("cuo wu")
    View Code
  • 相关阅读:
    UVa 10010 Where's Waldorf?
    boost 学习笔记
    C++ enum类型的一个更好的用法
    新浪面试题:删除字符串中多余的空格
    微软面试题:写程序找出二叉树的深度
    c++中sizeof的分析
    复习计划
    boost学习之 时间和日期 timer
    c++ template学习总结3
    微软面试题:反序一个单向链表
  • 原文地址:https://www.cnblogs.com/hanwei999/p/6058894.html
Copyright © 2011-2022 走看看