From 8b61dcc6d0d564c4d243ba5c718db6165da27bf7 Mon Sep 17 00:00:00 2001 From: mcilwain Date: Fri, 13 Jan 2017 14:15:10 -0800 Subject: [PATCH] Remove RoidSuffixes entirely We no longer care about ROID suffix uniqueness in a post-Registry-2.0-migration world, and the Registry cache is sufficient for efficiently grabbing the ROID suffix for TLDs. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=144483726 --- .../registry/model/EppResourceUtils.java | 4 +- java/google/registry/model/RoidSuffixes.java | 62 ------------------- .../tools/CreateOrUpdateTldCommand.java | 8 --- .../registry/model/RoidSuffixesTest.java | 50 --------------- .../registry/tools/CreateTldCommandTest.java | 7 --- .../registry/tools/UpdateTldCommandTest.java | 8 --- 6 files changed, 2 insertions(+), 137 deletions(-) delete mode 100644 java/google/registry/model/RoidSuffixes.java delete mode 100644 javatests/google/registry/model/RoidSuffixesTest.java diff --git a/java/google/registry/model/EppResourceUtils.java b/java/google/registry/model/EppResourceUtils.java index 2dcae0035..022c50f6a 100644 --- a/java/google/registry/model/EppResourceUtils.java +++ b/java/google/registry/model/EppResourceUtils.java @@ -16,7 +16,6 @@ package google.registry.model; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.Iterables.transform; -import static google.registry.model.RoidSuffixes.getRoidSuffixForTld; import static google.registry.model.index.ForeignKeyIndex.loadAndGetKey; import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.util.DateTimeUtils.isAtOrAfter; @@ -39,6 +38,7 @@ import google.registry.model.host.HostResource; import google.registry.model.index.ForeignKeyIndex; import google.registry.model.ofy.CommitLogManifest; import google.registry.model.ofy.CommitLogMutation; +import google.registry.model.registry.Registry; import google.registry.model.transfer.TransferData; import google.registry.model.transfer.TransferStatus; import google.registry.util.FormattingLogger; @@ -56,7 +56,7 @@ public final class EppResourceUtils { /** Returns the full domain repoId in the format HEX-TLD for the specified long id and tld. */ public static String createDomainRepoId(long repoId, String tld) { - return createRepoId(repoId, getRoidSuffixForTld(tld)); + return createRepoId(repoId, Registry.get(tld).getRoidSuffix()); } /** Returns the full repoId in the format HEX-TLD for the specified long id and ROID suffix. */ diff --git a/java/google/registry/model/RoidSuffixes.java b/java/google/registry/model/RoidSuffixes.java deleted file mode 100644 index 9e432c1f0..000000000 --- a/java/google/registry/model/RoidSuffixes.java +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2016 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model; - -import static com.google.common.base.Preconditions.checkState; -import static google.registry.model.CacheUtils.memoizeWithShortExpiration; -import static google.registry.model.common.EntityGroupRoot.getCrossTldKey; -import static google.registry.model.ofy.ObjectifyService.ofy; - -import com.google.common.base.Supplier; -import com.google.common.collect.ImmutableMap; -import com.googlecode.objectify.Work; -import google.registry.model.registry.Registry; - -/** Utility class for dealing with EPP ROID suffixes. */ -public final class RoidSuffixes { - - /** A cached map of TLD strings to ROID suffixes. */ - private static final Supplier> ROID_SUFFIX_MAP_CACHE = - memoizeWithShortExpiration(new Supplier>() { - @Override - public ImmutableMap get() { - return ofy().doTransactionless(new Work>() { - @Override - public ImmutableMap run() { - ImmutableMap.Builder builder = new ImmutableMap.Builder<>(); - for (Registry registry : - ofy().load().type(Registry.class).ancestor(getCrossTldKey()).list()) { - builder.put(registry.getTldStr(), registry.getRoidSuffix()); - } - return builder.build(); - }}); - }}); - - /** - * Returns the roid suffix corresponding to the given tld using the per-tld roidSuffix field. - * - * @throws IllegalStateException if there is no such tld, or the tld does not have a roid suffix - * configured on it - */ - public static String getRoidSuffixForTld(String tld) { - String roidSuffix = ROID_SUFFIX_MAP_CACHE.get().get(tld); - checkState(roidSuffix != null, "Could not find ROID suffix for TLD %s", tld); - return roidSuffix; - } - - public static boolean isRoidSuffixUsed(String roidSuffix) { - return ROID_SUFFIX_MAP_CACHE.get().containsValue(roidSuffix); - } -} diff --git a/java/google/registry/tools/CreateOrUpdateTldCommand.java b/java/google/registry/tools/CreateOrUpdateTldCommand.java index 09448f592..95457cf04 100644 --- a/java/google/registry/tools/CreateOrUpdateTldCommand.java +++ b/java/google/registry/tools/CreateOrUpdateTldCommand.java @@ -15,7 +15,6 @@ package google.registry.tools; import static com.google.common.base.Preconditions.checkArgument; -import static google.registry.model.RoidSuffixes.isRoidSuffixUsed; import static google.registry.util.CollectionUtils.findDuplicates; import static google.registry.util.DomainNameUtils.canonicalizeDomainName; @@ -263,13 +262,6 @@ abstract class CreateOrUpdateTldCommand extends MutatingCommand { !CharMatcher.javaDigit().matches(tld.charAt(0)), "TLDs cannot begin with a number."); Registry oldRegistry = getOldRegistry(tld); - if (roidSuffix != null) { - checkArgument( - !isRoidSuffixUsed(roidSuffix) - || (oldRegistry != null && roidSuffix.equals(oldRegistry.getRoidSuffix())), - "The roid suffix %s is already in use", - roidSuffix); - } // TODO(b/26901539): Add a flag to set the pricing engine once we have more than one option. Registry.Builder builder = oldRegistry == null diff --git a/javatests/google/registry/model/RoidSuffixesTest.java b/javatests/google/registry/model/RoidSuffixesTest.java deleted file mode 100644 index 18c530c76..000000000 --- a/javatests/google/registry/model/RoidSuffixesTest.java +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2016 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model; - -import static com.google.common.truth.Truth.assertThat; -import static google.registry.model.RoidSuffixes.getRoidSuffixForTld; -import static google.registry.testing.DatastoreHelper.newRegistry; -import static google.registry.testing.DatastoreHelper.persistResource; - -import google.registry.testing.AppEngineRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; - -/** Unit tests for {@link RoidSuffixes}. */ -@RunWith(JUnit4.class) -public class RoidSuffixesTest { - - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder() - .withDatastore() - .build(); - - @Test - public void test_newlyCreatedRegistry_isAddedToRoidSuffixesList() { - persistResource(newRegistry("tld", "MEOW")); - assertThat(getRoidSuffixForTld("tld")).isEqualTo("MEOW"); - } - - @Test - public void test_allowDupeRoidSuffixes() { - persistResource(newRegistry("tld", "MEOW")); - persistResource(newRegistry("example", "MEOW")); - assertThat(getRoidSuffixForTld("tld")).isEqualTo("MEOW"); - assertThat(getRoidSuffixForTld("example")).isEqualTo("MEOW"); - } -} diff --git a/javatests/google/registry/tools/CreateTldCommandTest.java b/javatests/google/registry/tools/CreateTldCommandTest.java index bc82ad88a..f3745f7e5 100644 --- a/javatests/google/registry/tools/CreateTldCommandTest.java +++ b/javatests/google/registry/tools/CreateTldCommandTest.java @@ -416,13 +416,6 @@ public class CreateTldCommandTest extends CommandTestCase { runCommandForced("--premium_list=phonies", "--roid_suffix=Q9JYB4C", "xn--q9jyb4c"); } - @Test - public void testFailure_roidSuffixAlreadyInUse() throws Exception { - createTld("foo", "BLAH"); - thrown.expect(IllegalArgumentException.class, "The roid suffix BLAH is already in use"); - runCommandForced("--roid_suffix=BLAH", "randomtld"); - } - @Test public void testFailure_addLrpPeriod_backwardsInterval() throws Exception { thrown.expect( diff --git a/javatests/google/registry/tools/UpdateTldCommandTest.java b/javatests/google/registry/tools/UpdateTldCommandTest.java index e16e39ac0..3896d098e 100644 --- a/javatests/google/registry/tools/UpdateTldCommandTest.java +++ b/javatests/google/registry/tools/UpdateTldCommandTest.java @@ -698,14 +698,6 @@ public class UpdateTldCommandTest extends CommandTestCase { "xn--q9jyb4c"); } - @Test - public void testFailure_roidSuffixAlreadyInUse() throws Exception { - createTld("foo", "BLAH"); - createTld("bar", "BAR"); - thrown.expect(IllegalArgumentException.class, "The roid suffix BLAH is already in use"); - runCommandForced("--roid_suffix=BLAH", "bar"); - } - @Test public void testSuccess_canSetRoidSuffixToWhatItAlreadyIs() throws Exception { createTld("foo", "BLAH");