Exemple #1
0
    def GET(self, obj_type, obj_id, role_name):
        """Retrieve role

        :http:
            * 200 (OK)
            * 404 (no such object found)
        """
        obj_cls, obj = self._get_object_or_404(obj_type, obj_id)
        self._check_role(obj_cls, obj, role_name)
        return RoleSerializer.serialize_from_obj(obj_cls, obj, role_name)
Exemple #2
0
    def PUT(self, obj_type, obj_id, role_name):
        """Update role

        :http:
            * 200 (OK)
            * 404 (no such object found)
        """
        obj_cls, obj = self._get_object_or_404(obj_type, obj_id)
        self._check_role(obj_cls, obj, role_name)
        data = self.checked_data(
            self.validator.validate_update, instance_cls=obj_cls, instance=obj)
        obj_cls.update_role(obj, data)
        return RoleSerializer.serialize_from_obj(obj_cls, obj, role_name)
Exemple #3
0
    def POST(self, obj_type, obj_id):
        """Create role for release or cluster

        :http:
            * 201 (object successfully created)
            * 400 (invalid object data specified)
            * 409 (object with such parameters already exists)
        """
        obj_cls, obj = self._get_object_or_404(obj_type, obj_id)
        try:
            data = self.checked_data(
                self.validator.validate_create,
                instance_cls=obj_cls,
                instance=obj)
        except errors.AlreadyExists as exc:
            raise self.http(409, exc.message)

        role_name = data['name']
        obj_cls.update_role(obj, data)
        raise self.http(
            201, RoleSerializer.serialize_from_obj(obj_cls, obj, role_name))
Exemple #4
0
 def GET(self, obj_type, obj_id):
     obj_cls, obj = self._get_object_or_404(obj_type, obj_id)
     role_names = six.iterkeys(obj_cls.get_roles(obj))
     return [RoleSerializer.serialize_from_obj(obj_cls, obj, name)
             for name in role_names]