Reformat MON to standardized format
[osm/MON.git] / osm_mon / core / keystone.py
index d79ea89..f5732bc 100644 (file)
@@ -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)