mirror of
https://github.com/google/nomulus.git
synced 2025-05-14 16:37:13 +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;
|
||||
|
||||
import static com.google.appengine.api.taskqueue.QueueFactory.getQueue;
|
||||
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_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.QueueConstants;
|
||||
import com.google.appengine.api.taskqueue.QueueFactory;
|
||||
import com.google.appengine.api.taskqueue.TaskHandle;
|
||||
import com.google.appengine.api.taskqueue.TaskOptions;
|
||||
import com.google.appengine.api.taskqueue.TaskOptions.Method;
|
||||
|
@ -48,8 +48,23 @@ public class DnsQueue {
|
|||
|
||||
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
|
||||
|
||||
@Inject @Named(DNS_PULL_QUEUE_NAME) Queue queue;
|
||||
@Inject DnsQueue() {}
|
||||
private final Queue queue;
|
||||
|
||||
@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();
|
||||
|
||||
|
@ -127,17 +142,4 @@ public class DnsQueue {
|
|||
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.net.InternetDomainName;
|
||||
import com.googlecode.objectify.Key;
|
||||
import dagger.Lazy;
|
||||
import google.registry.dns.DnsQueue;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.EppException.AuthorizationErrorException;
|
||||
|
@ -109,6 +110,7 @@ public class DomainAllocateFlow implements TransactionalFlow {
|
|||
@Inject @Superuser boolean isSuperuser;
|
||||
@Inject HistoryEntry.Builder historyBuilder;
|
||||
@Inject EppInput eppInput;
|
||||
@Inject Lazy<DnsQueue> dnsQueue;
|
||||
@Inject EppResponse.Builder responseBuilder;
|
||||
@Inject DomainPricingLogic pricingLogic;
|
||||
@Inject DomainAllocateFlow() {}
|
||||
|
@ -360,7 +362,7 @@ public class DomainAllocateFlow implements TransactionalFlow {
|
|||
|
||||
private void enqueueTasks(AllocateCreateExtension allocateCreate, DomainResource newDomain) {
|
||||
if (newDomain.shouldPublishToDns()) {
|
||||
DnsQueue.create().addDomainRefreshTask(newDomain.getFullyQualifiedDomainName());
|
||||
dnsQueue.get().addDomainRefreshTask(newDomain.getFullyQualifiedDomainName());
|
||||
}
|
||||
if (allocateCreate.getSmdId() != null || allocateCreate.getNotice() != null) {
|
||||
LordnTask.enqueueDomainResourceTask(newDomain);
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
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.TaskQueueHelper.assertNoTasksEnqueued;
|
||||
import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued;
|
||||
|
@ -45,8 +44,7 @@ public class DnsQueueTest {
|
|||
|
||||
@Before
|
||||
public void init() {
|
||||
dnsQueue = new DnsQueue();
|
||||
dnsQueue.queue = getQueue("dns-pull");
|
||||
dnsQueue = DnsQueue.create();
|
||||
dnsQueue.writeBatchSize = 10;
|
||||
}
|
||||
|
||||
|
|
|
@ -86,8 +86,7 @@ public class ReadDnsQueueActionTest {
|
|||
clock.setTo(DateTime.now(DateTimeZone.UTC));
|
||||
createTlds("com", "net", "example");
|
||||
persistResource(Registry.get("example").asBuilder().setTldType(TldType.TEST).build());
|
||||
dnsQueue = new DnsQueue();
|
||||
dnsQueue.queue = getQueue(DNS_PULL_QUEUE_NAME);
|
||||
dnsQueue = DnsQueue.create();
|
||||
}
|
||||
|
||||
private void run(boolean keepTasks) throws Exception {
|
||||
|
@ -132,7 +131,7 @@ public class ReadDnsQueueActionTest {
|
|||
dnsQueue.addDomainRefreshTask("domain.net");
|
||||
dnsQueue.addDomainRefreshTask("domain.example");
|
||||
run(false);
|
||||
assertNoTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME);
|
||||
assertNoTasksEnqueued(DNS_PULL_QUEUE_NAME);
|
||||
assertTasksEnqueued(
|
||||
DNS_PUBLISH_PUSH_QUEUE_NAME,
|
||||
new TaskMatcher().method("POST"),
|
||||
|
@ -146,7 +145,7 @@ public class ReadDnsQueueActionTest {
|
|||
dnsQueue.addDomainRefreshTask("domain.net");
|
||||
dnsQueue.addDomainRefreshTask("domain.example");
|
||||
run(false);
|
||||
assertNoTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME);
|
||||
assertNoTasksEnqueued(DNS_PULL_QUEUE_NAME);
|
||||
assertTldsEnqueuedInPushQueue("com", "net", "example");
|
||||
}
|
||||
|
||||
|
@ -157,7 +156,7 @@ public class ReadDnsQueueActionTest {
|
|||
dnsQueue.addDomainRefreshTask("domain.example");
|
||||
run(true);
|
||||
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.net&tld=net"),
|
||||
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.example");
|
||||
run(false);
|
||||
assertTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME, new TaskMatcher());
|
||||
assertTasksEnqueued(DNS_PULL_QUEUE_NAME, new TaskMatcher());
|
||||
assertTldsEnqueuedInPushQueue("com", "example");
|
||||
}
|
||||
|
||||
|
@ -181,7 +180,7 @@ public class ReadDnsQueueActionTest {
|
|||
dnsQueue.addDomainRefreshTask("domain.net");
|
||||
dnsQueue.addZoneRefreshTask("example");
|
||||
run(false);
|
||||
assertNoTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME);
|
||||
assertNoTasksEnqueued(DNS_PULL_QUEUE_NAME);
|
||||
assertTasksEnqueued(DNS_PUBLISH_PUSH_QUEUE_NAME,
|
||||
new TaskMatcher()
|
||||
.url(PublishDnsUpdatesAction.PATH)
|
||||
|
@ -213,11 +212,13 @@ public class ReadDnsQueueActionTest {
|
|||
task.param("domains", domainName);
|
||||
break;
|
||||
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);
|
||||
break;
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
@ -231,7 +232,7 @@ public class ReadDnsQueueActionTest {
|
|||
}
|
||||
}
|
||||
run(false);
|
||||
assertNoTasksEnqueued(DnsConstants.DNS_PULL_QUEUE_NAME);
|
||||
assertNoTasksEnqueued(DNS_PULL_QUEUE_NAME);
|
||||
assertTasksEnqueued(DNS_PUBLISH_PUSH_QUEUE_NAME, expectedTasks);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue