Exemplo n.º 1
0
    def get_one(self, script_id):
        """Return a script.

        :param script_id: UUID of the script to filter on.
        """
        pyscripts = db_api.get_instance()
        try:
            script_db = pyscripts.get_script(uuid=script_id)
            return script_models.Script(**script_db.export_model())
        except db_api.NoSuchScript as e:
            pecan.abort(400, six.text_type(e))
Exemplo n.º 2
0
    def post(self, script_data):
        """Create pyscripts script.

        :param script_data: Informations about the script to create.
        """
        pyscripts = db_api.get_instance()
        try:
            data = self.normalize_data(script_data.data)
            script_db = pyscripts.create_script(script_data.name, data)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += script_db.script_id
            return script_models.Script(**script_db.export_model())
        except db_api.ScriptAlreadyExists as e:
            pecan.abort(409, six.text_type(e))
Exemplo n.º 3
0
    def get_all(self, no_data=False):
        """Get the script list

        :param no_data: Set to True to remove script data from output.
        :return: List of every scripts.
        """
        pyscripts = db_api.get_instance()
        script_list = []
        script_uuid_list = pyscripts.list_scripts()
        for script_uuid in script_uuid_list:
            script_db = pyscripts.get_script(uuid=script_uuid)
            script = script_db.export_model()
            if no_data:
                del script['data']
            script_list.append(script_models.Script(**script))
        res = script_models.ScriptCollection(scripts=script_list)
        return res
Exemplo n.º 4
0
    def put(self, script_id, script_data):
        """Update pyscripts script.

        :param script_id: UUID of the script to update.
        :param script_data: Script data to update.
        """
        pyscripts = db_api.get_instance()
        try:
            data = self.normalize_data(script_data.data)
            script_db = pyscripts.update_script(script_id,
                                                name=script_data.name,
                                                data=data)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += script_db.script_id
            return script_models.Script(**script_db.export_model())
        except db_api.NoSuchScript as e:
            pecan.abort(400, six.text_type(e))