# # bind_agents.py # import requests # import urllib3 # urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # BASE_URL = "https://devb.zdht.hjkl01.cn:65432" # ROLE_BIND_API = f"{BASE_URL}/api/v1/agent-roles/association" # HEADERS = { # "Accept": "application/json", # "Content-Type": "application/json", # } # TIMEOUT = 10 # INPUT_FILE = "agent_ids.txt" # # 角色 ID # AGENT_ROLE_0 = "1" # 1-8 # AGENT_ROLE_1 = "2" # 1-4 # AGENT_ROLE_2 = "3" # 5-6 # AGENT_ROLE_3 = "4" # 7-8 # def calc_role_id_by_index(index: int) -> str: # if 1 <= index <= 4: # return AGENT_ROLE_1 # elif 5 <= index <= 6: # return AGENT_ROLE_2 # elif 7 <= index <= 8: # return AGENT_ROLE_3 # else: # raise ValueError("非法 icon_index") # def bind_agent(agent_id: str, role_id: str): # payload = [ # { # "agent_id": agent_id, # "agent_role_id": role_id, # "is_active": True, # } # ] # resp = requests.post( # ROLE_BIND_API, # headers=HEADERS, # json=payload, # verify=False, # timeout=TIMEOUT, # ) # print(f"[BIND] {agent_id} -> role {role_id} => {resp.status_code}") # if resp.status_code not in (200, 201): # print(" ↳", resp.text) # def main(): # with open(INPUT_FILE, "r", encoding="utf-8") as f: # agent_ids = [line.strip() for line in f if line.strip()] # print(f"=== 读取到 {len(agent_ids)} 个 Agent ===") # for idx, agent_id in enumerate(agent_ids, start=1): # role_id = calc_role_id_by_index(idx) # bind_agent(agent_id, role_id) # print("\n✅ 绑定完成") # if __name__ == "__main__": # main() import requests import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) BASE_URL = "http://192.168.0.46:22000" ROLE_BIND_API = f"{BASE_URL}/api/v1/agent-roles/association" HEADERS = { "Accept": "application/json", "Content-Type": "application/json", } TIMEOUT = 10 INPUT_FILE = "agent_ids.txt" # 角色 ID AGENT_ROLE_0 = "1" # 所有 Agent 必绑 AGENT_ROLE_1 = "2" # 1-4 AGENT_ROLE_2 = "3" # 5-6 AGENT_ROLE_3 = "4" # 7-8 def calc_role_id_by_index(index: int) -> str: if 1 <= index <= 4: return AGENT_ROLE_1 elif 5 <= index <= 6: return AGENT_ROLE_2 elif 7 <= index <= 8: return AGENT_ROLE_3 else: raise ValueError("非法 index") def bind_agent(agent_id: str, role_id: str): payload = [ { "agent_id": agent_id, "agent_role_id": role_id, "is_active": True, } ] resp = requests.post( ROLE_BIND_API, headers=HEADERS, json=payload, verify=False, timeout=TIMEOUT, ) print(f"[BIND] {agent_id} -> role {role_id} => {resp.status_code}") if resp.status_code not in (200, 201): print(" ↳", resp.text) def main(): with open(INPUT_FILE, "r", encoding="utf-8") as f: agent_ids = [line.strip() for line in f if line.strip()] print(f"=== 读取到 {len(agent_ids)} 个 Agent ===") for idx, agent_id in enumerate(agent_ids, start=1): # 1️⃣ 所有 Agent 统一绑定角色 1 bind_agent(agent_id, AGENT_ROLE_0) # 2️⃣ 再绑定分组角色 group_role = calc_role_id_by_index(idx) # 防止重复绑定 if group_role != AGENT_ROLE_0: bind_agent(agent_id, group_role) print("\n✅ 绑定完成(角色 1 + 分组角色)") if __name__ == "__main__": main()