Synchronize domains with DNS on import

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=146813124
This commit is contained in:
Wolfgang Meyers 2017-02-07 11:47:04 -08:00 committed by Ben McIlwain
parent 5d4a88e5ce
commit 60a3d2a53b
3 changed files with 20 additions and 0 deletions

View file

@ -9,6 +9,7 @@ java_library(
srcs = glob(["*.java"]),
deps = [
"//java/google/registry/config",
"//java/google/registry/dns",
"//java/google/registry/gcs",
"//java/google/registry/mapreduce",
"//java/google/registry/model",

View file

@ -28,6 +28,7 @@ import com.google.common.collect.ImmutableList;
import com.googlecode.objectify.VoidWork;
import google.registry.config.RegistryConfig.Config;
import google.registry.config.RegistryConfig.ConfigModule;
import google.registry.dns.DnsQueue;
import google.registry.gcs.GcsUtils;
import google.registry.mapreduce.MapreduceRunner;
import google.registry.model.domain.DomainResource;
@ -109,6 +110,7 @@ public class RdeDomainImportAction implements Runnable {
private final String importBucketName;
private transient RdeImportUtils importUtils;
private transient DnsQueue dnsQueue;
public RdeDomainImportMapper(String importBucketName) {
this.importBucketName = importBucketName;
@ -121,6 +123,13 @@ public class RdeDomainImportAction implements Runnable {
return importUtils;
}
private DnsQueue getDnsQueue() {
if (dnsQueue == null) {
dnsQueue = DnsQueue.create();
}
return dnsQueue;
}
/**
* Creates a new instance of RdeImportUtils.
*/
@ -146,6 +155,7 @@ public class RdeDomainImportAction implements Runnable {
DomainResource domain =
XjcToDomainResourceConverter.convertDomain(xjcDomain);
getImportUtils().importDomain(domain);
getDnsQueue().addDomainRefreshTask(domain.getFullyQualifiedDomainName());
}
});
// Record the number of domains imported

View file

@ -22,6 +22,7 @@ import static google.registry.testing.DatastoreHelper.newDomainResource;
import static google.registry.testing.DatastoreHelper.persistActiveContact;
import static google.registry.testing.DatastoreHelper.persistResource;
import static google.registry.testing.DatastoreHelper.persistSimpleResource;
import static google.registry.testing.TaskQueueHelper.assertDnsTasksEnqueued;
import com.google.appengine.tools.cloudstorage.GcsFilename;
import com.google.appengine.tools.cloudstorage.GcsService;
@ -126,6 +127,14 @@ public class RdeDomainImportActionTest extends MapreduceTestCase<RdeDomainImport
checkHistoryEntry(historyEntries.get(0), domain);
}
/** Ensures that DNS publishing is kicked off on domain import */
@Test
public void test_mapreducePublishesToDns() throws Exception {
pushToGcs(DEPOSIT_1_DOMAIN);
runMapreduce();
assertDnsTasksEnqueued("example1.test");
}
/** Verify history entry fields are correct */
private void checkHistoryEntry(HistoryEntry entry, DomainResource parent) {
assertThat(entry.getType()).isEqualTo(HistoryEntry.Type.RDE_IMPORT);