@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"); } } } } }
private void addRotationProperties(ContainerCluster cluster, Zone zone, Set<Rotation> rotations, DeploymentSpec spec) { cluster.getContainers().forEach(container -> { setRotations(container, rotations, spec.globalServiceId(), cluster.getName()); container.setProp("activeRotation", Boolean.toString(zoneHasActiveRotation(zone, spec))); }); }