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 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
Exemplo n.º 3
0
    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 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