openstack学习之路-python运维(network)

import requests,json,time

# *******************全局变量IP*****************************
#执行代码前,请修改controller_ip的IP地址,与指定router
print("\n==============================基础环境配置==============================\n")
controller_ip=input("请输入访问openstack平台控制节点IP地址:(xx.xx.xx.xx)\n")

try:
    url  = f"http://{controller_ip}:5000/v3/auth/tokens"
    body = {"auth": {"identity": {"methods": ["password"], "password": {
                "user": {"domain": {"name": "demo"}, "name": "admin", "password": "000000"}}},
                   "scope": {"project": {"domain": {"name": "demo"}, "name": "admin"}}}}
    headers = {
                    "Content-Type": "application/json",
                }
    Token = requests.post(url, data=json.dumps(body), headers=headers).headers['X-Subject-Token']
    headers = {
                    "X-Auth-Token": Token
                }
except Exception as e:
    print(f"获取Token值失败,请检查访问云主机控制节点IP是否正确?输出错误信息如下:{str(e)}")
    exit(0)



class net_api:
    def __init__(self,handers:dict,resUrl:str):
        self.headers=handers
        self.resUrl=resUrl
    #创建网络
    def create_net(self,net_name:str):
        self.headers['Content-Type']="application/json"
        url=self.resUrl + "networks"
        body={
            "network": {
                 "name": net_name}
        }
        return json.loads(requests.post(url, data=json.dumps(body), headers=self.headers).text)
    #创建子网
    def create_subnet(self, net_id:str, subnet_name:str, cidr_ip:str, gateway_ip:str):
        self.headers['Content-Type']="application/json"
        url=self.resUrl + "subnets"
        body={
            "subnet": {
                 "name": subnet_name,
                 "network_id":net_id,
                 "ip_version":4,
                 "cidr":cidr_ip,
                 "gateway_ip":gateway_ip }
        }
        return json.loads(requests.post(url, data=json.dumps(body), headers=self.headers).text)
net_api=net_api(headers,f"http://{controller_ip}:9696/v2.0/")
net_info=net_api.create_net(net_name='c2')
subnet_info=net_api.create_subnet(net_id=net_info["network"]["id"], subnet_name="c22", cidr_ip="199.168.23.0/24", gateway_ip="199.168.23.1")
print(subnet_info)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Akers119

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值