// Copyright 2016 The Domain Registry 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.config; import static com.google.common.base.Preconditions.checkNotNull; import static google.registry.config.ConfigUtils.makeUrl; import static org.joda.time.Duration.standardDays; import com.google.appengine.api.utils.SystemProperty; import com.google.common.base.Ascii; import com.google.common.base.Joiner; import com.google.common.base.Optional; import com.google.common.collect.ImmutableList; import com.google.common.net.HostAndPort; import java.net.URL; import javax.annotation.concurrent.Immutable; import org.joda.time.Duration; /** * Default production configuration for global constants that can't be injected. * *
Warning: Editing this file in a forked repository is not recommended. The recommended * approach is to copy this file, give it a different name, and then change the system property * described in the {@link RegistryConfigLoader} documentation. */ @Immutable public final class ProductionRegistryConfigExample implements RegistryConfig { private final RegistryEnvironment environment; private static final String RESERVED_TERMS_EXPORT_DISCLAIMER = "" + "# This list contains reserve terms for the TLD. Other terms may be reserved\n" + "# but not included in this list, including terms EXAMPLE REGISTRY chooses not\n" + "# to publish, and terms that ICANN commonly mandates to be reserved. This\n" + "# list is subject to change and the most up-to-date source is always to\n" + "# check availability directly with the Registry server.\n"; public ProductionRegistryConfigExample(RegistryEnvironment environment) { this.environment = checkNotNull(environment); } @Override public String getProjectId() { switch (environment) { case PRODUCTION: return "domain-registry"; default: return "domain-registry-" + Ascii.toLowerCase(environment.name()); } } @Override public int getCommitLogBucketCount() { return 100; // if you decrease this number, the world ends } /** * {@inheritDoc} * *
Thirty days makes a sane default, because it's highly unlikely we'll ever need to generate a
* deposit older than that. And if we do, we could always bring up a separate App Engine instance
* and replay the commit logs off GCS.
*/
@Override
public Duration getCommitLogDatastoreRetention() {
return Duration.standardDays(30);
}
@Override
public String getSnapshotsBucket() {
return getProjectId() + "-snapshots";
}
@Override
public String getDomainListsBucket() {
return getProjectId() + "-domain-lists";
}
@Override
public String getCommitsBucket() {
return getProjectId() + "-commits";
}
@Override
public String getZoneFilesBucket() {
return getProjectId() + "-zonefiles";
}
@Override
public boolean getTmchCaTestingMode() {
switch (environment) {
case PRODUCTION:
return false;
default:
return true;
}
}
@Override
public String getTmchMarksdbUrl() {
switch (environment) {
case PRODUCTION:
return "https://ry.marksdb.org";
default:
return "https://test.ry.marksdb.org";
}
}
@Override
public Optional