from ast import Return import re from HwUser import HwUser import json ''' 在云服务器的/root/huawei 目录下编写 create_server_group.py 文件,并导入赛项提供的HwUser.py 文件获取授权。编写 Python 代码,参考官方相关的API调用文档,创建华为云的云服务器组,具体要求为 (1)云服务器组名称:chinaskills_server_group; (2)云服务器组策略:反亲和性; (3)如果安全组已经存在,代码中需要先删除; (4)创建成功后输出该云服务器组的信息。 ''' if __name__ == "__main__": # 1 获取授权 ak = "7IJFH088K7ZHG6H7MJ7E" sk = "ClkPa47PpNxEpiPzKQ3c5Nzcb1S5uSVGhQ13owge" user = HwUser(ak, sk) # 2 检查现有的云服务器组 print("正在查询云服务器组。。。。", end="") resp = user.httpRequest("GET", "https://ecs.cn-east-2.myhuaweicloud.com/v1/0f4115bb9280f3192fa7c00e1c434035/cloudservers/os-server-groups") result = json.loads(str(resp.content, encoding="utf-8")) ## 2.1 查看是否已存在云服务器组 chinaskills_server_group ### 取出现有的云服务器列表 now_net_list = result["server_groups"] targetID = [] for i in now_net_list: if "chinaskills_server_group" == i["name"]: targetID.append(i["id"]) if targetID == []: print("当前环境未存在chinaskills_server_group") else: print("存在需要删除的云服务器组") print(" 正在尝试删除已存在的云服务器组chinaskills_server_group。。。") for id in targetID: requestURL = "https://ecs.cn-east-2.myhuaweicloud.com/v1/0f4115bb9280f3192fa7c00e1c434035/cloudservers/os-server-groups/"+id resp = user.httpRequest("DELETE", requestURL,{ "content-type": "application/json" },"") print(" 删除完成") # 3 创建服务器组 print("正在创建服务器组。。。",end="") name = "chinaskills_server_group" bodys = json.dumps({"server_group": {"name": name,"policies": ["anti-affinity"]}}) resp = user.httpRequest("POST", "https://ecs.cn-east-2.myhuaweicloud.com/v2.1/0f4115bb9280f3192fa7c00e1c434035/os-server-groups",{ "content-type": "application/json" },bodys) ## 3.1 获取ID result = json.loads(str(resp.content, encoding="utf-8")) yid = result["server_group"]["id"] print("完成,新服务器组ID为:"+yid) # 4 查询 print("服务器组信息查询中。。。") resp = user.httpRequest("GET", "https://ecs.cn-east-2.myhuaweicloud.com/v2.1/0f4115bb9280f3192fa7c00e1c434035/os-server-groups/"+yid,{ "content-type": "application/json" }, "") result = json.loads(str(resp.content, encoding="utf-8")) print(" 云服务器组ID:"+str(result["server_group"]["id"])) print(" 云服务器组策略:"+str(result["server_group"]["policies"])) print(" 云服务器组名字:"+str(result["server_group"]["name"]))
python api 调用云服务器组管理
最新推荐文章于 2023-09-25 15:51:10 发布