mirror of
https://github.com/google/nomulus.git
synced 2025-06-17 09:54:45 +02:00
Right now - if there's an error during DnsWriter.publish*, all the publish from before that error will be committed, while all the publish after that error will not. More than that - in some writers partial publishes can be committed, depending on implementation. This defines a new contract that publish* are only committed when .commit is called. That way any error will simply mean no publish is committed. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=165708063
65 lines
1.9 KiB
Java
65 lines
1.9 KiB
Java
// Copyright 2017 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.dns.writer;
|
|
|
|
import static com.google.common.base.Preconditions.checkState;
|
|
|
|
import com.google.common.base.Joiner;
|
|
import java.util.HashSet;
|
|
import java.util.Set;
|
|
import java.util.logging.Logger;
|
|
import javax.inject.Inject;
|
|
|
|
/**
|
|
* {@link DnsWriter} that doesn't actually update records in a DNS server.
|
|
*
|
|
* <p>All this class does is write its displeasure to the logs.
|
|
*/
|
|
public final class VoidDnsWriter implements DnsWriter {
|
|
|
|
/**
|
|
* The name of the pricing engine, as used in {@code Registry.dnsWriter}. Remember to change
|
|
* the value on affected Registry objects to prevent runtime failures.
|
|
*/
|
|
public static final String NAME = "VoidDnsWriter";
|
|
|
|
private static final Logger logger = Logger.getLogger(VoidDnsWriter.class.getName());
|
|
|
|
private boolean committed = false;
|
|
|
|
private final Set<String> names = new HashSet<>();
|
|
|
|
@Inject
|
|
public VoidDnsWriter() {}
|
|
|
|
@Override
|
|
public void publishDomain(String domainName) {
|
|
names.add(domainName);
|
|
}
|
|
|
|
@Override
|
|
public void publishHost(String hostName) {
|
|
names.add(hostName);
|
|
}
|
|
|
|
@Override
|
|
public void commit() {
|
|
checkState(!committed, "commit() has already been called");
|
|
committed = true;
|
|
|
|
logger.warning("Ignoring DNS zone updates! No DnsWriterFactory implementation specified!\n"
|
|
+ Joiner.on('\n').join(names));
|
|
}
|
|
}
|