diff --git a/docs/app-engine-architecture.md b/docs/app-engine-architecture.md index 9adf4546e..4f71c64f1 100644 --- a/docs/app-engine-architecture.md +++ b/docs/app-engine-architecture.md @@ -71,7 +71,8 @@ with the tools service are not visible to users. The tools service also runs ad-hoc MapReduces, like those invoked via `nomulus` tool subcommands like `generate_zone_files` and by manually hitting URLs under -https://tools-dot-project-id.appspot.com, like `/_dr/task/refreshAllDomains`. +https://tools-dot-project-id.appspot.com, like +`/_dr/task/refreshDnsForAllDomains`. ## Task queues diff --git a/java/google/registry/env/common/tools/WEB-INF/web.xml b/java/google/registry/env/common/tools/WEB-INF/web.xml index d4b237517..32a6f2ca8 100644 --- a/java/google/registry/env/common/tools/WEB-INF/web.xml +++ b/java/google/registry/env/common/tools/WEB-INF/web.xml @@ -113,7 +113,7 @@ tools-servlet - /_dr/task/refreshAllDomains + /_dr/task/refreshDnsForAllDomains diff --git a/java/google/registry/module/tools/BUILD b/java/google/registry/module/tools/BUILD index 0b0a40fe7..8578e0c20 100644 --- a/java/google/registry/module/tools/BUILD +++ b/java/google/registry/module/tools/BUILD @@ -23,9 +23,7 @@ java_library( "//java/google/registry/request", "//java/google/registry/request:modules", "//java/google/registry/request/auth", - "//java/google/registry/security", "//java/google/registry/tools/server", - "//java/google/registry/tools/server/javascrap", "//java/google/registry/util", "@com_google_appengine_api_1_0_sdk", "@com_google_code_findbugs_jsr305", diff --git a/java/google/registry/module/tools/ToolsRequestComponent.java b/java/google/registry/module/tools/ToolsRequestComponent.java index 35bf93afb..189dba605 100644 --- a/java/google/registry/module/tools/ToolsRequestComponent.java +++ b/java/google/registry/module/tools/ToolsRequestComponent.java @@ -42,11 +42,11 @@ import google.registry.tools.server.ListPremiumListsAction; import google.registry.tools.server.ListRegistrarsAction; import google.registry.tools.server.ListReservedListsAction; import google.registry.tools.server.ListTldsAction; +import google.registry.tools.server.RefreshDnsForAllDomainsAction; import google.registry.tools.server.ResaveAllEppResourcesAction; import google.registry.tools.server.ToolsServerModule; import google.registry.tools.server.UpdatePremiumListAction; import google.registry.tools.server.VerifyOteAction; -import google.registry.tools.server.javascrap.RefreshAllDomainsAction; /** Dagger component with per-request lifetime for "tools" App Engine module. */ @RequestScope @@ -78,7 +78,7 @@ interface ToolsRequestComponent { ListTldsAction listTldsAction(); LoadTestAction loadTestAction(); PublishDetailReportAction publishDetailReportAction(); - RefreshAllDomainsAction refreshAllDomainsAction(); + RefreshDnsForAllDomainsAction refreshDnsForAllDomainsAction(); ResaveAllEppResourcesAction resaveAllEppResourcesAction(); RestoreCommitLogsAction restoreCommitLogsAction(); UpdatePremiumListAction updatePremiumListAction(); diff --git a/java/google/registry/tools/server/BUILD b/java/google/registry/tools/server/BUILD index 2bcab545f..9630bf4a1 100644 --- a/java/google/registry/tools/server/BUILD +++ b/java/google/registry/tools/server/BUILD @@ -9,6 +9,7 @@ java_library( srcs = glob(["*.java"]), deps = [ "//java/google/registry/config", + "//java/google/registry/dns", "//java/google/registry/export", "//java/google/registry/flows", "//java/google/registry/gcs", diff --git a/java/google/registry/tools/server/javascrap/RefreshAllDomainsAction.java b/java/google/registry/tools/server/RefreshDnsForAllDomainsAction.java similarity index 80% rename from java/google/registry/tools/server/javascrap/RefreshAllDomainsAction.java rename to java/google/registry/tools/server/RefreshDnsForAllDomainsAction.java index 552969fd0..64ece3118 100644 --- a/java/google/registry/tools/server/javascrap/RefreshAllDomainsAction.java +++ b/java/google/registry/tools/server/RefreshDnsForAllDomainsAction.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package google.registry.tools.server.javascrap; +package google.registry.tools.server; import static google.registry.mapreduce.inputs.EppResourceInputs.createEntityInput; import static google.registry.util.PipelineUtils.createJobPath; @@ -33,14 +33,18 @@ import org.joda.time.DateTime; import org.joda.time.DateTimeZone; /** - * A mapreduce that enqueues publish tasks on all active domains. + * A mapreduce that enqueues DNS publish tasks on all active domains. + * + *

This refreshes DNS both for all domain names and all in-bailiwick hostnames, as DNS writers + * are responsible for enqueuing refresh tasks for subordinate hosts. So this action thus refreshes + * DNS for everything applicable under all TLDs under management. * *

Because there are no auth settings in the {@link Action} annotation, this command can only be * run internally, or by pretending to be internal by setting the X-AppEngine-QueueName header, * which only admin users can do. */ @Action( - path = "/_dr/task/refreshAllDomains", + path = "/_dr/task/refreshDnsForAllDomains", auth = @Auth( methods = {Auth.AuthMethod.INTERNAL, Auth.AuthMethod.API}, @@ -48,13 +52,13 @@ import org.joda.time.DateTimeZone; userPolicy = Auth.UserPolicy.ADMIN ) ) -public class RefreshAllDomainsAction implements Runnable { +public class RefreshDnsForAllDomainsAction implements Runnable { private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass(); @Inject MapreduceRunner mrRunner; @Inject Response response; - @Inject RefreshAllDomainsAction() {} + @Inject RefreshDnsForAllDomainsAction() {} @Override public void run() { @@ -65,12 +69,13 @@ public class RefreshAllDomainsAction implements Runnable { .setModuleName("tools") .setDefaultMapShards(10) .runMapOnly( - new RefreshAllDomainsActionMapper(), + new RefreshDnsForAllDomainsActionMapper(), ImmutableList.of(createEntityInput(DomainResource.class))))); } - /** Mapper to refresh all active domain resources. */ - public static class RefreshAllDomainsActionMapper extends Mapper { + /** Mapper to refresh DNS for all active domain resources. */ + public static class RefreshDnsForAllDomainsActionMapper + extends Mapper { private static final DnsQueue dnsQueue = DnsQueue.create(); private static final long serialVersionUID = 1356876487351666133L; diff --git a/java/google/registry/tools/server/javascrap/BUILD b/java/google/registry/tools/server/javascrap/BUILD deleted file mode 100644 index f0d2ed064..000000000 --- a/java/google/registry/tools/server/javascrap/BUILD +++ /dev/null @@ -1,26 +0,0 @@ -package( - default_visibility = ["//java/google/registry:registry_project"], -) - -licenses(["notice"]) # Apache 2.0 - -java_library( - name = "javascrap", - srcs = glob(["*.java"]), - deps = [ - "//java/google/registry/dns", - "//java/google/registry/mapreduce", - "//java/google/registry/mapreduce/inputs", - "//java/google/registry/model", - "//java/google/registry/request", - "//java/google/registry/request/auth", - "//java/google/registry/util", - "//third_party/java/objectify:objectify-v4_1", - "@com_google_appengine_api_1_0_sdk", - "@com_google_appengine_tools_appengine_mapreduce", - "@com_google_code_findbugs_jsr305", - "@com_google_dagger", - "@com_google_guava", - "@joda_time", - ], -) diff --git a/javatests/google/registry/module/tools/testdata/tools_routing.txt b/javatests/google/registry/module/tools/testdata/tools_routing.txt index 7854c65d4..af3f5918d 100644 --- a/javatests/google/registry/module/tools/testdata/tools_routing.txt +++ b/javatests/google/registry/module/tools/testdata/tools_routing.txt @@ -1,21 +1,21 @@ -PATH CLASS METHODS OK AUTH_METHODS MIN USER_POLICY -/_dr/admin/createGroups CreateGroupsAction POST n INTERNAL,API APP ADMIN -/_dr/admin/createPremiumList CreatePremiumListAction POST n INTERNAL,API APP ADMIN -/_dr/admin/deleteEntity DeleteEntityAction GET n INTERNAL,API APP ADMIN -/_dr/admin/list/domains ListDomainsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/hosts ListHostsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/premiumLists ListPremiumListsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/registrars ListRegistrarsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/reservedLists ListReservedListsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/tlds ListTldsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/updatePremiumList UpdatePremiumListAction POST n INTERNAL,API APP ADMIN -/_dr/admin/verifyOte VerifyOteAction POST n INTERNAL,API APP ADMIN -/_dr/epptool EppToolAction POST n INTERNAL,API APP ADMIN -/_dr/loadtest LoadTestAction POST y INTERNAL,API APP ADMIN -/_dr/publishDetailReport PublishDetailReportAction POST n INTERNAL,API APP ADMIN -/_dr/task/generateZoneFiles GenerateZoneFilesAction POST n INTERNAL,API APP ADMIN -/_dr/task/killAllCommitLogs KillAllCommitLogsAction POST n INTERNAL APP IGNORED -/_dr/task/killAllEppResources KillAllEppResourcesAction POST n INTERNAL APP IGNORED -/_dr/task/refreshAllDomains RefreshAllDomainsAction GET n INTERNAL,API APP ADMIN -/_dr/task/resaveAllEppResources ResaveAllEppResourcesAction GET n INTERNAL,API APP ADMIN -/_dr/task/restoreCommitLogs RestoreCommitLogsAction POST y INTERNAL,API APP ADMIN +PATH CLASS METHODS OK AUTH_METHODS MIN USER_POLICY +/_dr/admin/createGroups CreateGroupsAction POST n INTERNAL,API APP ADMIN +/_dr/admin/createPremiumList CreatePremiumListAction POST n INTERNAL,API APP ADMIN +/_dr/admin/deleteEntity DeleteEntityAction GET n INTERNAL,API APP ADMIN +/_dr/admin/list/domains ListDomainsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/hosts ListHostsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/premiumLists ListPremiumListsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/registrars ListRegistrarsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/reservedLists ListReservedListsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/tlds ListTldsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/updatePremiumList UpdatePremiumListAction POST n INTERNAL,API APP ADMIN +/_dr/admin/verifyOte VerifyOteAction POST n INTERNAL,API APP ADMIN +/_dr/epptool EppToolAction POST n INTERNAL,API APP ADMIN +/_dr/loadtest LoadTestAction POST y INTERNAL,API APP ADMIN +/_dr/publishDetailReport PublishDetailReportAction POST n INTERNAL,API APP ADMIN +/_dr/task/generateZoneFiles GenerateZoneFilesAction POST n INTERNAL,API APP ADMIN +/_dr/task/killAllCommitLogs KillAllCommitLogsAction POST n INTERNAL APP IGNORED +/_dr/task/killAllEppResources KillAllEppResourcesAction POST n INTERNAL APP IGNORED +/_dr/task/refreshDnsForAllDomains RefreshDnsForAllDomainsAction GET n INTERNAL,API APP ADMIN +/_dr/task/resaveAllEppResources ResaveAllEppResourcesAction GET n INTERNAL,API APP ADMIN +/_dr/task/restoreCommitLogs RestoreCommitLogsAction POST y INTERNAL,API APP ADMIN