diff --git a/core/src/main/java/google/registry/batch/DeleteExpiredDomainsAction.java b/core/src/main/java/google/registry/batch/DeleteExpiredDomainsAction.java index 928d07323..153649adf 100644 --- a/core/src/main/java/google/registry/batch/DeleteExpiredDomainsAction.java +++ b/core/src/main/java/google/registry/batch/DeleteExpiredDomainsAction.java @@ -37,7 +37,6 @@ import google.registry.model.domain.DomainBase; import google.registry.model.eppcommon.ProtocolDefinition; import google.registry.model.eppoutput.EppOutput; import google.registry.request.Action; -import google.registry.request.Action.Method; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.request.lock.LockHandler; @@ -60,12 +59,17 @@ import org.joda.time.Duration; *

Note that this action works by running a superuser EPP domain delete command, and as a side * effect of when domains are deleted (just past their expiration date), they are invariably in the * autorenew grace period when this happens. + * + *

Note also that the delete flow may fail in the uncommon case that a non-autorenewing domain + * has a subordinate host. It is not trivial to handle this case automatically (as said host may be + * in use by other domains), nor is it possible to take the correct action without exercising some + * human judgment. Accordingly, such deletes will fail with SEVERE-level log messages every day when + * this action runs, thus alerting us that human action is needed to correctly process the delete. */ @Action( service = Action.Service.BACKEND, path = DeleteExpiredDomainsAction.PATH, - auth = Auth.AUTH_INTERNAL_OR_ADMIN, - method = Method.POST) + auth = Auth.AUTH_INTERNAL_OR_ADMIN) public class DeleteExpiredDomainsAction implements Runnable { public static final String PATH = "/_dr/task/deleteExpiredDomains"; diff --git a/core/src/main/java/google/registry/env/alpha/default/WEB-INF/cron.xml b/core/src/main/java/google/registry/env/alpha/default/WEB-INF/cron.xml index 67f8a96d9..090503b80 100644 --- a/core/src/main/java/google/registry/env/alpha/default/WEB-INF/cron.xml +++ b/core/src/main/java/google/registry/env/alpha/default/WEB-INF/cron.xml @@ -142,6 +142,16 @@ backend + + + + This job runs an action that deletes domains that are past their + autorenew end date. + + every day 03:07 + backend + + diff --git a/core/src/main/java/google/registry/env/crash/default/WEB-INF/cron.xml b/core/src/main/java/google/registry/env/crash/default/WEB-INF/cron.xml index a2468a0d6..690893283 100644 --- a/core/src/main/java/google/registry/env/crash/default/WEB-INF/cron.xml +++ b/core/src/main/java/google/registry/env/crash/default/WEB-INF/cron.xml @@ -190,4 +190,14 @@ backend + + + + This job runs an action that deletes domains that are past their + autorenew end date. + + every day 03:07 + backend + + diff --git a/core/src/main/java/google/registry/env/production/default/WEB-INF/cron.xml b/core/src/main/java/google/registry/env/production/default/WEB-INF/cron.xml index 05a16f86e..a4325a984 100644 --- a/core/src/main/java/google/registry/env/production/default/WEB-INF/cron.xml +++ b/core/src/main/java/google/registry/env/production/default/WEB-INF/cron.xml @@ -183,6 +183,16 @@ backend + + + + This job runs an action that deletes domains that are past their + autorenew end date. + + every day 03:07 + backend + + diff --git a/core/src/main/java/google/registry/env/qa/default/WEB-INF/cron.xml b/core/src/main/java/google/registry/env/qa/default/WEB-INF/cron.xml index 4d60720b9..87a444708 100644 --- a/core/src/main/java/google/registry/env/qa/default/WEB-INF/cron.xml +++ b/core/src/main/java/google/registry/env/qa/default/WEB-INF/cron.xml @@ -72,4 +72,14 @@ backend + + + + This job runs an action that deletes domains that are past their + autorenew end date. + + every day 03:07 + backend + + diff --git a/core/src/main/java/google/registry/env/sandbox/default/WEB-INF/cron.xml b/core/src/main/java/google/registry/env/sandbox/default/WEB-INF/cron.xml index 52e423499..6d0ff575a 100644 --- a/core/src/main/java/google/registry/env/sandbox/default/WEB-INF/cron.xml +++ b/core/src/main/java/google/registry/env/sandbox/default/WEB-INF/cron.xml @@ -158,6 +158,16 @@ backend + + + + This job runs an action that deletes domains that are past their + autorenew end date. + + every day 03:07 + backend + + diff --git a/core/src/test/resources/google/registry/module/backend/backend_routing.txt b/core/src/test/resources/google/registry/module/backend/backend_routing.txt index f52e3d54a..680c7ce45 100644 --- a/core/src/test/resources/google/registry/module/backend/backend_routing.txt +++ b/core/src/test/resources/google/registry/module/backend/backend_routing.txt @@ -9,7 +9,7 @@ PATH CLASS METHOD /_dr/task/checkDatastoreBackup CheckBackupAction POST,GET y INTERNAL,API APP ADMIN /_dr/task/copyDetailReports CopyDetailReportsAction POST n INTERNAL,API APP ADMIN /_dr/task/deleteContactsAndHosts DeleteContactsAndHostsAction GET n INTERNAL,API APP ADMIN -/_dr/task/deleteExpiredDomains DeleteExpiredDomainsAction POST n INTERNAL,API APP ADMIN +/_dr/task/deleteExpiredDomains DeleteExpiredDomainsAction GET n INTERNAL,API APP ADMIN /_dr/task/deleteLoadTestData DeleteLoadTestDataAction POST n INTERNAL,API APP ADMIN /_dr/task/deleteOldCommitLogs DeleteOldCommitLogsAction GET n INTERNAL,API APP ADMIN /_dr/task/deleteProberData DeleteProberDataAction POST n INTERNAL,API APP ADMIN