new-openstackcheck/ng_openstack/keystone.py

77 lines
2.7 KiB
Python
Raw Normal View History

2022-10-10 06:33:10 +00:00
import imp
2022-10-10 05:25:49 +00:00
import json
import ng_openstack.openstackRequest
2022-10-10 06:33:10 +00:00
import ng_openstack.settings
import os
2022-11-02 06:10:46 +00:00
from ng_openstack.logger import log
2022-10-10 05:25:49 +00:00
2022-10-10 06:33:10 +00:00
class Openstack_Keystone():
def __init__(self, requestor):
self.serviceData={}
self.catalogData={}
self.projectData={}
self.requestor=requestor
2022-10-10 05:25:49 +00:00
2022-10-10 06:33:10 +00:00
def getAllProjects(_self):
_self.projectData=_self.requestor.make_request("GET", "projects", "",
os.getenv("OS_AUTH_URL")).json()
return _self.projectData
2022-10-10 05:25:49 +00:00
2022-10-10 05:29:15 +00:00
2022-10-10 06:33:10 +00:00
2022-10-13 02:24:30 +00:00
def getCatalog(_self):
catalogData=_self.requestor.make_request("GET", "endpoints", "",
os.getenv("OS_AUTH_URL")).json()
2022-10-10 06:33:10 +00:00
2022-10-13 02:24:30 +00:00
serviceData=_self.requestor.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):
2022-10-13 02:25:57 +00:00
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):
2022-10-13 04:07:43 +00:00
id=_self.getServicebyName(name)['id']
2022-10-13 02:25:57 +00:00
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)
2022-11-02 06:10:46 +00:00
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