new-openstackcheck-mk2/myOpenstackApp/keystone.py

86 lines
3.1 KiB
Python
Raw Normal View History

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():
def __init__(self,conn: myOpenstackApp.OpenStackConnection.OpenStackConnection_x ) -> None:
2022-11-07 03:36:36 +00:00
self.serviceData={}
self.catalogData={}
self.projectData={}
self.connection=conn
2022-11-07 03:36:36 +00:00
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)
2022-11-07 06:29:01 +00:00
def getEndpointByNameAndInterface(_self,name,interface):
2022-11-07 03:36:36 +00:00
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.connection.make_request("POST", "projects", data,
os.getenv("OS_AUTH_URL")).json()
return _self.newProjectData
def deleteProject(_self,id):
log.info("Deleting a project")
_self.newProjectData=_self.connection.make_request("DELETE", "projects/"+id, "",
2022-11-07 03:36:36 +00:00
os.getenv("OS_AUTH_URL")).json()
return _self.newProjectData