Add LRP TLD states to Registry and *_tld tools

Also had to add an EnumParameter class to support
List<T extends Enum<T>>, as these aren't natively supported by
JCommander (although single Enum parameters are.)

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129464699
This commit is contained in:
Chris Tingue 2016-08-05 11:39:06 -07:00 committed by Justine Tunney
parent 751df4b488
commit 1ef8716177
10 changed files with 259 additions and 2 deletions

View file

@ -35,6 +35,7 @@ import google.registry.model.registry.Registry.TldState;
import google.registry.model.registry.Registry.TldType;
import google.registry.model.registry.label.PremiumList;
import google.registry.tools.params.OptionalStringParameter;
import google.registry.tools.params.TldStateParameter;
import google.registry.tools.params.TransitionListParameter.BillingCostTransitions;
import google.registry.tools.params.TransitionListParameter.TldStateTransitions;
import java.util.List;
@ -215,10 +216,16 @@ abstract class CreateOrUpdateTldCommand extends MutatingCommand {
names = "--dns_writer",
description = "The name of the DnsWriter implementation to use",
converter = OptionalStringParameter.class,
validateWith = OptionalStringParameter.class
)
validateWith = OptionalStringParameter.class)
Optional<String> dnsWriter;
@Nullable
@Parameter(
names = "--lrp_tld_states",
converter = TldStateParameter.class,
description = "A comma-separated list of TLD states for which LRP is available")
List<TldState> lrpTldStates;
/** Returns the existing registry (for update) or null (for creates). */
@Nullable
abstract Registry getOldRegistry(String tld);
@ -385,6 +392,10 @@ abstract class CreateOrUpdateTldCommand extends MutatingCommand {
}
}
if (lrpTldStates != null) {
builder.setLrpTldStates(ImmutableSet.copyOf(lrpTldStates));
}
ImmutableSet<String> newReservedListNames = getReservedLists(oldRegistry);
checkReservedListValidityForTld(tld, newReservedListNames);
builder.setReservedListsByName(newReservedListNames);