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)
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)
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))
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]