华为云调用api获取vpc信息(token方式)

#encoding=utf-8
import requests
requests.packages.urllib3.disable_warnings()
import json
from retrying import retry

@retry
def ListVpcsRequest(requests,region,project_id,token):
    url = "https://vpc."+region+".xxx/"+project_id+"/vpc/vpcs"    #vpc的url 由地域和项目id组成
    payload = "xxx"
    headers = {
        "content_type":"application/json",
        'x-auth-token':token,                   #token传到头文件
        "cache-control":"no-cache",
    }
    proxies = {
        'http': "xxx:8080",
        'https': "xxx:8080"
    }
    res = requests.request("GET",url,data=payload,headers=headers,proxies=proxies,verify=False)
    return res


def GetVpcInfo(domain,region,project_id,token):
    for i in range(10):
        try:
            vpc_info = ListVpcsRequest(requests,region,project_id,token)
            break
        except Exception as e:
            print(e)

def get_Token(domain,region):   #(domain账号,地域)
    url = "https://xxx."+region+".xxx/tokens"   #token路径,每个地域都不一样

    #可用postman获取
    payload = {
        "auth":{
            "identity":{
                "methods":[
                    "password"
                ],
                "password":{
                    "user":{
                        "domain":{
                            "name":domain
                        },
                        "name":"xxx",  #个人账号
                        "password":"xxx"  #个人密码
                    }
                }
            },
            "scope":{
                "project":{
                    "name":None
                }
            }
        }
    }

    header = {
        "content_type":"application/json",
        "cache-control":"no-cache",
    }

    #代理地址,看情况使用
    proxies = {
        'http':"xxx:8080",
        'https':"xxx:8080"
    }

    token = ""
    #防止失败,循环获取
    for i in range(10):
        try:
            res = requests.request("POST",url,data=json.dumps(payload),headers=header,proxies=proxies,verify=False)
            token = res.headers['X-Subject-Token']
            break
        except Exception as e:
            print(e)
    return token

domain = 'xxx' #domain账号
region = 'xxx' #地域
project_id = 'xxx'
token = get_Token(domain,region)

GetVpcInfo(domain,region,project_id,token)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值