public static ContentNodes assemble()

in src/main/java/com/vispana/vespa/state/assemblers/ContentAssembler.java [40:79]


  public static ContentNodes assemble(
      String configHost,
      VespaVersion vespaVersion,
      Map<String, MetricsNode> vespaMetrics,
      String appUrl,
      ApplicationPackage appPackage,
      String configHostName) {
    var contentDistributionUrl = configHost + "/config/v1/vespa.config.content.distribution/";

    var contentClusters =
        requestGet(contentDistributionUrl, ContentDistributionSchema.class).getConfigs().stream()
            .map(NameExtractorFromUrl::nameFromUrl)
            .map(
                clusterName -> {
                  var dispatcher =
                      fetchDispatcherData(
                          configHost, clusterName, vespaVersion, appPackage, configHostName);
                  var schemas = fetchSchemas(configHost, clusterName);
                  var contentDistribution = fetchContentDistributionData(configHost, clusterName);
                  var distribution =
                      contentDistribution.getCluster().getAdditionalProperties().get(clusterName);

                  var redundancy = distribution.getRedundancy().intValue();
                  var copies = distribution.getReadyCopies().intValue();
                  var hostsPerGroup = hostsPerGroup(distribution);
                  var hostsCount = hostsPerGroup.size();
                  var contentOverview =
                      new ContentOverview(hostsCount, copies, redundancy, hostsPerGroup);

                  var contentNodes = contentNodes(vespaMetrics, clusterName, dispatcher);

                  var contentData = fetchSchemaContent(appUrl, schemas, contentNodes);

                  return new ContentCluster(
                      clusterName, contentOverview, contentData, contentNodes);
                })
            .toList();

    return new ContentNodes(contentClusters);
  }