#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)


Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐