X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcore%2Fkeystone.py;h=f5732bcce6737b78317ec5ec27e2bbdad61e0232;hb=refs%2Fchanges%2F03%2F10803%2F1;hp=d79ea89f09c7e2d1387e4f4aaf4898c5e831de02;hpb=2fe71f21fe75ee283d39e66391d7d3a094713569;p=osm%2FMON.git diff --git a/osm_mon/core/keystone.py b/osm_mon/core/keystone.py index d79ea89..f5732bc 100644 --- a/osm_mon/core/keystone.py +++ b/osm_mon/core/keystone.py @@ -31,13 +31,16 @@ class KeystoneConnection: Object representing a connection with keystone, it's main use is to collect projects and users from the OSM platform stored in keystone instead MongoDB """ + def __init__(self, config): - self.auth_url = config.get('keystone', 'url') - self.username = config.get('keystone', 'service_user') - self.project_name = config.get('keystone', 'service_project') - self.project_domain_name_list = config.get('keystone', 'service_project_domain_name').split(",") - self.password = config.get('keystone', 'service_password') - self.user_domain_name_list = config.get('keystone', 'domain_name').split(",") + self.auth_url = config.get("keystone", "url") + self.username = config.get("keystone", "service_user") + self.project_name = config.get("keystone", "service_project") + self.project_domain_name_list = config.get( + "keystone", "service_project_domain_name" + ).split(",") + self.password = config.get("keystone", "service_password") + self.user_domain_name_list = config.get("keystone", "domain_name").split(",") self.auth = v3.Password( auth_url=self.auth_url, @@ -45,14 +48,52 @@ class KeystoneConnection: username=self.username, password=self.password, project_domain_name=self.project_domain_name_list[0], - project_name=self.project_name + project_name=self.project_name, ) self.keystone_session = session.Session(auth=self.auth) - self.keystone_client = client.Client(session=self.keystone_session, endpoint_override=self.auth_url) + self.keystone_client = client.Client( + session=self.keystone_session, endpoint_override=self.auth_url + ) def getProjects(self): """ Grabs projects from keystone using the client and session build in the constructor """ return self.keystone_client.projects.list() + + def getProjectsById(self, user_id): + """ + Grabs projects filtered by user ID from keystone using the client and session build in the constructor + """ + return self.keystone_client.projects.list(user=user_id) + + def getUserById(self, user_id): + """ + Grabs user object from keystone using user id + """ + return self.keystone_client.users.get(user_id) + + def getRoleById(self, role_id): + """ + Grabs role object from keystone using id + """ + return self.keystone_client.roles.get(role_id) + + def getRoleByName(self, role): + """ + Grabs role object from keystone using name + """ + return self.keystone_client.roles.list(name=role) + + def getProjectsByProjectId(self, project_id): + """ + Grabs projects object from keystone using id + """ + return self.keystone_client.projects.get(project_id) + + def getProjectsByProjectName(self, project): + """ + Grabs projects object from keystone name + """ + return self.keystone_client.projects.list(name=project)