mirror of
https://github.com/google/nomulus.git
synced 2025-05-15 08:57:12 +02:00
Make dependency injection and construction of DnsQueue nicer
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=146783008
This commit is contained in:
parent
7986be139d
commit
f212a53232
4 changed files with 33 additions and 30 deletions
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
package google.registry.dns;
|
package google.registry.dns;
|
||||||
|
|
||||||
|
import static com.google.appengine.api.taskqueue.QueueFactory.getQueue;
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import static google.registry.dns.DnsConstants.DNS_PULL_QUEUE_NAME;
|
import static google.registry.dns.DnsConstants.DNS_PULL_QUEUE_NAME;
|
||||||
import static google.registry.dns.DnsConstants.DNS_TARGET_NAME_PARAM;
|
import static google.registry.dns.DnsConstants.DNS_TARGET_NAME_PARAM;
|
||||||
|
@ -25,7 +26,6 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||||
|
|
||||||
import com.google.appengine.api.taskqueue.Queue;
|
import com.google.appengine.api.taskqueue.Queue;
|
||||||
import com.google.appengine.api.taskqueue.QueueConstants;
|
import com.google.appengine.api.taskqueue.QueueConstants;
|
||||||
import com.google.appengine.api.taskqueue.QueueFactory;
|
|
||||||
import com.google.appengine.api.taskqueue.TaskHandle;
|
import com.google.appengine.api.taskqueue.TaskHandle;
|
||||||
import com.google.appengine.api.taskqueue.TaskOptions;
|
import com.google.appengine.api.taskqueue.TaskOptions;
|
||||||
import com.google.appengine.api.taskqueue.TaskOptions.Method;
|
import com.google.appengine.api.taskqueue.TaskOptions.Method;
|
||||||
|
@ -48,8 +48,23 @@ public class DnsQueue {
|
||||||
|
|
||||||
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
|
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
|
||||||
|
|
||||||
@Inject @Named(DNS_PULL_QUEUE_NAME) Queue queue;
|
private final Queue queue;
|
||||||
@Inject DnsQueue() {}
|
|
||||||
|
@Inject
|
||||||
|
public DnsQueue(@Named(DNS_PULL_QUEUE_NAME) Queue queue) {
|
||||||
|
this.queue = queue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new instance.
|
||||||
|
*
|
||||||
|
* <p><b>Note:</b> Prefer <code>@Inject</code>ing DnsQueue instances instead. You should only use
|
||||||
|
* this helper method in situations for which injection does not work, e.g. inside mapper or
|
||||||
|
* reducer classes in mapreduces that need to be Serializable.
|
||||||
|
*/
|
||||||
|
public static DnsQueue create() {
|
||||||
|
return new DnsQueue(getQueue(DNS_PULL_QUEUE_NAME));
|
||||||
|
}
|
||||||
|
|
||||||
long writeBatchSize = QueueConstants.maxLeaseCount();
|
long writeBatchSize = QueueConstants.maxLeaseCount();
|
||||||
|
|
||||||
|
@ -127,17 +142,4 @@ public class DnsQueue {
|
||||||
logger.severe(e, "Failed deleting tasks too fast");
|
logger.severe(e, "Failed deleting tasks too fast");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new instance.
|
|
||||||
*
|
|
||||||
* <p><b>Note:</b> Prefer <code>@Inject</code>ing DnsQueue instances instead. You should only use
|
|
||||||
* this helper method in situations for which injection does not work, e.g. inside mapper or
|
|
||||||
* reducer classes in mapreduces that need to be Serializable.
|
|
||||||
*/
|
|
||||||
public static DnsQueue create() {
|
|
||||||
DnsQueue result = new DnsQueue();
|
|
||||||
result.queue = QueueFactory.getQueue(DNS_PULL_QUEUE_NAME);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.net.InternetDomainName;
|
import com.google.common.net.InternetDomainName;
|
||||||
import com.googlecode.objectify.Key;
|
import com.googlecode.objectify.Key;
|
||||||
|
import dagger.Lazy;
|
||||||
import google.registry.dns.DnsQueue;
|
import google.registry.dns.DnsQueue;
|
||||||
import google.registry.flows.EppException;
|
import google.registry.flows.EppException;
|
||||||
import google.registry.flows.EppException.AuthorizationErrorException;
|
import google.registry.flows.EppException.AuthorizationErrorException;
|
||||||
|
@ -109,6 +110,7 @@ public class DomainAllocateFlow implements TransactionalFlow {
|
||||||
@Inject @Superuser boolean isSuperuser;
|
@Inject @Superuser boolean isSuperuser;
|
||||||
@Inject HistoryEntry.Builder historyBuilder;
|
@Inject HistoryEntry.Builder historyBuilder;
|
||||||
@Inject EppInput eppInput;
|
@Inject EppInput eppInput;
|
||||||
|
@Inject Lazy<DnsQueue> dnsQueue;
|
||||||
@Inject EppResponse.Builder responseBuilder;
|
@Inject EppResponse.Builder responseBuilder;
|
||||||
@Inject DomainPricingLogic pricingLogic;
|
@Inject DomainPricingLogic pricingLogic;
|
||||||
@Inject DomainAllocateFlow() {}
|
@Inject DomainAllocateFlow() {}
|
||||||
|
@ -360,7 +362,7 @@ public class DomainAllocateFlow implements TransactionalFlow {
|
||||||
|
|
||||||
private void enqueueTasks(AllocateCreateExtension allocateCreate, DomainResource newDomain) {
|
private void enqueueTasks(AllocateCreateExtension allocateCreate, DomainResource newDomain) {
|
||||||
if (newDomain.shouldPublishToDns()) {
|
if (newDomain.shouldPublishToDns()) {
|
||||||
DnsQueue.create().addDomainRefreshTask(newDomain.getFullyQualifiedDomainName());
|
dnsQueue.get().addDomainRefreshTask(newDomain.getFullyQualifiedDomainName());
|
||||||
}
|
}
|
||||||
if (allocateCreate.getSmdId() != null || allocateCreate.getNotice() != null) {
|
if (allocateCreate.getSmdId() != null || allocateCreate.getNotice() != null) {
|
||||||
LordnTask.enqueueDomainResourceTask(newDomain);
|
LordnTask.enqueueDomainResourceTask(newDomain);
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
package google.registry.dns;
|
package google.registry.dns;
|
||||||
|
|
||||||
import static com.google.appengine.api.taskqueue.QueueFactory.getQueue;
|
|
||||||
import static google.registry.testing.DatastoreHelper.createTld;
|
import static google.registry.testing.DatastoreHelper.createTld;
|
||||||
import static google.registry.testing.TaskQueueHelper.assertNoTasksEnqueued;
|
import static google.registry.testing.TaskQueueHelper.assertNoTasksEnqueued;
|
||||||
import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued;
|
import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued;
|
||||||
|
@ -45,8 +44,7 @@ public class DnsQueueTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void init() {
|
public void init() {
|
||||||
dnsQueue = new DnsQueue();
|
dnsQueue = DnsQueue.create();
|
||||||
dnsQueue.queue = getQueue("dns-pull");
|
|
||||||
dnsQueue.writeBatchSize = 10;
|
dnsQueue.writeBatchSize = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,8 +86,7 @@ public class ReadDnsQueueActionTest {
|
||||||
clock.setTo(DateTime.now(DateTimeZone.UTC));
|
clock.setTo(DateTime.now(DateTimeZone.UTC));
|
||||||
createTlds("com", "net", "example");
|
createTlds("com", "net", "example");
|
||||||
persistResource(Registry.get("example").asBuilder().setTldType(TldType.TEST).build());
|
persistResource(Registry.get("example").asBuilder().setTldType(TldType.TEST).build());
|
||||||
dnsQueue = new DnsQueue();
|
dnsQueue = DnsQueue.create();
|
||||||
dnsQueue.queue = getQueue(DNS_PULL_QUEUE_NAME);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void run(boolean keepTasks) throws Exception {
|
private void run(boolean keepTasks) throws Exception {
|
||||||
|
@ -132,7 +131,7 @@ public class ReadDnsQueueActionTest {
|
||||||
dnsQueue.addDomainRefreshTask("domain.net");
|
dnsQueue.addDomainRefreshTask("domain.net");
|
||||||
dnsQueue.addDomainRefreshTask("domain.example");
|
dnsQueue.addDomainRefreshTask("domain.example");
|
||||||
run(false);
|
run(false);
|
||||||
assertNoTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME);
|
assertNoTasksEnqueued(DNS_PULL_QUEUE_NAME);
|
||||||
assertTasksEnqueued(
|
assertTasksEnqueued(
|
||||||
DNS_PUBLISH_PUSH_QUEUE_NAME,
|
DNS_PUBLISH_PUSH_QUEUE_NAME,
|
||||||
new TaskMatcher().method("POST"),
|
new TaskMatcher().method("POST"),
|
||||||
|
@ -146,7 +145,7 @@ public class ReadDnsQueueActionTest {
|
||||||
dnsQueue.addDomainRefreshTask("domain.net");
|
dnsQueue.addDomainRefreshTask("domain.net");
|
||||||
dnsQueue.addDomainRefreshTask("domain.example");
|
dnsQueue.addDomainRefreshTask("domain.example");
|
||||||
run(false);
|
run(false);
|
||||||
assertNoTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME);
|
assertNoTasksEnqueued(DNS_PULL_QUEUE_NAME);
|
||||||
assertTldsEnqueuedInPushQueue("com", "net", "example");
|
assertTldsEnqueuedInPushQueue("com", "net", "example");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +156,7 @@ public class ReadDnsQueueActionTest {
|
||||||
dnsQueue.addDomainRefreshTask("domain.example");
|
dnsQueue.addDomainRefreshTask("domain.example");
|
||||||
run(true);
|
run(true);
|
||||||
assertTasksEnqueued(
|
assertTasksEnqueued(
|
||||||
DnsConstants.DNS_PULL_QUEUE_NAME,
|
DNS_PULL_QUEUE_NAME,
|
||||||
new TaskMatcher().payload("Target-Type=DOMAIN&Target-Name=domain.com&tld=com"),
|
new TaskMatcher().payload("Target-Type=DOMAIN&Target-Name=domain.com&tld=com"),
|
||||||
new TaskMatcher().payload("Target-Type=DOMAIN&Target-Name=domain.net&tld=net"),
|
new TaskMatcher().payload("Target-Type=DOMAIN&Target-Name=domain.net&tld=net"),
|
||||||
new TaskMatcher().payload("Target-Type=DOMAIN&Target-Name=domain.example&tld=example"));
|
new TaskMatcher().payload("Target-Type=DOMAIN&Target-Name=domain.example&tld=example"));
|
||||||
|
@ -171,7 +170,7 @@ public class ReadDnsQueueActionTest {
|
||||||
dnsQueue.addDomainRefreshTask("domain.net");
|
dnsQueue.addDomainRefreshTask("domain.net");
|
||||||
dnsQueue.addDomainRefreshTask("domain.example");
|
dnsQueue.addDomainRefreshTask("domain.example");
|
||||||
run(false);
|
run(false);
|
||||||
assertTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME, new TaskMatcher());
|
assertTasksEnqueued(DNS_PULL_QUEUE_NAME, new TaskMatcher());
|
||||||
assertTldsEnqueuedInPushQueue("com", "example");
|
assertTldsEnqueuedInPushQueue("com", "example");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,7 +180,7 @@ public class ReadDnsQueueActionTest {
|
||||||
dnsQueue.addDomainRefreshTask("domain.net");
|
dnsQueue.addDomainRefreshTask("domain.net");
|
||||||
dnsQueue.addZoneRefreshTask("example");
|
dnsQueue.addZoneRefreshTask("example");
|
||||||
run(false);
|
run(false);
|
||||||
assertNoTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME);
|
assertNoTasksEnqueued(DNS_PULL_QUEUE_NAME);
|
||||||
assertTasksEnqueued(DNS_PUBLISH_PUSH_QUEUE_NAME,
|
assertTasksEnqueued(DNS_PUBLISH_PUSH_QUEUE_NAME,
|
||||||
new TaskMatcher()
|
new TaskMatcher()
|
||||||
.url(PublishDnsUpdatesAction.PATH)
|
.url(PublishDnsUpdatesAction.PATH)
|
||||||
|
@ -213,11 +212,13 @@ public class ReadDnsQueueActionTest {
|
||||||
task.param("domains", domainName);
|
task.param("domains", domainName);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
dnsQueue.queue.add(createRefreshTask("ns1." + domainName, TargetType.HOST));
|
getQueue(DNS_PULL_QUEUE_NAME)
|
||||||
|
.add(createRefreshTask("ns1." + domainName, TargetType.HOST));
|
||||||
task.param("hosts", "ns1." + domainName);
|
task.param("hosts", "ns1." + domainName);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
dnsQueue.queue.add(createRefreshTask("ns2." + domainName, TargetType.HOST));
|
getQueue(DNS_PULL_QUEUE_NAME)
|
||||||
|
.add(createRefreshTask("ns2." + domainName, TargetType.HOST));
|
||||||
task.param("hosts", "ns2." + domainName);
|
task.param("hosts", "ns2." + domainName);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -231,7 +232,7 @@ public class ReadDnsQueueActionTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
run(false);
|
run(false);
|
||||||
assertNoTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME);
|
assertNoTasksEnqueued(DNS_PULL_QUEUE_NAME);
|
||||||
assertTasksEnqueued(DNS_PUBLISH_PUSH_QUEUE_NAME, expectedTasks);
|
assertTasksEnqueued(DNS_PUBLISH_PUSH_QUEUE_NAME, expectedTasks);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue