python api 调用云服务器组管理

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"]))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要编写Python脚本调用OpenStack API对OpenStack云平台进行管理和运维,需要遵循以下步骤: 1. 安装OpenStack Python SDK:首先需要安装OpenStack Python SDK,可以使用pip安装: ```bash pip install openstacksdk ``` 2. 配置OpenStack认证信息:在编写Python脚本之前,需要配置OpenStack认证信息,包括用户名、密码、项目名、认证URL等。可以通过环境变量或直接在脚本中定义这些信息。 ```python from openstack import connection # 配置OpenStack认证信息 auth_url = "https://<auth_url>/v3" username = "<username>" password = "<password>" project_name = "<project_name>" user_domain_name = "Default" project_domain_name = "Default" # 创建OpenStack连接 conn = connection.Connection( auth_url=auth_url, username=username, password=password, project_name=project_name, user_domain_name=user_domain_name, project_domain_name=project_domain_name ) ``` 3. 调用OpenStack API:一旦创建了OpenStack连接,就可以调用OpenStack API对云平台进行管理和运维。OpenStack Python SDK提供了许多API,可以查阅相关文档了解具体的API使用方法。 ```python # 获取所有的云服务器 servers = conn.compute.servers() # 创建一个云服务器 server = conn.compute.create_server( name="myserver", image_id="<image_id>", flavor_id="<flavor_id>", network_id="<network_id>" ) ``` 通过以上步骤,就可以编写Python脚本调用OpenStack API对OpenStack云平台进行管理和运维了。在实际使用过程中,需要注意OpenStack API的版本和使用权限等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值