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"]), srcs = glob(["*.java"]),
deps = [ deps = [
"//java/google/registry/config", "//java/google/registry/config",
"//java/google/registry/dns",
"//java/google/registry/gcs", "//java/google/registry/gcs",
"//java/google/registry/mapreduce", "//java/google/registry/mapreduce",
"//java/google/registry/model", "//java/google/registry/model",

View file

@ -28,6 +28,7 @@ import com.google.common.collect.ImmutableList;
import com.googlecode.objectify.VoidWork; import com.googlecode.objectify.VoidWork;
import google.registry.config.RegistryConfig.Config; import google.registry.config.RegistryConfig.Config;
import google.registry.config.RegistryConfig.ConfigModule; import google.registry.config.RegistryConfig.ConfigModule;
import google.registry.dns.DnsQueue;
import google.registry.gcs.GcsUtils; import google.registry.gcs.GcsUtils;
import google.registry.mapreduce.MapreduceRunner; import google.registry.mapreduce.MapreduceRunner;
import google.registry.model.domain.DomainResource; import google.registry.model.domain.DomainResource;
@ -109,6 +110,7 @@ public class RdeDomainImportAction implements Runnable {
private final String importBucketName; private final String importBucketName;
private transient RdeImportUtils importUtils; private transient RdeImportUtils importUtils;
private transient DnsQueue dnsQueue;
public RdeDomainImportMapper(String importBucketName) { public RdeDomainImportMapper(String importBucketName) {
this.importBucketName = importBucketName; this.importBucketName = importBucketName;
@ -121,6 +123,13 @@ public class RdeDomainImportAction implements Runnable {
return importUtils; return importUtils;
} }
private DnsQueue getDnsQueue() {
if (dnsQueue == null) {
dnsQueue = DnsQueue.create();
}
return dnsQueue;
}
/** /**
* Creates a new instance of RdeImportUtils. * Creates a new instance of RdeImportUtils.
*/ */
@ -146,6 +155,7 @@ public class RdeDomainImportAction implements Runnable {
DomainResource domain = DomainResource domain =
XjcToDomainResourceConverter.convertDomain(xjcDomain); XjcToDomainResourceConverter.convertDomain(xjcDomain);
getImportUtils().importDomain(domain); getImportUtils().importDomain(domain);
getDnsQueue().addDomainRefreshTask(domain.getFullyQualifiedDomainName());
} }
}); });
// Record the number of domains imported // 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.persistActiveContact;
import static google.registry.testing.DatastoreHelper.persistResource; import static google.registry.testing.DatastoreHelper.persistResource;
import static google.registry.testing.DatastoreHelper.persistSimpleResource; 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.GcsFilename;
import com.google.appengine.tools.cloudstorage.GcsService; import com.google.appengine.tools.cloudstorage.GcsService;
@ -126,6 +127,14 @@ public class RdeDomainImportActionTest extends MapreduceTestCase<RdeDomainImport
checkHistoryEntry(historyEntries.get(0), domain); 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 */ /** Verify history entry fields are correct */
private void checkHistoryEntry(HistoryEntry entry, DomainResource parent) { private void checkHistoryEntry(HistoryEntry entry, DomainResource parent) {
assertThat(entry.getType()).isEqualTo(HistoryEntry.Type.RDE_IMPORT); assertThat(entry.getType()).isEqualTo(HistoryEntry.Type.RDE_IMPORT);