async def handle_mutation_request(self, request: MetadataSetManagerRequest) -> RequestResponse:
    'Handle a request to mutate metadata.'
    if (request.attr not in self.MUTABLE_ATTRS_BY_REQUEST):
        return RequestResponse(uuid=request.uuid, success=False, reason=f'{request.attr} is not a mutable attribute')
    if (len(request.value) == 0):
        try:
            del self._requested_data[request.attr]
            LOGGER.info(f'{request.attr} override has been removed by request')
            self.update_status()
        except KeyError:
            pass
    else:
        if (request.attr in self._requested_data):
            old_value = self._requested_data[request.attr]
        else:
            old_value = None
        try:
            self._requested_data[request.attr] = request.value
            self.update_status()
            LOGGER.info(f'{request.attr} has been overridden to {request.value} by request')
        except ValidationError as e:
            if (old_value is not None):
                self._requested_data[request.attr] = old_value
            LOGGER.warning(f'Unable to set {request.attr} to {request.value}.')
            LOGGER.warning(str(e))
            return RequestResponse(uuid=request.uuid, success=False, reason=f'{request.value} is not a valid value for {request.attr}')
    return RequestResponse(uuid=request.uuid, success=True)
Handle a request to mutate metadata.
async def handle_mutation_request(self, request: MetadataSetManagerRequest) -> RequestResponse:
    
    if (request.attr not in self.MUTABLE_ATTRS_BY_REQUEST):
        return RequestResponse(uuid=request.uuid, success=False, reason=f'{request.attr} is not a mutable attribute')
    if (len(request.value) == 0):
        try:
            del self._requested_data[request.attr]
            LOGGER.info(f'{request.attr} override has been removed by request')
            self.update_status()
        except KeyError:
            pass
    else:
        if (request.attr in self._requested_data):
            old_value = self._requested_data[request.attr]
        else:
            old_value = None
        try:
            self._requested_data[request.attr] = request.value
            self.update_status()
            LOGGER.info(f'{request.attr} has been overridden to {request.value} by request')
        except ValidationError as e:
            if (old_value is not None):
                self._requested_data[request.attr] = old_value
            LOGGER.warning(f'Unable to set {request.attr} to {request.value}.')
            LOGGER.warning(str(e))
            return RequestResponse(uuid=request.uuid, success=False, reason=f'{request.value} is not a valid value for {request.attr}')
    return RequestResponse(uuid=request.uuid, success=True)