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,
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):
"""
"""
return self.keystone_client.projects.list(user=user_id)
+ def getUsers(self):
+ """
+ Grabs users from keystone using the client and session build in the constructor
+ """
+ domain_list = self.keystone_client.domains.list()
+ users = []
+ for domain in domain_list:
+ users.extend(self.keystone_client.users.list(domain=domain.id))
+ return users
+
def getUserById(self, user_id):
"""
Grabs user object from keystone using user id