From 279a79ac651dc6a84440984b66866b0323512083 Mon Sep 17 00:00:00 2001 From: Morten Tokle Date: Thu, 23 Sep 2021 10:27:28 +0200 Subject: Set -> List --- .../main/java/com/yahoo/vespa/hosted/provision/Node.java | 15 ++++++++------- .../hosted/provision/persistence/NodeSerializer.java | 6 +++--- .../yahoo/vespa/hosted/provision/restapi/NodePatcher.java | 4 ++-- .../vespa/hosted/provision/restapi/NodesResponse.java | 2 +- .../hosted/provision/persistence/NodeSerializerTest.java | 4 ++-- 5 files changed, 16 insertions(+), 15 deletions(-) (limited to 'node-repository/src') diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java index 22ff50df181..0f11361827d 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java @@ -23,6 +23,7 @@ import com.yahoo.vespa.hosted.provision.node.TrustStoreItem; import java.time.Instant; import java.util.Arrays; import java.util.EnumSet; +import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.Set; @@ -51,7 +52,7 @@ public final class Node implements Nodelike { private final Optional exclusiveToApplicationId; private final Optional exclusiveToClusterType; private final Optional switchHostname; - private final Set trustStoreItems; + private final List trustStoreItems; /** Record of the last event of each type happening to this node */ private final History history; @@ -81,7 +82,7 @@ public final class Node implements Nodelike { Flavor flavor, Status status, State state, Optional allocation, History history, NodeType type, Reports reports, Optional modelName, Optional reservedTo, Optional exclusiveToApplicationId, Optional exclusiveToClusterType, - Optional switchHostname, Set trustStoreItems) { + Optional switchHostname, List trustStoreItems) { this.id = Objects.requireNonNull(id, "A node must have an ID"); this.hostname = requireNonEmptyString(hostname, "A node must have a hostname"); this.ipConfig = Objects.requireNonNull(ipConfig, "A node must a have an IP config"); @@ -211,7 +212,7 @@ public final class Node implements Nodelike { } /** Returns the trusted Certificates for this host if any. */ - public Set trustedCertificates() { + public List trustedCertificates() { return trustStoreItems; } @@ -466,7 +467,7 @@ public final class Node implements Nodelike { allocation, history, type, reports, modelName, reservedTo, exclusiveToApplicationId, exclusiveToClusterType, switchHostname, trustStoreItems); } - public Node with(Set trustStoreItems) { + public Node with(List trustStoreItems) { return new Node(id, ipConfig, hostname, parentHostname, flavor, status, state, allocation, history, type, reports, modelName, reservedTo, exclusiveToApplicationId, exclusiveToClusterType, switchHostname, trustStoreItems); @@ -608,7 +609,7 @@ public final class Node implements Nodelike { private Status status; private Reports reports; private History history; - private Set trustStoreItems; + private List trustStoreItems; private Builder(String id, String hostname, Flavor flavor, State state, NodeType type) { this.id = id; @@ -678,7 +679,7 @@ public final class Node implements Nodelike { return this; } - public Builder trustedCertificates(Set trustStoreItems) { + public Builder trustedCertificates(List trustStoreItems) { this.trustStoreItems = trustStoreItems; return this; } @@ -689,7 +690,7 @@ public final class Node implements Nodelike { Optional.ofNullable(history).orElseGet(History::empty), type, Optional.ofNullable(reports).orElseGet(Reports::new), Optional.ofNullable(modelName), Optional.ofNullable(reservedTo), Optional.ofNullable(exclusiveToApplicationId), Optional.ofNullable(exclusiveToClusterType), Optional.ofNullable(switchHostname), - Optional.ofNullable(trustStoreItems).orElseGet(Set::of)); + Optional.ofNullable(trustStoreItems).orElseGet(List::of)); } } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java index e0496c073e9..868837daeeb 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java @@ -243,7 +243,7 @@ public class NodeSerializer { }); } - private void trustedCertificatesToSlime(Set trustStoreItems, Cursor array) { + private void trustedCertificatesToSlime(List trustStoreItems, Cursor array) { trustStoreItems.forEach(cert -> { Cursor object = array.addObject(); object.setString(fingerprintKey, cert.fingerprint()); @@ -435,11 +435,11 @@ public class NodeSerializer { return Optional.of(ClusterSpec.Type.from(object.asString())); } - private Set trustedCertificatesFromSlime(Inspector object) { + private List trustedCertificatesFromSlime(Inspector object) { return SlimeUtils.entriesStream(object.field(trustedCertificatesKey)) .map(elem -> new TrustStoreItem(elem.field(fingerprintKey).asString(), Instant.ofEpochMilli(elem.field(expiresKey).asLong()))) - .collect(Collectors.toSet()); + .collect(Collectors.toList()); } // ----------------- Enum <-> string mappings ---------------------------------------- diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodePatcher.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodePatcher.java index a846d1de2f2..5dfacc2c3d2 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodePatcher.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodePatcher.java @@ -234,10 +234,10 @@ public class NodePatcher implements AutoCloseable { } private Node nodeWithTrustStore(Node node, Inspector inspector) { - Set trustStoreItems = + List trustStoreItems = SlimeUtils.entriesStream(inspector) .map(TrustStoreItem::fromSlime) - .collect(Collectors.toSet()); + .collect(Collectors.toList()); return node.with(trustStoreItems); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java index a0c2c57a710..80100128379 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java @@ -230,7 +230,7 @@ class NodesResponse extends SlimeJsonResponse { addresses.forEach(address -> addressesArray.addString(address.hostname())); } - private void trustedCertsToSlime(Set trustStoreItems, Cursor object) { + private void trustedCertsToSlime(List trustStoreItems, Cursor object) { if (trustStoreItems.isEmpty()) return; Cursor array = object.setArray("trustStore"); trustStoreItems.forEach(cert -> cert.toSlime(array)); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java index 8312cc22e05..921b78252d3 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java @@ -466,8 +466,8 @@ public class NodeSerializerTest { @Test public void truststore_serialization() { Node node = nodeSerializer.fromJson(State.active, nodeSerializer.toJson(createNode())); - assertEquals(Set.of(), node.trustedCertificates()); - Set trustStoreItems = Set.of(new TrustStoreItem("foo", Instant.parse("2023-09-01T23:59:59Z")), new TrustStoreItem("bar", Instant.parse("2025-05-20T23:59:59Z"))); + assertEquals(List.of(), node.trustedCertificates()); + List trustStoreItems = List.of(new TrustStoreItem("foo", Instant.parse("2023-09-01T23:59:59Z")), new TrustStoreItem("bar", Instant.parse("2025-05-20T23:59:59Z"))); node = node.with(trustStoreItems); node = nodeSerializer.fromJson(State.active, nodeSerializer.toJson(node)); assertEquals(trustStoreItems, node.trustedCertificates()); -- cgit v1.2.3