From 2166c28d6dd78dba9fe2ba9428e2c06bfdb313e6 Mon Sep 17 00:00:00 2001 From: sarahcaseybot Date: Wed, 24 Jan 2024 17:12:46 -0500 Subject: [PATCH] Update to only include changes to check for production required tags (#2273) --- .../registry/tools/ConfigureTldCommand.java | 6 +++ .../tools/ConfigureTldCommandTest.java | 42 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/core/src/main/java/google/registry/tools/ConfigureTldCommand.java b/core/src/main/java/google/registry/tools/ConfigureTldCommand.java index 6c9e612a5..db5c9310a 100644 --- a/core/src/main/java/google/registry/tools/ConfigureTldCommand.java +++ b/core/src/main/java/google/registry/tools/ConfigureTldCommand.java @@ -105,6 +105,12 @@ public class ConfigureTldCommand extends MutatingCommand { @Override protected void init() throws Exception { + if (RegistryToolEnvironment.get().equals(RegistryToolEnvironment.PRODUCTION)) { + checkArgument( + buildEnv || breakGlass != null, + "Either the --break_glass or --build_environment flag must be used when" + + " running the configure_tld command on Production"); + } String name = convertFilePathToName(inputFile); Map tldData = new Yaml().load(Files.newBufferedReader(inputFile)); checkName(name, tldData); diff --git a/core/src/test/java/google/registry/tools/ConfigureTldCommandTest.java b/core/src/test/java/google/registry/tools/ConfigureTldCommandTest.java index a843856ea..3e3fafdc9 100644 --- a/core/src/test/java/google/registry/tools/ConfigureTldCommandTest.java +++ b/core/src/test/java/google/registry/tools/ConfigureTldCommandTest.java @@ -671,4 +671,46 @@ public class ConfigureTldCommandTest extends CommandTestCase + runCommandInEnvironment(RegistryToolEnvironment.PRODUCTION, "--input=" + tldFile)); + assertThat(thrown.getMessage()) + .isEqualTo( + "Either the --break_glass or --build_environment flag must be used when running the" + + " configure_tld command on Production"); + } + + @Test + void testSuccess_runCommandOnProduction_breakGlassFlag() throws Exception { + createTld("tld"); + File tldFile = tmpDir.resolve("tld.yaml").toFile(); + Files.asCharSink(tldFile, UTF_8).write(loadFile(getClass(), "tld.yaml")); + runCommandInEnvironment( + RegistryToolEnvironment.PRODUCTION, "--input=" + tldFile, "--break_glass=true", "-f"); + Tld updatedTld = Tld.get("tld"); + assertThat(updatedTld.getCreateBillingCost()).isEqualTo(Money.of(USD, 25)); + testTldConfiguredSuccessfully(updatedTld, "tld.yaml"); + assertThat(updatedTld.getBreakglassMode()).isTrue(); + } + + @Test + void testSuccess_runCommandOnProduction_buildEnvFlag() throws Exception { + createTld("tld"); + File tldFile = tmpDir.resolve("tld.yaml").toFile(); + Files.asCharSink(tldFile, UTF_8).write(loadFile(getClass(), "tld.yaml")); + runCommandInEnvironment( + RegistryToolEnvironment.PRODUCTION, "--input=" + tldFile, "--build_environment", "-f"); + Tld updatedTld = Tld.get("tld"); + assertThat(updatedTld.getCreateBillingCost()).isEqualTo(Money.of(USD, 25)); + testTldConfiguredSuccessfully(updatedTld, "tld.yaml"); + assertThat(updatedTld.getBreakglassMode()).isFalse(); + } }