def getProject(self, id): try: response = self.getResource("/projects/%s" % id, "GET") except requests.exceptions.HTTPError as ex: response = ex.response.json() raise SynergyError("error on retrieving the project (id=%r, " "msg=%s)" % (id, response["error"]["message"])) project = None if response: info = response["project"] project = Project() project.setId(info["id"]) project.setName(info["name"]) project.setEnabled(info["enabled"]) return project
def buildFromDB(self): connection = self.db_engine.connect() try: QUERY = "select id, name, share, TTL from project" result = connection.execute(QUERY) for row in result: project = Project() project.setId(row[0]) project.setName(row[1]) project.getShare().setValue(row[2]) project.setTTL(row[3]) project.setId(row[0]) project_id = project.getId() try: k_project = self.keystone_manager.getProject(project_id) if not k_project: self._removeProject(project) continue users = self.keystone_manager.getUsers(prj_id=project_id) for user in users: project.addUser(user) self.projects[project.getId()] = project self.notify(event_type="PROJECT_ADDED", project=project) except SynergyError as ex: LOG.info("the project %s seems not to exist anymore! " "(reason=%s)" % (project.getName(), ex.message)) try: self._removeProject(project, force=True) except Exception as ex: LOG.info(ex) except SQLAlchemyError as ex: raise SynergyError(ex.message) finally: connection.close() self.notify(event_type="PROJECT_DONE")
def getProjects(self, usr_id=None, name=None, domain_id=None): if usr_id: try: response = self.getResource("users/%s/projects" % usr_id, "GET") except requests.exceptions.HTTPError as ex: response = ex.response.json() message = response["error"]["message"] raise SynergyError("error on retrieving the users's projects " "(id=%r): %s" % (usr_id, message)) else: data = {} if domain_id: data["domain_id"] = domain_id if name: data["name"] = name try: response = self.getResource("/projects", "GET", data=data) except requests.exceptions.HTTPError as ex: response = ex.response.json() raise SynergyError( "error on retrieving the projects list: %s" % response["error"]["message"]) projects = [] if response: projects_info = response["projects"] for info in projects_info: project = Project() project.setId(info["id"]) project.setName(info["name"]) project.setEnabled(info["enabled"]) projects.append(project) return projects
def getProjects(self, usr_id=None, name=None, domain_id=None): if usr_id: try: response = self.getResource( "users/%s/projects" % usr_id, "GET") except requests.exceptions.HTTPError as ex: response = ex.response.json() message = response["error"]["message"] raise SynergyError("error on retrieving the users's projects " "(id=%r): %s" % (usr_id, message)) else: data = {} if domain_id: data["domain_id"] = domain_id if name: data["name"] = name try: response = self.getResource("/projects", "GET", data=data) except requests.exceptions.HTTPError as ex: response = ex.response.json() raise SynergyError("error on retrieving the projects list: %s" % response["error"]["message"]) projects = [] if response: projects_info = response["projects"] for info in projects_info: project = Project() project.setId(info["id"]) project.setName(info["name"]) project.setEnabled(info["enabled"]) projects.append(project) return projects