private void ensureServiceOutExists() {
   try {
     if (!Files.exists(taskDefinition.getServiceLogOutPath())) {
       Files.createFile(taskDefinition.getServiceLogOutPath());
     }
   } catch (FileAlreadyExistsException faee) {
     log.debug("Executor out {} already existed", taskDefinition.getServiceLogOut());
   } catch (Throwable t) {
     log.error("Failed creating executor out {}", taskDefinition.getServiceLogOut(), t);
   }
 }
  private boolean writeS3MetadataFile(boolean finished) {
    Path logrotateDirectory =
        taskDefinition
            .getServiceLogOutPath()
            .getParent()
            .resolve(configuration.getLogrotateToDirectory());

    S3UploadMetadata s3UploadMetadata =
        new S3UploadMetadata(
            logrotateDirectory.toString(),
            getS3Glob(),
            configuration.getS3Bucket(),
            getS3KeyPattern(),
            finished);

    String s3UploadMetadatafilename =
        String.format("%s%s", taskDefinition.getTaskId(), configuration.getS3MetadataSuffix());

    Path s3UploadMetadataPath =
        configuration.getS3MetadataDirectory().resolve(s3UploadMetadatafilename);

    return jsonObjectFileHelper.writeObject(s3UploadMetadata, s3UploadMetadataPath, log);
  }
 private String getS3Glob() {
   return String.format("%s*.gz*", taskDefinition.getServiceLogOutPath().getFileName());
 }