public void checkSignatures() {
    if (!taskDefinition.getExecutorData().getS3ArtifactSignatures().isPresent()
        || taskDefinition.getExecutorData().getS3ArtifactSignatures().get().isEmpty()) {
      log.info("No s3 artifact signatures, skipping verification.");
      return;
    }

    for (S3ArtifactSignature s3ArtifactSignature :
        taskDefinition.getExecutorData().getS3ArtifactSignatures().get()) {
      checkArtifactSignature(s3ArtifactSignature);
    }
  }
  private String getS3KeyPattern() {
    String s3KeyPattern = configuration.getS3KeyPattern();

    final SingularityTaskId singularityTaskId = getSingularityTaskId();

    return SingularityS3FormatHelper.getS3KeyFormat(
        s3KeyPattern, singularityTaskId, taskDefinition.getExecutorData().getLoggingTag());
  }
  private boolean writeTailMetadata(boolean finished) {
    if (!taskDefinition.getExecutorData().getLoggingTag().isPresent()) {
      if (!finished) {
        log.warn("Not writing logging metadata because logging tag is absent");
      }
      return true;
    }

    final TailMetadata tailMetadata =
        new TailMetadata(
            taskDefinition.getServiceLogOut(),
            taskDefinition.getExecutorData().getLoggingTag().get(),
            taskDefinition.getExecutorData().getLoggingExtraFields(),
            finished);
    final Path path =
        TailMetadata.getTailMetadataPath(
            configuration.getLogMetadataDirectory(),
            configuration.getLogMetadataSuffix(),
            tailMetadata);

    return jsonObjectFileHelper.writeObject(tailMetadata, path, log);
  }