diff options
author | Håkon Hallingstad <hakon@oath.com> | 2019-01-15 17:21:54 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@oath.com> | 2019-01-15 17:21:54 +0100 |
commit | 24ff6d7f160b92d9c4cfd426c00233858655d466 (patch) | |
tree | b4df79cfb8fbc54b26bbe3d675080c890c9fa4a4 /flags/src | |
parent | 7b210b2bda57003de6fff1dbe28348fe6685fa0c (diff) |
Add node type dimension
Diffstat (limited to 'flags/src')
4 files changed, 16 insertions, 5 deletions
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/FetchVector.java b/flags/src/main/java/com/yahoo/vespa/flags/FetchVector.java index 7d84efa52b2..6a6dfac14cf 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/FetchVector.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/FetchVector.java @@ -1,6 +1,8 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.flags; +import com.yahoo.vespa.flags.json.DimensionHelper; + import javax.annotation.concurrent.Immutable; import java.util.Collections; import java.util.EnumMap; @@ -18,13 +20,18 @@ import java.util.function.Consumer; */ @Immutable public class FetchVector { + /** + * Note: If this enum is changed, you must also change {@link DimensionHelper}. + */ public enum Dimension { - /** Value from ZoneId::value */ + /** Value from ZoneId::value of the form environment.region. */ ZONE_ID, - /** Value from ApplicationId::serializedForm */ + /** Value from ApplicationId::serializedForm of the form tenant:applicationName:instance. */ APPLICATION_ID, /** Fully qualified hostname */ - HOSTNAME + HOSTNAME, + /** Node type from com.yahoo.config.provision.NodeType::name, e.g. tenant, host, confighost, controller, etc. */ + NODE_TYPE } private final Map<Dimension, String> map; diff --git a/flags/src/main/java/com/yahoo/vespa/flags/json/DimensionHelper.java b/flags/src/main/java/com/yahoo/vespa/flags/json/DimensionHelper.java index b5afc3f1b7d..5f2acecaad7 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/json/DimensionHelper.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/json/DimensionHelper.java @@ -16,6 +16,7 @@ public class DimensionHelper { serializedDimensions.put(FetchVector.Dimension.ZONE_ID, "zone"); serializedDimensions.put(FetchVector.Dimension.HOSTNAME, "hostname"); serializedDimensions.put(FetchVector.Dimension.APPLICATION_ID, "application"); + serializedDimensions.put(FetchVector.Dimension.NODE_TYPE, "node-type"); if (serializedDimensions.size() != FetchVector.Dimension.values().length) { throw new IllegalStateException(FetchVectorHelper.class.getName() + " is not in sync with " + diff --git a/flags/src/test/java/com/yahoo/vespa/flags/FlagsTest.java b/flags/src/test/java/com/yahoo/vespa/flags/FlagsTest.java index 1aa1581f105..570058ae1d2 100644 --- a/flags/src/test/java/com/yahoo/vespa/flags/FlagsTest.java +++ b/flags/src/test/java/com/yahoo/vespa/flags/FlagsTest.java @@ -48,8 +48,9 @@ public class FlagsTest { assertThat(vector.getValue().getValue(FetchVector.Dimension.HOSTNAME).get(), is(not(emptyOrNullString()))); // zone is set because it was set on the unbound flag above assertThat(vector.getValue().getValue(FetchVector.Dimension.ZONE_ID), is(Optional.of("a-zone"))); - // application is not set + // application and node type are not set assertThat(vector.getValue().getValue(FetchVector.Dimension.APPLICATION_ID), is(Optional.empty())); + assertThat(vector.getValue().getValue(FetchVector.Dimension.NODE_TYPE), is(Optional.empty())); RawFlag rawFlag = mock(RawFlag.class); when(source.fetch(eq(new FlagId("id")), any())).thenReturn(Optional.of(rawFlag)); diff --git a/flags/src/test/java/com/yahoo/vespa/flags/json/SerializationTest.java b/flags/src/test/java/com/yahoo/vespa/flags/json/SerializationTest.java index 7836eb702b1..b3ff2a92b07 100644 --- a/flags/src/test/java/com/yahoo/vespa/flags/json/SerializationTest.java +++ b/flags/src/test/java/com/yahoo/vespa/flags/json/SerializationTest.java @@ -57,7 +57,8 @@ public class SerializationTest { " \"attributes\": {\n" + " \"zone\": \"z1\",\n" + " \"application\": \"a1\",\n" + - " \"hostname\": \"h1\"\n" + + " \"hostname\": \"h1\",\n" + + " \"node-type\": \"nt1\"\n" + " }\n" + "}"; @@ -85,6 +86,7 @@ public class SerializationTest { assertThat(wireData.defaultFetchVector.get("zone"), equalTo("z1")); assertThat(wireData.defaultFetchVector.get("application"), equalTo("a1")); assertThat(wireData.defaultFetchVector.get("hostname"), equalTo("h1")); + assertThat(wireData.defaultFetchVector.get("node-type"), equalTo("nt1")); // Verify serialization of RawFlag == serialization by ObjectMapper ObjectMapper mapper = new ObjectMapper(); |