zoukankan      html  css  js  c++  java
  • 提供者批量启用脚本

    工作中,发现多个提供者被禁用,fsp个数多个62个,手动一个个启动,实在浪费时间,因此,脚本解决该痛点

    功能:

    1、支持多个提供者启动

    2、支持无fsp提供者提示

    脚本如下:

      1 import base64
      2 import json
      3 import requests
      4 
      5 def get_fsp(name, count):
      6     r = {
      7         "uid": "",
      8          "token": "",
      9         "nickname": "",
     10         "r": 0.577604849553434,
     11         "name": name,
     12         "start": 0,
     13         "limit": count,
     14         "sortname": "",
     15         "sortorder": ""
     16     }
     17     r = json.dumps(r)
     18     # base64加密
     19     bre = str(base64.b64encode(r.encode("utf-8")), "utf-8")
     20     url = "http://xxx/fsp/register/service/query?"
     21     total_url = url + bre
     22     res = requests.get(total_url)
     23     bbs = str(base64.b64decode(res.text), "utf-8")
     24     bs = json.loads(bbs)
     25     fsp_rows = bs['data']['rows']
     26     if len(fsp_rows) == 0:
     27         print("该关键词下没有相关fsp,请输入正确的搜索关键词")
     28     return fsp_rows
     29 
     30 def get_fsp_count(name):
     31     r = {
     32         "uid": "",
     33          "token": "",
     34         "nickname": "",
     35         "r": 0.577604849553434,
     36         "name": name,
     37         "start": 0,
     38         "limit": 162,
     39         "sortname": "",
     40         "sortorder": ""
     41     }
     42     r = json.dumps(r)
     43     # base64加密
     44     bre = str(base64.b64encode(r.encode("utf-8")), "utf-8")
     45     url = "http://xxx/fsp/register/service/query?"
     46     total_url = url + bre
     47     res = requests.get(total_url)
     48     bbs = str(base64.b64decode(res.text), "utf-8")
     49     bs = json.loads(bbs)
     50     count = bs['data']['count']
     51     return count
     52 
     53 
     54 def get_fsp_name(namelist):
     55     fsp_name_list = []
     56     for i in namelist:
     57         fsp_name_list.append(i['name'])
     58     return fsp_name_list
     59 
     60 def update_config(name, providerAddress):
     61     r = {
     62         "uid": "xxx",
     63         "token": "",
     64         "nickname": "xxx",
     65         "r": 0.050240422960323716,
     66         "name": name,
     67         "providerAddress": providerAddress,
     68         "forbidOper": 1
     69     }
     70     r = json.dumps(r)
     71     # base64加密
     72     bre = str(base64.b64encode(r.encode("utf-8")), "utf-8")
     73     url = "http://xxx/fsp/register/provider/config"
     74     total_url = url
     75     res = requests.post(total_url, data=bre)
     76     bbs = str(base64.b64decode(res.text), "utf-8")
     77     json_data = json.loads(bbs)
     78     if json_data['errorCode'] == 590000:
     79         print(name + '更新成功')
     80     return True
     81 
     82 
     83 def check_ableFlag(name):
     84     r = {
     85       "uid": "201030",
     86       "token": "",
     87       "nickname": "",
     88       "r": 0.7631927389548474,
     89       "name": name,
     90       "start": 0,
     91       "limit": 10,
     92       "sortname": "",
     93       "sortorder": ""
     94     }
     95     r = json.dumps(r)
     96     # base64加密
     97     bre = str(base64.b64encode(r.encode("utf-8")), "utf-8")
     98     url = "http://xxx/fsp/register/service/address/query?"
     99     total_url = url + bre
    100     res = requests.get(total_url, data=bre)
    101     bbs = str(base64.b64decode(res.text), "utf-8")
    102     bs = json.loads(bbs)
    103     # 提供者个数
    104     provider_num = len(bs['data']['rows'])
    105     provider_af_pa =[]
    106     if provider_num == 0:
    107         print(name + '该fsp没有提供者')
    108     else:
    109         for i in range(provider_num):
    110             ableFlag = bs['data']['rows'][i]['ableFlag']
    111             providerAddress = bs['data']['rows'][i]['providerAddress']
    112             r = dict(ableFlag=ableFlag, providerAddress=providerAddress)
    113             provider_af_pa.append(r)
    114     return provider_af_pa
    115 
    116 def exe(key):
    117     # 获取fsp个数
    118     count = get_fsp_count(key)
    119     # 获取fsp列表
    120     name = get_fsp(key, count)
    121     # fsp name列表
    122     name_list = get_fsp_name(name)
    123     for name in name_list:
    124         # <class 'dict'>: {'ableFlag': 0, 'providerAddress': 'xxx:10310'}
    125         pv_list = check_ableFlag(name)
    126         for j in range(len(pv_list)):
    127             ableFlag = pv_list[j]['ableFlag']
    128             pa = pv_list[j]['providerAddress']
    129         # labelflag==1是被禁用了,想启用的话"forbidOper": 1
    130             if ableFlag == 1:
    131                 res = update_config(name, pa)
    132                 if res:
    133                     print(name + ' 已被启用')
    134             else:
    135                 print(name + ' 该fsp已启动')
    136 
    137 
    138 if __name__ == '__main__':
    139     import sys
    140     if len(sys.argv) != 2:
    141         print("usage: python " + sys.argv[0] + " fsp.py xxx")
    142     else:
    143         exe(sys.argv[1])
  • 相关阅读:
    c++中的复合类型
    c++获取随机数
    静态成员数据和静态成员函数
    c++之window.h
    算法之美---100幅由程序生成的图像,总有一幅让你感到惊艳[上]
    分形的程序实现
    使用异或运算交换两个任意类型变量
    游戏中角色曲线行走的算法
    算法之美---由计算机生成的图像
    数学图形之肾形
  • 原文地址:https://www.cnblogs.com/rrl92/p/11606543.html
Copyright © 2011-2022 走看看