From 84601864762126a9db37b192ad97146192fe812b Mon Sep 17 00:00:00 2001 From: HÃ¥kon Hallingstad Date: Wed, 29 May 2019 13:51:03 +0200 Subject: Define SystemName --- .../com/yahoo/config/provision/SystemName.java | 38 ++++++++++++---------- .../com/yahoo/config/provision/SystemType.java | 13 ++++++++ .../com/yahoo/config/provision/SystemNameTest.java | 18 ++++++++++ 3 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 config-provisioning/src/main/java/com/yahoo/config/provision/SystemType.java create mode 100644 config-provisioning/src/test/java/com/yahoo/config/provision/SystemNameTest.java (limited to 'config-provisioning/src') diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/SystemName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/SystemName.java index 0206e6f6734..32945c094be 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/SystemName.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/SystemName.java @@ -2,7 +2,6 @@ package com.yahoo.config.provision; import java.util.EnumSet; -import java.util.List; import java.util.Set; /** @@ -12,23 +11,31 @@ import java.util.Set; */ public enum SystemName { - /** Local development system */ - dev, - /** Continuous deployment system */ - cd, + cd(SystemType.MAIN, true), /** Production system */ - main, + main(SystemType.MAIN, false), - /** System accessible for the public */ - Public, + /** System accessible to the public */ + Public(SystemType.PUBLIC, false), /** Continuous deployment system for testing the Public system */ - PublicCd, + PublicCd(SystemType.PUBLIC, true), + + /** Local development system */ + dev(SystemType.MAIN, false), /** VaaS */ - vaas; // TODO: Remove this and use public everywhere + vaas(SystemType.PUBLIC, true); // TODO: Remove this and use public everywhere + + private final SystemType type; + private final boolean isCd; + + SystemName(SystemType type, boolean isCd) { + this.type = type; + this.isCd = isCd; + } public static SystemName defaultSystem() { return main; @@ -58,12 +65,7 @@ public enum SystemName { } } - public boolean isCd() { - return List.of(cd, PublicCd).contains(this); - } - - public static Set all() { - return EnumSet.allOf(SystemName.class); - } - + public SystemType getType() { return type; } + public boolean isCd() { return isCd; } + public static Set all() { return EnumSet.allOf(SystemName.class); } } diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/SystemType.java b/config-provisioning/src/main/java/com/yahoo/config/provision/SystemType.java new file mode 100644 index 00000000000..0bdbf28281f --- /dev/null +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/SystemType.java @@ -0,0 +1,13 @@ +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.config.provision; + +/** + * @author hakonhall + */ +public enum SystemType { + /** Denotes a system similar to SystemName.main, such as cd. */ + MAIN, + + /** Denotes a system similar to SystemName.Public, such as PublicCd. */ + PUBLIC; +} diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/SystemNameTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/SystemNameTest.java new file mode 100644 index 00000000000..6ffca4918a8 --- /dev/null +++ b/config-provisioning/src/test/java/com/yahoo/config/provision/SystemNameTest.java @@ -0,0 +1,18 @@ +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.config.provision; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +/** + * @author hakonhall + */ +public class SystemNameTest { + @Test + public void test() { + for (SystemName name : SystemName.values()) { + assertEquals(name, SystemName.from(name.value())); + } + } +} \ No newline at end of file -- cgit v1.2.3