aboutsummaryrefslogtreecommitdiffstats
path: root/configserver/src/test/java/com/yahoo
diff options
context:
space:
mode:
authorMorten Tokle <mortent@yahooinc.com>2023-06-09 08:34:31 +0200
committerMorten Tokle <mortent@yahooinc.com>2023-06-12 22:53:33 +0200
commite4a5a20eb19ff2e2d5759f6fef83da5611d1a94e (patch)
tree1cef0d16766e852e36d9f44b7b2e788b17d9d8b2 /configserver/src/test/java/com/yahoo
parent5f25e0ba346c04ccc27c60cc410c0ed2fdb6b06b (diff)
Persist tokens on deploy
Diffstat (limited to 'configserver/src/test/java/com/yahoo')
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java20
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/tenant/DataplaneTokenSerializerTest.java29
3 files changed, 51 insertions, 1 deletions
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java
index 2ef9a41a967..f5cd56707b3 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java
@@ -75,7 +75,8 @@ public class ModelContextImplTest {
List.of(),
new SecretStoreProvider().get(),
List.of(),
- Optional.empty()),
+ Optional.empty(),
+ List.of()),
Optional.empty(),
Optional.empty(),
new Version(7),
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java
index 4af0881e200..19f24f8e817 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java
@@ -16,6 +16,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.CertificateNotReadyException;
import com.yahoo.config.provision.CloudAccount;
+import com.yahoo.config.provision.DataplaneToken;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.Zone;
@@ -360,6 +361,25 @@ public class SessionPreparerTest {
assertEquals(Optional.of(expected), accountFromModel);
}
+ @Test
+ public void require_that_dataplane_tokens_are_written() throws Exception {
+ TestModelFactory modelFactory = new TestModelFactory(version123);
+ preparer = createPreparer(new ModelFactoryRegistry(List.of(modelFactory)), HostProvisionerProvider.empty());
+ ApplicationId applicationId = applicationId("test");
+ List<DataplaneToken> expected = List.of(new DataplaneToken("id", List.of(new DataplaneToken.TokenValue("f1", "ch1"))));
+ PrepareParams params = new PrepareParams.Builder().applicationId(applicationId)
+ .dataplaneTokens(expected)
+ .build();
+ prepare(new File("src/test/resources/deploy/hosted-app"), params);
+
+ SessionZooKeeperClient zkClient = createSessionZooKeeperClient();
+ assertEquals(expected, zkClient.readDataplaneTokens());
+
+ ModelContext modelContext = modelFactory.getModelContext();
+ List<DataplaneToken> tokensFromModel = modelContext.properties().dataplaneTokens();
+ assertEquals(expected, tokensFromModel);
+ }
+
private List<ContainerEndpoint> readContainerEndpoints(ApplicationId applicationId) {
Path tenantPath = TenantRepository.getTenantPath(applicationId.tenant());
return new ContainerEndpointsCache(tenantPath, curator).read(applicationId);
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/DataplaneTokenSerializerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/DataplaneTokenSerializerTest.java
new file mode 100644
index 00000000000..cb9e29e6517
--- /dev/null
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/DataplaneTokenSerializerTest.java
@@ -0,0 +1,29 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.config.server.tenant;
+
+import com.yahoo.config.provision.DataplaneToken;
+import com.yahoo.slime.Slime;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author mortent
+ */
+public class DataplaneTokenSerializerTest {
+
+ @Test
+ public void testSerialization() {
+ List<DataplaneToken> tokens = List.of(
+ new DataplaneToken("id1",
+ List.of(new DataplaneToken.TokenValue("id1_fingerPrint1", "id1_checkaccesshash1"))),
+ new DataplaneToken("id2",
+ List.of(new DataplaneToken.TokenValue("id2_fingerPrint1", "id2_checkaccesshash1"),
+ new DataplaneToken.TokenValue("id3_fingerPrint1", "id3_checkaccesshash1"))));
+ Slime slime = DataplaneTokenSerializer.toSlime(tokens);
+ List<DataplaneToken> deserialized = DataplaneTokenSerializer.fromSlime(slime.get());
+ assertEquals(tokens, deserialized);
+ }
+}