/** * Get a list of all config models of a particular type. * * @param clazz The class of the models to find. * @return A list of models of given type. */ public <MODEL extends ConfigModel> List<MODEL> getConfigModels(Class<MODEL> clazz) { return model.configModelRepo().getModels(clazz); }
public static Collection<ContainerCluster> containerClusters(ConfigModelRepo models) { List<ContainerCluster> containerClusters = new ArrayList<>(); for (ContainerModel model: models.getModels(ContainerModel.class)) containerClusters.add(model.getCluster()); return containerClusters; }
/** Returns a map of content clusters by ID */ public Map<String, ContentCluster> getContentClusters() { Map<String, ContentCluster> clusters = new LinkedHashMap<>(); for (Content model : configModelRepo.getModels(Content.class)) { clusters.put(model.getId(), model.getCluster()); } return Collections.unmodifiableMap(clusters); }
/** Returns a map of container clusters by ID */ public Map<String, ContainerCluster> getContainerClusters() { Map<String, ContainerCluster> clusters = new LinkedHashMap<>(); for (ContainerModel model : configModelRepo.getModels(ContainerModel.class)) { clusters.put(model.getId(), model.getCluster()); } return Collections.unmodifiableMap(clusters); }
@Override public void validate(VespaModel model, DeployState deployState) { Optional<Reader> deployment = deployState.getApplicationPackage().getDeployment(); if (deployment.isPresent()) { Reader deploymentReader = deployment.get(); DeploymentSpec deploymentSpec = DeploymentSpec.fromXml(deploymentReader); final Optional<String> globalServiceId = deploymentSpec.globalServiceId(); if (globalServiceId.isPresent()) { Set<ContainerCluster> containerClusters = model.getRoot().configModelRepo().getModels(ContainerModel.class).stream(). map(ContainerModel::getCluster).filter(cc -> cc.getName().equals(globalServiceId.get())).collect(Collectors.toSet()); if (containerClusters.size() != 1) { throw new IllegalArgumentException("global-service-id '" + globalServiceId.get() + "' specified in deployment.xml does not match any container cluster id"); } } } } }