2022-11-07 03:36:36 +00:00
|
|
|
import imp
|
|
|
|
import json
|
|
|
|
import os
|
|
|
|
from myOpenstackApp.logger import log
|
|
|
|
import myOpenstackApp.settings
|
2022-11-06 22:53:32 +00:00
|
|
|
import myOpenstackApp.OpenStackConnection
|
|
|
|
|
|
|
|
|
|
|
|
class myopenstack_keystone():
|
2022-11-07 03:36:36 +00:00
|
|
|
def __init__(self, connection):
|
|
|
|
self.serviceData={}
|
|
|
|
self.catalogData={}
|
|
|
|
self.projectData={}
|
|
|
|
self.connection=connection
|
|
|
|
|
2022-11-06 22:53:32 +00:00
|
|
|
|
|
|
|
|
2022-11-07 03:36:36 +00:00
|
|
|
def getAllProjects(_self):
|
|
|
|
_self.projectData=_self.connection.make_request("GET", "projects", "",
|
|
|
|
os.getenv("OS_AUTH_URL")).json()
|
|
|
|
return _self.projectData
|
|
|
|
|
2022-11-06 22:53:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
def getCatalog(_self):
|
2022-11-07 03:36:36 +00:00
|
|
|
catalogData=_self.connection.make_request("GET", "endpoints", "",
|
|
|
|
os.getenv("OS_AUTH_URL")).json()
|
|
|
|
|
|
|
|
serviceData=_self.connection.make_request("GET", "services", "",
|
|
|
|
os.getenv("OS_AUTH_URL")).json()
|
|
|
|
# print(serviceData)
|
|
|
|
_self.serviceData=serviceData
|
|
|
|
_self.catalogData=catalogData
|
|
|
|
return catalogData
|
|
|
|
|
|
|
|
|
|
|
|
def getServicebyID(_self,id):
|
|
|
|
# print(_self.serviceData)
|
|
|
|
for _service in _self.serviceData['services']:
|
|
|
|
if str(_service['id']).lower()==str(id).lower():
|
|
|
|
# print(_service)
|
|
|
|
return(_service)
|
|
|
|
|
|
|
|
def getServicebyName(_self,name):
|
|
|
|
for _service in _self.serviceData['services']:
|
|
|
|
if str(_service['name']).lower()==str(name).lower():
|
|
|
|
# print(_service)
|
|
|
|
return(_service)
|
|
|
|
|
|
|
|
|
|
|
|
def getEndpointByServiceIDAndInterface(_self,id,interface):
|
|
|
|
for _endpoint in _self.catalogData['endpoints']:
|
|
|
|
if str(_endpoint['service_id']).lower()==str(id).lower():
|
|
|
|
if str(_endpoint['interface']).lower()==str(interface).lower():
|
|
|
|
# print(_endpoint)
|
|
|
|
return(_endpoint)
|
|
|
|
|
|
|
|
def getEndpointByNameIDAndInterface(_self,name,interface):
|
|
|
|
id=_self.getServicebyName(name)['id']
|
|
|
|
for _endpoint in _self.catalogData['endpoints']:
|
|
|
|
if str(_endpoint['service_id']).lower()==str(id).lower():
|
|
|
|
if str(_endpoint['interface']).lower()==str(interface).lower():
|
|
|
|
# print(_endpoint)
|
|
|
|
return(_endpoint)
|
|
|
|
|
|
|
|
def createProject(_self,name,description):
|
|
|
|
log.info("Creating a project")
|
|
|
|
data={
|
|
|
|
"project": {
|
|
|
|
"description": description,
|
|
|
|
"enabled": True,
|
|
|
|
"is_domain": False,
|
|
|
|
"name": name
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_self.newProjectData=_self.requestor.make_request("POST", "projects", data,
|
|
|
|
os.getenv("OS_AUTH_URL")).json()
|
|
|
|
return _self.newProjectData
|