private Callback<Void> routerCallback() {
      return buildCallback(metrics.deleteBlobRouterMetrics, result -> {
        if (RestUtils.isDatasetVersionQueryEnabled(restRequest.getArgs())) {
          try {
            metrics.deleteDatasetVersionRate.mark();
            deleteDatasetVersion(restRequest);
          } catch (RestServiceException e) {
            metrics.deleteDatasetVersionError.inc();
            throw e;
          }
        }
        LOGGER.debug("Deleted {}", getRequestPath(restRequest).getOperationOrBlobId(false));
        //if delete dataset request call this handler to delete all dataset versions under the dataset, we
        //don't need to set the header and call securityService.processResponse. We should let DeleteDatasetHandler
        //take care of this.
        if (!(RequestPath.matchesOperation(restRequest.getUri(), ACCOUNTS_CONTAINERS_DATASETS)
            && restRequest.getRestMethod() == RestMethod.DELETE)) {
          restResponseChannel.setStatus(ResponseStatus.Accepted);
          restResponseChannel.setHeader(RestUtils.Headers.DATE, new GregorianCalendar().getTime());
          restResponseChannel.setHeader(RestUtils.Headers.CONTENT_LENGTH, 0);
        }
        LOGGER.trace(
            "Process response for request " + restRequest.getUri() + " restMethod " + restRequest.getRestMethod());
        securityService.processResponse(restRequest, restResponseChannel, null, securityProcessResponseCallback());
      }, restRequest.getUri(), LOGGER, (r, e) -> {
        // Even we failed in router operations, we already used some of the resources in router,
        // so let's record the charges for this request.
        securityService.processRequestCharges(restRequest, restResponseChannel, null);
        if (finalCallback != null) {
          finalCallback.onCompletion(null, e);
        }
      });
    }
After {@link Router#deleteBlob} finishes, call {@link SecurityService#processResponse}.
@return a {@link Callback} to be used with {@link Router#deleteBlob}.
ambry-frontend/src/main/java/com/github/ambry/frontend/DeleteBlobHandler.java