from HwUser import HwUser
import json
import time
'''
在云服务器的/root/huawei 目录下编写 create_vpc.py 文件, 并导入赛项提供的HwUser.py 文件获取授权。编写 Python 代码,参考官方相关的API调用文档,创建华为云的虚拟私有云,具体要求为
(1)虚拟私有云名称:chinaskills_vpc;
(2)如果虚拟私有云已经存在,代码中需要先删除;
(3)创建成功后输出此虚拟私有云的详细信息(状态要求为 OK)。
'''
if __name__ == "__main__":
# 1 获取授权
ak = "7IJFH088K7ZHG6H7MJ7E"
sk = "ClkPa47PpNxEpiPzKQ3c5Nzcb1S5uSVGhQ13owge"
user = HwUser(ak, sk)
# 2 查询VPC
print("正在查询vpc。。。。", end="")
resp = user.httpRequest("GET", "https://vpc.cn-east-2.myhuaweicloud.com/v3/0f4115bb9280f3192fa7c00e1c434035/vpc/vpcs")
result = json.loads(str(resp.content, encoding="utf-8"))
## 2.1 查看是否已存在VPC chinaskills_vpc
### 取出现有的VPC 列表
now_vpc_list = result["vpcs"]
targetID = []
for i in now_vpc_list:
if "chinaskills_vpc" == i["name"]:
targetID.append(i["id"])
if targetID == []:
print("当前环境未存在 chinaskills_vpc")
else:
print("存在需要删除的vpc")
print(" 正在尝试删除已存在的vpc chinaskills_vpc。。。")
for id in targetID:
### 查看子网信息
requestURL = "https://vpc.cn-east-2.myhuaweicloud.com/v1/0f4115bb9280f3192fa7c00e1c434035/subnets?vpc_id="+id
resp = user.httpRequest("GET", requestURL,{ "content-type": "application/json" },"")
result = json.loads(str(resp.content, encoding="utf-8"))
now_vpc_subnet_list = result["subnets"]
subnets = []
for i in now_vpc_subnet_list:
subnets.append(i["id"])
### 删除子网
requestURL = "https://vpc.cn-east-2.myhuaweicloud.com/v1/0f4115bb9280f3192fa7c00e1c434035/vpcs/"+id+"/subnets/"+i["id"]
resp = user.httpRequest("DELETE", requestURL,{ "content-type": "application/json" },"")
### 删除vpc 删除最后一个VPC要先删除安全组
time.sleep(2) # 避免409
requestURL = "https://vpc.cn-east-2.myhuaweicloud.com/v1/0f4115bb9280f3192fa7c00e1c434035/vpcs/"+id
resp = user.httpRequest("DELETE", requestURL,{ "content-type": "application/json" },"")
print(" 删除完成")
# 3 创建VPC
print("正在创建vpc。。。。", end="")
requestURL = "https://vpc.cn-east-2.myhuaweicloud.com/v1/0f4115bb9280f3192fa7c00e1c434035/vpcs"
bodys=json.dumps({"vpc":{"name":"chinaskills_vpc", "description": "test"}})
print(bodys)
resp = user.httpRequest("POST", requestURL,{ "content-type": "application/json" },bodys)
## 3.1 获取ID
result = json.loads(str(resp.content, encoding="utf-8"))
print(result)
yid = result["vpc"]["id"]
print("完成,新VPC ID为:"+yid)
# 4 查询
print("VPC信息查询中。。。")
requestURL = "https://vpc.cn-east-2.myhuaweicloud.com/v1/0f4115bb9280f3192fa7c00e1c434035/vpcs/"+yid
resp = user.httpRequest("GET", requestURL, { "content-type": "application/json" }, "")
result = json.loads(str(resp.content, encoding="utf-8"))
print(result)
print(" vpc 名字:"+str(result["vpc"]["name"]))
print(" vpc id:"+str(result["vpc"]["id"]))
print(" vpc status:"+str(result["vpc"]["status"]))