70 lines
2.7 KiB
Python
70 lines
2.7 KiB
Python
import requests
|
|
import json
|
|
from keystone import domain
|
|
def get_project_id(ip, token, project_name):
|
|
url = "http://" + ip + ":5000/v3/projects"
|
|
headers = {"X-Auth-Token": token}
|
|
response = requests.get(url, headers=headers)
|
|
for i in response.json()["projects"]:
|
|
if i["name"] == project_name:
|
|
return i['id']
|
|
return None
|
|
def get_project(ip, token):
|
|
url = "http://" + ip + ":5000/v3/projects"
|
|
headers = {"X-Auth-Token": token}
|
|
response = requests.get(url, headers=headers)
|
|
return response.json()["projects"]
|
|
def create_project(ip, token, project_name,domain_name, description):
|
|
url = "http://" + ip + ":5000/v3/projects"
|
|
domain_id = domain.get_domain_id(ip, token, domain_name)
|
|
if domain_id == None:
|
|
return {"error":"域不存在"}
|
|
headers = {"X-Auth-Token": token}
|
|
data = {
|
|
"project": {
|
|
"name": project_name,
|
|
"domain_id": domain_id,
|
|
"description": description,
|
|
"enabled": True
|
|
}
|
|
}
|
|
response = requests.post(url, headers=headers, data=json.dumps(data))
|
|
return response.json()
|
|
def show_project(ip, token, project_name):
|
|
project_id=get_project_id(ip, token, project_name)
|
|
if project_id == None:
|
|
return {"error":"项目不存在"}
|
|
url = "http://" + ip + ":5000/v3/projects/" + project_id
|
|
headers = {"X-Auth-Token": token}
|
|
response = requests.get(url, headers=headers)
|
|
return response.json()
|
|
def delete_project(ip, token, project_name):
|
|
project_id=get_project_id(ip, token, project_name)
|
|
if project_id == None:
|
|
return {"项目不存在"}
|
|
url = "http://" + ip + ":5000/v3/projects/" + project_id
|
|
headers = {"X-Auth-Token": token}
|
|
response = requests.delete(url, headers=headers)
|
|
if response.status_code == 204:
|
|
return {"message": "删除成功"}
|
|
else:
|
|
return {"error": "删除失败", "status_code": response.status_code}
|
|
def update_project(ip, token, project_name, new_project_name,new_domain_id, new_description):
|
|
project_id=get_project_id(ip, token, project_name)
|
|
if project_id == None:
|
|
return {"error":"项目不存在"}
|
|
url = "http://" + ip + ":5000/v3/projects/" + project_id
|
|
headers = {"X-Auth-Token": token}
|
|
data = {
|
|
"project": {
|
|
"name": new_project_name,
|
|
"domain_id": new_domain_id,
|
|
"description": new_description,
|
|
"enabled": True
|
|
}
|
|
}
|
|
response = requests.patch(url, headers=headers, data=json.dumps(data))
|
|
if response.status_code == 200:
|
|
return {"message": "更新成功"}
|
|
else:
|
|
return {"error": "更新失败","status_code": response.status_code} |