/** Returns the major version this application is valid for, or empty if it is valid for all versions */ default Optional<Integer> getMajorVersion() { if ( ! getDeployment().isPresent()) return Optional.empty(); Element deployElement = XML.getDocument(getDeployment().get()).getDocumentElement(); if (deployElement == null) return Optional.empty(); String majorVersionString = deployElement.getAttribute("major-version"); if (majorVersionString == null || majorVersionString.isEmpty()) return Optional.empty(); try { return Optional.of(Integer.parseInt(majorVersionString)); } catch (NumberFormatException e) { throw new IllegalArgumentException("major-version must be an integer number, not '" + majorVersionString + "'"); } }
@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 addAthensCopperArgos(ContainerCluster cluster, ConfigModelContext context) { app.getDeployment().map(DeploymentSpec::fromXml) .ifPresent(deploymentSpec -> { addIdentityProvider(cluster, context.getDeployState().getProperties().configServerSpecs(), context.getDeployState().getProperties().loadBalancerName(), context.getDeployState().getProperties().ztsUrl(), context.getDeployState().getProperties().athenzDnsSuffix(), context.getDeployState().zone(), deploymentSpec); addRotationProperties(cluster, context.getDeployState().zone(), context.getDeployState().getRotations(), deploymentSpec); }); }