public void prepareBuildsData()

in s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/cleanup/S3CleanupExtension.java [93:126]


  public void prepareBuildsData(@NotNull BuildCleanupContext cleanupContext) {
    Map<Long, BuildStorageInfo> buildStorageInfos = new ConcurrentHashMap<>();
    for (SFinishedBuild build : cleanupContext.getBuilds()) {
      try {
        ArtifactListData artifactsInfo = myHelper.getArtifactList(build);
        if (artifactsInfo == null) {
          continue;
        }
        String pathPrefix = S3Util.getPathPrefix(artifactsInfo);
        if (pathPrefix == null) {
          continue;
        }
        List<String> pathsToDelete = ArtifactPathsEvaluator.getPathsToDelete((BuildCleanupContextEx)cleanupContext, build, artifactsInfo);
        if (pathsToDelete.isEmpty()) {
          continue;
        }
        Map<String, String> storageSettings = mySettingsProvider.getStorageSettings(build);
        Map<String, String> invalids = S3Util.validateParameters(storageSettings, false);
        if (!invalids.isEmpty()) {
          CLEANUP.warn("Failed to remove S3 artifacts in build " + LogUtil.describe(build) + ":\n" + StringUtil.join("\n", invalids.values()));
          cleanupContext.onBuildCleanupError(this, build, "Failed to remove S3 artifacts due to incorrect storage settings configuration.");
          continue;
        }
        buildStorageInfos.put(build.getBuildId(), new BuildStorageInfo(build, pathPrefix, pathsToDelete, storageSettings));
      } catch (IOException e) {
        CLEANUP.warn("Failed to get S3 artifacts list in build " + LogUtil.describe(build) + ": " + e.getMessage());
        cleanupContext.onBuildCleanupError(this, build, "Failed to get S3 artifacts list due to IO error.");
      } catch (RuntimeException e) {
        CLEANUP.warn("Failed to remove S3 artifacts " + LogUtil.describe(build) + ": " + e.getMessage());
        cleanupContext.onBuildCleanupError(this, build, "Failed to remove S3 artifacts due to unexpected error.");
      }
    }
    cleanupContext.setExtensionData(BUILD_STORAGE_INFOS_KEY, buildStorageInfos);
  }