diff options
author | Morten Tokle <mortent@vespa.ai> | 2024-04-17 22:53:16 +0200 |
---|---|---|
committer | Morten Tokle <mortent@vespa.ai> | 2024-04-17 22:54:57 +0200 |
commit | 2b264b1ac241ab7b27a0c3c37749daaad16c0c8e (patch) | |
tree | 0d4231cee30987fd0b17cf0e02ad482473394bf5 /config-model/src/main/java | |
parent | 83b0e810215725e86b0066c1bead886c5bc5ac9d (diff) |
Check for duplicate clients
Diffstat (limited to 'config-model/src/main/java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java index 360a02256a9..c6fca8d32c6 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java @@ -506,6 +506,13 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { boolean atLeastOneClientWithCertificate = clients.stream().anyMatch(client -> !client.certificates().isEmpty()); if (!atLeastOneClientWithCertificate) throw new IllegalArgumentException("At least one client must require a certificate"); + + List<String> duplicates = clients.stream().collect(Collectors.groupingBy(Client::id)) + .entrySet().stream().filter(entry -> entry.getValue().size() > 1) + .map(Map.Entry::getKey).sorted().toList(); + if (! duplicates.isEmpty()) { + throw new IllegalArgumentException("Duplicate client ids: " + duplicates); + } } List<X509Certificate> operatorAndTesterCertificates = deployState.getProperties().operatorCertificates(); |