From 8547ad7941e672b37a41359b159856f82124ae27 Mon Sep 17 00:00:00 2001 From: gbrodman Date: Tue, 18 Nov 2025 14:31:40 -0500 Subject: [PATCH] Remove the concept of a GAE service endpoint (#2869) We don't need to support the mix of GAE and GKE any more so we can get rid of the GaeService bits and unify everything under one constant service. This also allows us to reduce the number of services down to four (FE, BE, PUBAPI, console) which is nice. --- .../batch/CannedScriptExecutionAction.java | 3 +- .../batch/CheckBulkComplianceAction.java | 6 +- .../registry/batch/CloudTasksUtils.java | 19 ++--- .../batch/DeleteExpiredDomainsAction.java | 3 +- .../batch/DeleteLoadTestDataAction.java | 3 +- .../batch/DeleteProberDataAction.java | 3 +- .../batch/ExpandBillingRecurrencesAction.java | 3 +- .../registry/batch/RelockDomainAction.java | 3 +- .../batch/RemoveAllDomainContactsAction.java | 3 +- .../ResaveAllEppResourcesPipelineAction.java | 3 +- .../registry/batch/ResaveEntityAction.java | 3 +- ...ingCertificateNotificationEmailAction.java | 3 +- .../batch/WipeOutContactHistoryPiiAction.java | 3 +- .../registry/bsa/BsaDownloadAction.java | 3 +- .../google/registry/bsa/BsaRefreshAction.java | 3 +- .../registry/bsa/BsaValidateAction.java | 3 +- .../UploadBsaUnavailableDomainsAction.java | 3 +- .../registry/config/RegistryConfig.java | 4 +- .../google/registry/cron/TldFanoutAction.java | 12 +--- .../registry/dns/PublishDnsUpdatesAction.java | 3 +- .../dns/ReadDnsRefreshRequestsAction.java | 3 +- .../google/registry/dns/RefreshDnsAction.java | 3 +- .../dns/RefreshDnsOnHostRenameAction.java | 3 +- .../export/ExportDomainListsAction.java | 3 +- .../export/ExportPremiumTermsAction.java | 3 +- .../export/ExportReservedTermsAction.java | 3 +- .../export/SyncGroupMembersAction.java | 3 +- .../sheet/SyncRegistrarsSheetAction.java | 3 +- .../google/registry/flows/CheckApiAction.java | 3 +- .../google/registry/flows/EppTlsAction.java | 3 +- .../google/registry/flows/EppToolAction.java | 3 +- .../registry/loadtest/LoadTestAction.java | 3 +- .../registry/module/ReadinessProbeAction.java | 15 ++-- .../whitebox/StackdriverModule.java | 32 ++------- .../registry/rdap/RdapAutnumAction.java | 3 +- .../registry/rdap/RdapDomainAction.java | 3 +- .../registry/rdap/RdapDomainSearchAction.java | 3 +- .../google/registry/rdap/RdapEmptyAction.java | 2 +- .../registry/rdap/RdapEntityAction.java | 3 +- .../registry/rdap/RdapEntitySearchAction.java | 3 +- .../google/registry/rdap/RdapHelpAction.java | 3 +- .../google/registry/rdap/RdapIpAction.java | 3 +- .../registry/rdap/RdapNameserverAction.java | 3 +- .../rdap/RdapNameserverSearchAction.java | 3 +- .../UpdateRegistrarRdapBaseUrlsAction.java | 3 +- .../google/registry/rde/BrdaCopyAction.java | 3 +- .../google/registry/rde/RdeReportAction.java | 3 +- .../google/registry/rde/RdeStagingAction.java | 3 +- .../google/registry/rde/RdeUploadAction.java | 3 +- .../billing/CopyDetailReportsAction.java | 3 +- .../billing/GenerateInvoicesAction.java | 3 +- .../billing/PublishInvoicesAction.java | 3 +- .../icann/IcannReportingStagingAction.java | 3 +- .../icann/IcannReportingUploadAction.java | 3 +- .../spec11/GenerateSpec11ReportAction.java | 3 +- .../spec11/PublishSpec11ReportAction.java | 3 +- .../java/google/registry/request/Action.java | 70 +------------------ .../registry/request/RequestHandler.java | 31 ++++---- .../registry/request/RouterDisplayHelper.java | 8 +-- .../registry/request/auth/AuthModule.java | 25 +++---- .../OidcTokenAuthenticationMechanism.java | 11 ++- .../registry/tmch/NordnUploadAction.java | 3 +- .../registry/tmch/NordnVerifyAction.java | 3 +- .../google/registry/tmch/TmchCrlAction.java | 3 +- .../google/registry/tmch/TmchDnlAction.java | 3 +- .../google/registry/tmch/TmchSmdrlAction.java | 3 +- .../google/registry/tools/CurlCommand.java | 12 +--- .../registry/tools/ServiceConnection.java | 20 +----- .../tools/server/CreateGroupsAction.java | 3 +- .../tools/server/GenerateZoneFilesAction.java | 3 +- .../tools/server/ListDomainsAction.java | 3 +- .../tools/server/ListHostsAction.java | 3 +- .../tools/server/ListPremiumListsAction.java | 3 +- .../tools/server/ListRegistrarsAction.java | 3 +- .../tools/server/ListReservedListsAction.java | 3 +- .../registry/tools/server/ListTldsAction.java | 3 +- .../server/RefreshDnsForAllDomainsAction.java | 3 +- .../tools/server/UpdateUserGroupAction.java | 3 +- .../tools/server/VerifyOteAction.java | 3 +- .../console/ConsoleDomainGetAction.java | 6 +- .../console/ConsoleDomainListAction.java | 6 +- .../console/ConsoleDumDownloadAction.java | 6 +- .../console/ConsoleEppPasswordAction.java | 6 +- .../console/ConsoleHistoryDataAction.java | 6 +- .../ui/server/console/ConsoleOteAction.java | 5 +- .../console/ConsoleRegistryLockAction.java | 6 +- .../ConsoleRegistryLockVerifyAction.java | 6 +- .../console/ConsoleUpdateRegistrarAction.java | 6 +- .../server/console/ConsoleUserDataAction.java | 6 +- .../ui/server/console/ConsoleUsersAction.java | 5 +- .../console/PasswordResetRequestAction.java | 3 +- .../console/PasswordResetVerifyAction.java | 3 +- .../ui/server/console/RegistrarsAction.java | 6 +- .../domains/ConsoleBulkDomainAction.java | 3 +- .../console/settings/ContactAction.java | 6 +- .../settings/RdapRegistrarFieldsAction.java | 6 +- .../console/settings/SecurityAction.java | 6 +- .../registry/batch/CloudTasksUtilsTest.java | 51 +++++--------- ...RegistryPipelineWorkerInitializerTest.java | 36 ---------- .../registry/cron/TldFanoutActionTest.java | 16 ++--- .../registry/model/OteAccountBuilderTest.java | 2 +- .../registry/model/console/UserTest.java | 4 +- .../registry/rdap/RdapActionBaseTest.java | 3 +- .../registry/request/RequestHandlerTest.java | 20 +++--- .../google/registry/request/RouterTest.java | 15 ++-- .../OidcTokenAuthenticationMechanismTest.java | 1 + .../registry/testing/CloudTasksHelper.java | 4 +- .../registry/tools/CurlCommandTest.java | 35 +++++----- .../tools/GcpProjectConnectionTest.java | 8 +-- .../registry/tools/ServiceConnectionTest.java | 29 ++------ .../registry/tools/SetupOteCommandTest.java | 2 +- .../registry/util/RegistryEnvironment.java | 11 --- 112 files changed, 240 insertions(+), 556 deletions(-) delete mode 100644 core/src/test/java/google/registry/beam/common/RegistryPipelineWorkerInitializerTest.java diff --git a/core/src/main/java/google/registry/batch/CannedScriptExecutionAction.java b/core/src/main/java/google/registry/batch/CannedScriptExecutionAction.java index 31a8905f3..ca68a2f7f 100644 --- a/core/src/main/java/google/registry/batch/CannedScriptExecutionAction.java +++ b/core/src/main/java/google/registry/batch/CannedScriptExecutionAction.java @@ -20,7 +20,6 @@ import static java.nio.charset.StandardCharsets.UTF_8; import com.google.common.flogger.FluentLogger; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.UrlConnectionService; @@ -43,7 +42,7 @@ import javax.net.ssl.HttpsURLConnection; * --service BACKEND -X POST -u '/_dr/task/executeCannedScript}'} */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/executeCannedScript", method = {POST, GET}, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/batch/CheckBulkComplianceAction.java b/core/src/main/java/google/registry/batch/CheckBulkComplianceAction.java index 5f33f7ba3..979f6bea2 100644 --- a/core/src/main/java/google/registry/batch/CheckBulkComplianceAction.java +++ b/core/src/main/java/google/registry/batch/CheckBulkComplianceAction.java @@ -27,7 +27,6 @@ import google.registry.model.domain.token.AllocationToken; import google.registry.model.domain.token.BulkPricingPackage; import google.registry.model.registrar.Registrar; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import google.registry.ui.server.SendEmailUtils; import google.registry.util.Clock; @@ -39,7 +38,10 @@ import org.joda.time.Days; * An action that checks all {@link BulkPricingPackage} objects for compliance with their max create * limit. */ -@Action(service = GaeService.BACKEND, path = CheckBulkComplianceAction.PATH, auth = Auth.AUTH_ADMIN) +@Action( + service = Action.Service.BACKEND, + path = CheckBulkComplianceAction.PATH, + auth = Auth.AUTH_ADMIN) public class CheckBulkComplianceAction implements Runnable { public static final String PATH = "/_dr/task/checkBulkCompliance"; diff --git a/core/src/main/java/google/registry/batch/CloudTasksUtils.java b/core/src/main/java/google/registry/batch/CloudTasksUtils.java index 64eed46b2..a11d48615 100644 --- a/core/src/main/java/google/registry/batch/CloudTasksUtils.java +++ b/core/src/main/java/google/registry/batch/CloudTasksUtils.java @@ -43,7 +43,6 @@ import google.registry.config.CredentialModule.ApplicationDefaultCredential; import google.registry.config.RegistryConfig.Config; import google.registry.request.Action; import google.registry.request.Action.Method; -import google.registry.request.Action.Service; import google.registry.util.Clock; import google.registry.util.CollectionUtils; import google.registry.util.GoogleCredentialsBundle; @@ -175,7 +174,7 @@ public class CloudTasksUtils implements Serializable { * the worker service */ protected Task createTask( - String path, Method method, Service service, Multimap params) { + String path, Method method, Action.Service service, Multimap params) { checkArgument( path != null && !path.isEmpty() && path.charAt(0) == '/', "The path must start with a '/'."); @@ -231,9 +230,7 @@ public class CloudTasksUtils implements Serializable { method, actionClazz.getSimpleName(), allowedMethods); - Service service = - RegistryEnvironment.isOnJetty() ? Action.ServiceGetter.get(action) : action.service(); - return createTask(path, method, service, params); + return createTask(path, method, action.service(), params); } /** @@ -256,7 +253,7 @@ public class CloudTasksUtils implements Serializable { public Task createTaskWithJitter( String path, Method method, - Service service, + Action.Service service, Multimap params, Optional jitterSeconds) { if (jitterSeconds.isEmpty() || jitterSeconds.get() <= 0) { @@ -297,9 +294,7 @@ public class CloudTasksUtils implements Serializable { "Action class %s is not annotated with @Action", actionClazz.getSimpleName()); String path = action.path(); - Service service = - RegistryEnvironment.isOnJetty() ? Action.ServiceGetter.get(action) : action.service(); - return createTaskWithJitter(path, method, service, params, jitterSeconds); + return createTaskWithJitter(path, method, action.service(), params, jitterSeconds); } /** @@ -319,7 +314,7 @@ public class CloudTasksUtils implements Serializable { private Task createTaskWithDelay( String path, Method method, - Service service, + Action.Service service, Multimap params, Duration delay) { if (delay.isEqual(Duration.ZERO)) { @@ -354,9 +349,7 @@ public class CloudTasksUtils implements Serializable { Duration delay) { Action action = getAction(actionClazz); String path = action.path(); - Service service = - RegistryEnvironment.isOnJetty() ? Action.ServiceGetter.get(action) : action.service(); - return createTaskWithDelay(path, method, service, params, delay); + return createTaskWithDelay(path, method, action.service(), params, delay); } private static Action getAction(Class actionClazz) { diff --git a/core/src/main/java/google/registry/batch/DeleteExpiredDomainsAction.java b/core/src/main/java/google/registry/batch/DeleteExpiredDomainsAction.java index 356eb0485..528136034 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.eppcommon.ProtocolDefinition; import google.registry.model.eppoutput.EppOutput; import google.registry.persistence.transaction.QueryComposer.Comparator; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.request.lock.LockHandler; @@ -68,7 +67,7 @@ import org.joda.time.Duration; * this action runs, thus alerting us that human action is needed to correctly process the delete. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = DeleteExpiredDomainsAction.PATH, auth = Auth.AUTH_ADMIN) public class DeleteExpiredDomainsAction implements Runnable { diff --git a/core/src/main/java/google/registry/batch/DeleteLoadTestDataAction.java b/core/src/main/java/google/registry/batch/DeleteLoadTestDataAction.java index 5cf8141d9..50d8cf58c 100644 --- a/core/src/main/java/google/registry/batch/DeleteLoadTestDataAction.java +++ b/core/src/main/java/google/registry/batch/DeleteLoadTestDataAction.java @@ -37,7 +37,6 @@ import google.registry.model.reporting.HistoryEntry; import google.registry.model.reporting.HistoryEntryDao; import google.registry.persistence.VKey; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.util.Clock; @@ -55,7 +54,7 @@ import jakarta.inject.Inject; * production. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/deleteLoadTestData", method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/batch/DeleteProberDataAction.java b/core/src/main/java/google/registry/batch/DeleteProberDataAction.java index f22913e81..c34718b48 100644 --- a/core/src/main/java/google/registry/batch/DeleteProberDataAction.java +++ b/core/src/main/java/google/registry/batch/DeleteProberDataAction.java @@ -42,7 +42,6 @@ import google.registry.model.domain.Domain; import google.registry.model.domain.DomainHistory; import google.registry.model.tld.Tld.TldType; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.util.RegistryEnvironment; @@ -59,7 +58,7 @@ import org.joda.time.Duration; * billing events, along with their ForeignKeyDomainIndex entities. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/deleteProberData", method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/batch/ExpandBillingRecurrencesAction.java b/core/src/main/java/google/registry/batch/ExpandBillingRecurrencesAction.java index f03b4c995..b2034c94d 100644 --- a/core/src/main/java/google/registry/batch/ExpandBillingRecurrencesAction.java +++ b/core/src/main/java/google/registry/batch/ExpandBillingRecurrencesAction.java @@ -35,7 +35,6 @@ import google.registry.model.billing.BillingEvent; import google.registry.model.billing.BillingRecurrence; import google.registry.model.common.Cursor; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -51,7 +50,7 @@ import org.joda.time.DateTime; * BillingRecurrence} billing events into synthetic {@link BillingEvent} events. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/expandBillingRecurrences", auth = Auth.AUTH_ADMIN) public class ExpandBillingRecurrencesAction implements Runnable { diff --git a/core/src/main/java/google/registry/batch/RelockDomainAction.java b/core/src/main/java/google/registry/batch/RelockDomainAction.java index 6f27a0a67..710ead346 100644 --- a/core/src/main/java/google/registry/batch/RelockDomainAction.java +++ b/core/src/main/java/google/registry/batch/RelockDomainAction.java @@ -32,7 +32,6 @@ import google.registry.model.eppcommon.StatusValue; import google.registry.model.tld.RegistryLockDao; import google.registry.persistence.VKey; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -47,7 +46,7 @@ import org.joda.time.Duration; /** Task that re-locks a previously-Registry-Locked domain after a predetermined period of time. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = RelockDomainAction.PATH, method = POST, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/batch/RemoveAllDomainContactsAction.java b/core/src/main/java/google/registry/batch/RemoveAllDomainContactsAction.java index 0ddc5f242..9deef62ce 100644 --- a/core/src/main/java/google/registry/batch/RemoveAllDomainContactsAction.java +++ b/core/src/main/java/google/registry/batch/RemoveAllDomainContactsAction.java @@ -44,7 +44,6 @@ import google.registry.model.eppcommon.ProtocolDefinition; import google.registry.model.eppoutput.EppOutput; import google.registry.persistence.VKey; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.request.lock.LockHandler; @@ -67,7 +66,7 @@ import org.joda.time.Duration; * leaving behind a record recording that update. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = RemoveAllDomainContactsAction.PATH, method = Action.Method.POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/batch/ResaveAllEppResourcesPipelineAction.java b/core/src/main/java/google/registry/batch/ResaveAllEppResourcesPipelineAction.java index c2acbc274..3b905bf26 100644 --- a/core/src/main/java/google/registry/batch/ResaveAllEppResourcesPipelineAction.java +++ b/core/src/main/java/google/registry/batch/ResaveAllEppResourcesPipelineAction.java @@ -28,7 +28,6 @@ import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; import google.registry.config.RegistryConfig.Config; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -54,7 +53,7 @@ import jakarta.inject.Inject; *

This runs the {@link google.registry.beam.resave.ResaveAllEppResourcesPipeline}. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = ResaveAllEppResourcesPipelineAction.PATH, auth = Auth.AUTH_ADMIN) public class ResaveAllEppResourcesPipelineAction implements Runnable { diff --git a/core/src/main/java/google/registry/batch/ResaveEntityAction.java b/core/src/main/java/google/registry/batch/ResaveEntityAction.java index 60ef77810..462ac966d 100644 --- a/core/src/main/java/google/registry/batch/ResaveEntityAction.java +++ b/core/src/main/java/google/registry/batch/ResaveEntityAction.java @@ -25,7 +25,6 @@ import com.google.common.flogger.FluentLogger; import google.registry.model.EppResource; import google.registry.persistence.VKey; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Action.Method; import google.registry.request.Parameter; import google.registry.request.Response; @@ -40,7 +39,7 @@ import org.joda.time.DateTime; *

{@link EppResource}s will be projected forward to the current time. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = ResaveEntityAction.PATH, auth = Auth.AUTH_ADMIN, method = Method.POST) diff --git a/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java b/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java index b727a5749..4ee917951 100644 --- a/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java +++ b/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java @@ -35,7 +35,6 @@ import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarPoc; import google.registry.model.registrar.RegistrarPoc.Type; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.EmailMessage; @@ -50,7 +49,7 @@ import org.joda.time.format.DateTimeFormatter; /** An action that sends notification emails to registrars whose certificates are expiring soon. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = SendExpiringCertificateNotificationEmailAction.PATH, auth = Auth.AUTH_ADMIN) public class SendExpiringCertificateNotificationEmailAction implements Runnable { diff --git a/core/src/main/java/google/registry/batch/WipeOutContactHistoryPiiAction.java b/core/src/main/java/google/registry/batch/WipeOutContactHistoryPiiAction.java index 9e36ac15b..0bf50fe9e 100644 --- a/core/src/main/java/google/registry/batch/WipeOutContactHistoryPiiAction.java +++ b/core/src/main/java/google/registry/batch/WipeOutContactHistoryPiiAction.java @@ -30,7 +30,6 @@ import google.registry.beam.wipeout.WipeOutContactHistoryPiiPipeline; import google.registry.config.RegistryConfig.Config; import google.registry.model.contact.ContactHistory; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -49,7 +48,7 @@ import org.joda.time.DateTime; * time. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = WipeOutContactHistoryPiiAction.PATH, auth = Auth.AUTH_ADMIN) public class WipeOutContactHistoryPiiAction implements Runnable { diff --git a/core/src/main/java/google/registry/bsa/BsaDownloadAction.java b/core/src/main/java/google/registry/bsa/BsaDownloadAction.java index f99df1575..e33268498 100644 --- a/core/src/main/java/google/registry/bsa/BsaDownloadAction.java +++ b/core/src/main/java/google/registry/bsa/BsaDownloadAction.java @@ -41,7 +41,6 @@ import google.registry.bsa.persistence.DownloadScheduler; import google.registry.config.RegistryConfig.Config; import google.registry.model.tld.Tlds; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; @@ -51,7 +50,7 @@ import java.util.Optional; import java.util.stream.Stream; @Action( - service = GaeService.BSA, + service = Action.Service.BACKEND, path = BsaDownloadAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/bsa/BsaRefreshAction.java b/core/src/main/java/google/registry/bsa/BsaRefreshAction.java index acee8f7fc..3ba22b18a 100644 --- a/core/src/main/java/google/registry/bsa/BsaRefreshAction.java +++ b/core/src/main/java/google/registry/bsa/BsaRefreshAction.java @@ -31,7 +31,6 @@ import google.registry.bsa.persistence.RefreshScheduler; import google.registry.config.RegistryConfig.Config; import google.registry.model.tld.Tlds; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.BatchedStreams; @@ -42,7 +41,7 @@ import java.util.stream.Stream; import org.joda.time.Duration; @Action( - service = GaeService.BSA, + service = Action.Service.BACKEND, path = BsaRefreshAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/bsa/BsaValidateAction.java b/core/src/main/java/google/registry/bsa/BsaValidateAction.java index 4ade7527e..a46b2c53f 100644 --- a/core/src/main/java/google/registry/bsa/BsaValidateAction.java +++ b/core/src/main/java/google/registry/bsa/BsaValidateAction.java @@ -53,7 +53,6 @@ import google.registry.model.domain.Domain; import google.registry.model.tld.Tld; import google.registry.model.tld.Tld.TldType; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; @@ -66,7 +65,7 @@ import org.joda.time.Duration; /** Validates the BSA data in the database against the most recent block lists. */ @Action( - service = GaeService.BSA, + service = Action.Service.BACKEND, path = BsaValidateAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/bsa/UploadBsaUnavailableDomainsAction.java b/core/src/main/java/google/registry/bsa/UploadBsaUnavailableDomainsAction.java index ea3bac08a..c2317ea9d 100644 --- a/core/src/main/java/google/registry/bsa/UploadBsaUnavailableDomainsAction.java +++ b/core/src/main/java/google/registry/bsa/UploadBsaUnavailableDomainsAction.java @@ -42,7 +42,6 @@ import google.registry.model.tld.Tld; import google.registry.model.tld.Tld.TldType; import google.registry.model.tld.label.ReservedList; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import google.registry.util.Clock; import jakarta.inject.Inject; @@ -78,7 +77,7 @@ import org.joda.time.DateTime; *

The file is also uploaded to GCS to preserve it as a record for ourselves. */ @Action( - service = GaeService.BSA, + service = Action.Service.BACKEND, path = "/_dr/task/uploadBsaUnavailableNames", method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/config/RegistryConfig.java b/core/src/main/java/google/registry/config/RegistryConfig.java index 1fa65df5a..4f71d7d07 100644 --- a/core/src/main/java/google/registry/config/RegistryConfig.java +++ b/core/src/main/java/google/registry/config/RegistryConfig.java @@ -37,7 +37,7 @@ import google.registry.bsa.UploadBsaUnavailableDomainsAction; import google.registry.dns.ReadDnsRefreshRequestsAction; import google.registry.model.common.DnsRefreshRequest; import google.registry.persistence.transaction.JpaTransactionManager; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.util.RegistryEnvironment; import google.registry.util.YamlUtils; import jakarta.inject.Named; @@ -1444,7 +1444,7 @@ public final class RegistryConfig { return CONFIG_SETTINGS.get().gcpProject.baseDomain; } - public static URL getServiceUrl(GkeService service) { + public static URL getServiceUrl(Service service) { return makeUrl(String.format("https://%s.%s", service.getServiceId(), getBaseDomain())); } diff --git a/core/src/main/java/google/registry/cron/TldFanoutAction.java b/core/src/main/java/google/registry/cron/TldFanoutAction.java index 1324550c5..31957cf45 100644 --- a/core/src/main/java/google/registry/cron/TldFanoutAction.java +++ b/core/src/main/java/google/registry/cron/TldFanoutAction.java @@ -40,14 +40,12 @@ import com.google.common.collect.Streams; import com.google.common.flogger.FluentLogger; import google.registry.batch.CloudTasksUtils; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.ParameterMap; import google.registry.request.RequestParameters; import google.registry.request.Response; import google.registry.request.auth.Auth; -import google.registry.util.RegistryEnvironment; import jakarta.inject.Inject; import java.util.Optional; import java.util.stream.Stream; @@ -80,7 +78,7 @@ import java.util.stream.Stream; * */ @Action( - service = GaeService.BACKEND, + service = Service.BACKEND, path = "/_dr/cron/fanout", automaticallyPrintOk = true, auth = Auth.AUTH_ADMIN) @@ -160,10 +158,6 @@ public final class TldFanoutAction implements Runnable { params.put(RequestParameters.PARAM_TLD, tld); } return cloudTasksUtils.createTaskWithJitter( - endpoint, - Action.Method.POST, - RegistryEnvironment.isOnJetty() ? GkeService.BACKEND : GaeService.BACKEND, - params, - jitterSeconds); + endpoint, Action.Method.POST, Service.BACKEND, params, jitterSeconds); } } diff --git a/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java b/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java index 77d73a2da..f26fd3077 100644 --- a/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java +++ b/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java @@ -52,7 +52,6 @@ import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarPoc; import google.registry.model.tld.Tld; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Header; import google.registry.request.HttpException.ServiceUnavailableException; import google.registry.request.Parameter; @@ -72,7 +71,7 @@ import org.joda.time.Duration; /** Task that sends domain and host updates to the DNS server. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = PublishDnsUpdatesAction.PATH, method = POST, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/dns/ReadDnsRefreshRequestsAction.java b/core/src/main/java/google/registry/dns/ReadDnsRefreshRequestsAction.java index 184ca8d3c..f9ec789b4 100644 --- a/core/src/main/java/google/registry/dns/ReadDnsRefreshRequestsAction.java +++ b/core/src/main/java/google/registry/dns/ReadDnsRefreshRequestsAction.java @@ -45,7 +45,6 @@ import google.registry.dns.DnsUtils.TargetType; import google.registry.model.common.DnsRefreshRequest; import google.registry.model.tld.Tld; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.util.Clock; @@ -60,7 +59,7 @@ import org.joda.time.Duration; * table. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/readDnsRefreshRequests", automaticallyPrintOk = true, method = POST, diff --git a/core/src/main/java/google/registry/dns/RefreshDnsAction.java b/core/src/main/java/google/registry/dns/RefreshDnsAction.java index 583702dac..0e4c7508b 100644 --- a/core/src/main/java/google/registry/dns/RefreshDnsAction.java +++ b/core/src/main/java/google/registry/dns/RefreshDnsAction.java @@ -26,7 +26,6 @@ import google.registry.model.annotations.ExternalMessagingName; import google.registry.model.domain.Domain; import google.registry.model.host.Host; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.NotFoundException; import google.registry.request.Parameter; @@ -36,7 +35,7 @@ import jakarta.inject.Inject; /** Action that manually triggers refresh of DNS information. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/dnsRefresh", automaticallyPrintOk = true, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/dns/RefreshDnsOnHostRenameAction.java b/core/src/main/java/google/registry/dns/RefreshDnsOnHostRenameAction.java index d0d629278..edaca7984 100644 --- a/core/src/main/java/google/registry/dns/RefreshDnsOnHostRenameAction.java +++ b/core/src/main/java/google/registry/dns/RefreshDnsOnHostRenameAction.java @@ -26,7 +26,6 @@ import google.registry.model.domain.Domain; import google.registry.model.host.Host; import google.registry.persistence.VKey; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -34,7 +33,7 @@ import jakarta.inject.Inject; import org.joda.time.DateTime; @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = PATH, method = Action.Method.POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/export/ExportDomainListsAction.java b/core/src/main/java/google/registry/export/ExportDomainListsAction.java index 02223c5ed..fd5bb265e 100644 --- a/core/src/main/java/google/registry/export/ExportDomainListsAction.java +++ b/core/src/main/java/google/registry/export/ExportDomainListsAction.java @@ -36,7 +36,6 @@ import google.registry.model.eppcommon.StatusValue; import google.registry.model.tld.Tld; import google.registry.model.tld.Tld.TldType; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import google.registry.storage.drive.DriveConnection; import google.registry.util.Clock; @@ -58,7 +57,7 @@ import org.joda.time.DateTimeZone; * name TLD.txt into the domain-lists bucket. Note that this overwrites the files in place. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/exportDomainLists", method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/export/ExportPremiumTermsAction.java b/core/src/main/java/google/registry/export/ExportPremiumTermsAction.java index 6a7b44cc1..c9d962db4 100644 --- a/core/src/main/java/google/registry/export/ExportPremiumTermsAction.java +++ b/core/src/main/java/google/registry/export/ExportPremiumTermsAction.java @@ -33,7 +33,6 @@ import google.registry.model.tld.Tld; import google.registry.model.tld.label.PremiumList.PremiumEntry; import google.registry.model.tld.label.PremiumListDao; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.RequestParameters; import google.registry.request.Response; @@ -46,7 +45,7 @@ import java.util.SortedSet; /** Action that exports the premium terms list for a TLD to Google Drive. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/exportPremiumTerms", method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/export/ExportReservedTermsAction.java b/core/src/main/java/google/registry/export/ExportReservedTermsAction.java index a1815f41e..0ac42a1a4 100644 --- a/core/src/main/java/google/registry/export/ExportReservedTermsAction.java +++ b/core/src/main/java/google/registry/export/ExportReservedTermsAction.java @@ -25,7 +25,6 @@ import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; import google.registry.model.tld.Tld; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.RequestParameters; import google.registry.request.Response; @@ -35,7 +34,7 @@ import jakarta.inject.Inject; /** Action that exports the publicly viewable reserved terms list for a TLD to Google Drive. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/exportReservedTerms", method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/export/SyncGroupMembersAction.java b/core/src/main/java/google/registry/export/SyncGroupMembersAction.java index 992d55eac..599dbae0c 100644 --- a/core/src/main/java/google/registry/export/SyncGroupMembersAction.java +++ b/core/src/main/java/google/registry/export/SyncGroupMembersAction.java @@ -34,7 +34,6 @@ import google.registry.groups.GroupsConnection.Role; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarPoc; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Retrier; @@ -53,7 +52,7 @@ import javax.annotation.Nullable; *

This uses the Directory API. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/syncGroupMembers", method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/export/sheet/SyncRegistrarsSheetAction.java b/core/src/main/java/google/registry/export/sheet/SyncRegistrarsSheetAction.java index ba3a41ec4..b293b8e4b 100644 --- a/core/src/main/java/google/registry/export/sheet/SyncRegistrarsSheetAction.java +++ b/core/src/main/java/google/registry/export/sheet/SyncRegistrarsSheetAction.java @@ -24,7 +24,6 @@ import static jakarta.servlet.http.HttpServletResponse.SC_OK; import com.google.common.flogger.FluentLogger; import google.registry.config.RegistryConfig.Config; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -55,7 +54,7 @@ import org.joda.time.Duration; * @see SyncRegistrarsSheet */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = SyncRegistrarsSheetAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/flows/CheckApiAction.java b/core/src/main/java/google/registry/flows/CheckApiAction.java index a4bec0a5a..9b282c7fa 100644 --- a/core/src/main/java/google/registry/flows/CheckApiAction.java +++ b/core/src/main/java/google/registry/flows/CheckApiAction.java @@ -54,7 +54,6 @@ import google.registry.model.tld.label.ReservationType; import google.registry.monitoring.whitebox.CheckApiMetric; import google.registry.monitoring.whitebox.CheckApiMetric.Availability; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.RequestParameters; import google.registry.request.Response; @@ -72,7 +71,7 @@ import org.joda.time.DateTime; * user controlled, lest it open an XSS vector. Do not modify this to return the domain name in the * response. */ -@Action(service = GaeService.PUBAPI, path = "/check", auth = Auth.AUTH_PUBLIC) +@Action(service = Action.Service.PUBAPI, path = "/check", auth = Auth.AUTH_PUBLIC) public class CheckApiAction implements Runnable { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); diff --git a/core/src/main/java/google/registry/flows/EppTlsAction.java b/core/src/main/java/google/registry/flows/EppTlsAction.java index e97450695..6462a84ec 100644 --- a/core/src/main/java/google/registry/flows/EppTlsAction.java +++ b/core/src/main/java/google/registry/flows/EppTlsAction.java @@ -15,7 +15,6 @@ package google.registry.flows; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Action.Method; import google.registry.request.Payload; import google.registry.request.auth.Auth; @@ -27,7 +26,7 @@ import jakarta.servlet.http.HttpServletRequest; * to RFC 5730. Commands must be requested via POST. */ @Action( - service = GaeService.DEFAULT, + service = Action.Service.FRONTEND, path = "/_dr/epp", method = Method.POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/flows/EppToolAction.java b/core/src/main/java/google/registry/flows/EppToolAction.java index ba3edd10a..73d1e49c3 100644 --- a/core/src/main/java/google/registry/flows/EppToolAction.java +++ b/core/src/main/java/google/registry/flows/EppToolAction.java @@ -22,7 +22,6 @@ import dagger.Module; import dagger.Provides; import google.registry.model.eppcommon.ProtocolDefinition; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Action.Method; import google.registry.request.Parameter; import google.registry.request.auth.Auth; @@ -31,7 +30,7 @@ import jakarta.servlet.http.HttpServletRequest; /** Runs EPP commands directly without logging in, verifying an XSRF token from the tool. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = EppToolAction.PATH, method = Method.POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/loadtest/LoadTestAction.java b/core/src/main/java/google/registry/loadtest/LoadTestAction.java index 21aba6503..9cf9c6826 100644 --- a/core/src/main/java/google/registry/loadtest/LoadTestAction.java +++ b/core/src/main/java/google/registry/loadtest/LoadTestAction.java @@ -28,7 +28,6 @@ import com.google.protobuf.Timestamp; import google.registry.batch.CloudTasksUtils; import google.registry.flows.EppToolAction; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.util.Clock; @@ -52,7 +51,7 @@ import org.joda.time.DateTime; * least one must be specified in order for load testing to do anything. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = LoadTestAction.PATH, method = Action.Method.POST, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/module/ReadinessProbeAction.java b/core/src/main/java/google/registry/module/ReadinessProbeAction.java index 39984675a..924b37b55 100644 --- a/core/src/main/java/google/registry/module/ReadinessProbeAction.java +++ b/core/src/main/java/google/registry/module/ReadinessProbeAction.java @@ -19,8 +19,7 @@ import static jakarta.servlet.http.HttpServletResponse.SC_OK; import com.google.common.flogger.FluentLogger; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.auth.Auth; import jakarta.inject.Inject; import jakarta.servlet.http.HttpServletResponse; @@ -53,8 +52,7 @@ public class ReadinessProbeAction implements Runnable { } @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ReadinessProbeConsoleAction.PATH, auth = Auth.AUTH_PUBLIC) public static class ReadinessProbeConsoleAction extends ReadinessProbeAction { @@ -66,11 +64,7 @@ public class ReadinessProbeAction implements Runnable { } } - @Action( - service = GaeService.PUBAPI, - gkeService = GkeService.PUBAPI, - path = ReadinessProbeActionPubApi.PATH, - auth = Auth.AUTH_PUBLIC) + @Action(service = Service.PUBAPI, path = ReadinessProbeActionPubApi.PATH, auth = Auth.AUTH_PUBLIC) public static class ReadinessProbeActionPubApi extends ReadinessProbeAction { public static final String PATH = "/ready/pubapi"; @@ -81,8 +75,7 @@ public class ReadinessProbeAction implements Runnable { } @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.FRONTEND, + service = Service.FRONTEND, path = ReadinessProbeActionFrontend.PATH, auth = Auth.AUTH_PUBLIC) public static final class ReadinessProbeActionFrontend extends ReadinessProbeAction { diff --git a/core/src/main/java/google/registry/monitoring/whitebox/StackdriverModule.java b/core/src/main/java/google/registry/monitoring/whitebox/StackdriverModule.java index 100beea22..aa89ec1d5 100644 --- a/core/src/main/java/google/registry/monitoring/whitebox/StackdriverModule.java +++ b/core/src/main/java/google/registry/monitoring/whitebox/StackdriverModule.java @@ -16,7 +16,6 @@ package google.registry.monitoring.whitebox; import com.google.api.services.monitoring.v3.Monitoring; import com.google.api.services.monitoring.v3.model.MonitoredResource; -import com.google.common.collect.ImmutableMap; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.monitoring.metrics.MetricReporter; import com.google.monitoring.metrics.MetricWriter; @@ -29,7 +28,6 @@ import google.registry.config.RegistryConfig.Config; import google.registry.util.Clock; import google.registry.util.GoogleCredentialsBundle; import google.registry.util.MetricParameters; -import google.registry.util.RegistryEnvironment; import jakarta.inject.Named; import jakarta.inject.Singleton; import org.joda.time.Duration; @@ -40,13 +38,9 @@ public final class StackdriverModule { private StackdriverModule() {} - // We need a fake GCE zone to appease Stackdriver's resource model. - // TODO(b/265973059): Switch to resource type "gke_container". - private static final String SPOOFED_GCE_ZONE = "us-central1-f"; - - // We cannot use a static fake intance ID which is shared by all instances, because metrics might - // be flushed to stackdriver with delays, which lead to time inversion erros when another instance - // has already written a data point at a later time. + // We cannot use a static fake instance ID which is shared by all instances, because metrics might + // be flushed to stackdriver with delays, which lead to time inversion errors when another + // instance has already written a data point at a later time. @Singleton @Provides @Named("spoofedGceInstanceId") @@ -72,23 +66,11 @@ public final class StackdriverModule { Lazy gkeParameters, @Config("projectId") String projectId, @Config("stackdriverMaxQps") int maxQps, - @Config("stackdriverMaxPointsPerRequest") int maxPointsPerRequest, - @Named("spoofedGceInstanceId") String instanceId) { + @Config("stackdriverMaxPointsPerRequest") int maxPointsPerRequest) { MonitoredResource resource = - RegistryEnvironment.isOnJetty() - ? new MonitoredResource() - .setType("gke_container") - .setLabels(gkeParameters.get().makeLabelsMap()) - : - // The MonitoredResource for GAE apps is not writable (and missing fields anyway) so we - // just use the gce_instance resource type instead. - new MonitoredResource() - .setType("gce_instance") - .setLabels( - ImmutableMap.of( - // The "zone" field MUST be a valid GCE zone, so we fake one. - "zone", SPOOFED_GCE_ZONE, "instance_id", instanceId)); - + new MonitoredResource() + .setType("gke_container") + .setLabels(gkeParameters.get().makeLabelsMap()); return new StackdriverWriter( monitoringClient, projectId, resource, maxQps, maxPointsPerRequest); } diff --git a/core/src/main/java/google/registry/rdap/RdapAutnumAction.java b/core/src/main/java/google/registry/rdap/RdapAutnumAction.java index bb1ef8fed..1f9f4c327 100644 --- a/core/src/main/java/google/registry/rdap/RdapAutnumAction.java +++ b/core/src/main/java/google/registry/rdap/RdapAutnumAction.java @@ -20,7 +20,6 @@ import static google.registry.request.Action.Method.HEAD; import google.registry.rdap.RdapMetrics.EndpointType; import google.registry.rdap.RdapObjectClasses.ReplyPayloadBase; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.NotImplementedException; import google.registry.request.auth.Auth; import jakarta.inject.Inject; @@ -32,7 +31,7 @@ import jakarta.inject.Inject; * ARIN, not domain registries. */ @Action( - service = GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = "/rdap/autnum/", method = {GET, HEAD}, isPrefix = true, diff --git a/core/src/main/java/google/registry/rdap/RdapDomainAction.java b/core/src/main/java/google/registry/rdap/RdapDomainAction.java index 6ab9e5a37..e472de198 100644 --- a/core/src/main/java/google/registry/rdap/RdapDomainAction.java +++ b/core/src/main/java/google/registry/rdap/RdapDomainAction.java @@ -29,7 +29,6 @@ import google.registry.rdap.RdapJsonFormatter.OutputDataType; import google.registry.rdap.RdapMetrics.EndpointType; import google.registry.rdap.RdapObjectClasses.RdapDomain; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.NotFoundException; import google.registry.request.auth.Auth; @@ -38,7 +37,7 @@ import java.util.Optional; /** RDAP action for domain requests. */ @Action( - service = GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = "/rdap/domain/", method = {GET, HEAD}, isPrefix = true, diff --git a/core/src/main/java/google/registry/rdap/RdapDomainSearchAction.java b/core/src/main/java/google/registry/rdap/RdapDomainSearchAction.java index f4e13050b..666d038b0 100644 --- a/core/src/main/java/google/registry/rdap/RdapDomainSearchAction.java +++ b/core/src/main/java/google/registry/rdap/RdapDomainSearchAction.java @@ -42,7 +42,6 @@ import google.registry.rdap.RdapMetrics.WildcardType; import google.registry.rdap.RdapSearchResults.DomainSearchResponse; import google.registry.rdap.RdapSearchResults.IncompletenessWarningType; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.NotFoundException; import google.registry.request.HttpException.UnprocessableEntityException; @@ -71,7 +70,7 @@ import org.joda.time.DateTime; * Data Access Protocol (RDAP) */ @Action( - service = GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = "/rdap/domains", method = {GET, HEAD}, auth = Auth.AUTH_PUBLIC) diff --git a/core/src/main/java/google/registry/rdap/RdapEmptyAction.java b/core/src/main/java/google/registry/rdap/RdapEmptyAction.java index 59384e2c2..bf8987eb4 100644 --- a/core/src/main/java/google/registry/rdap/RdapEmptyAction.java +++ b/core/src/main/java/google/registry/rdap/RdapEmptyAction.java @@ -30,7 +30,7 @@ import java.io.IOException; * them the help response. */ @Action( - service = Action.GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = "/rdap/", method = {GET, HEAD}, auth = Auth.AUTH_PUBLIC) diff --git a/core/src/main/java/google/registry/rdap/RdapEntityAction.java b/core/src/main/java/google/registry/rdap/RdapEntityAction.java index fe63a366c..e63b5dae2 100644 --- a/core/src/main/java/google/registry/rdap/RdapEntityAction.java +++ b/core/src/main/java/google/registry/rdap/RdapEntityAction.java @@ -25,7 +25,6 @@ import google.registry.rdap.RdapJsonFormatter.OutputDataType; import google.registry.rdap.RdapMetrics.EndpointType; import google.registry.rdap.RdapObjectClasses.RdapEntity; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.NotFoundException; import google.registry.request.auth.Auth; import jakarta.inject.Inject; @@ -40,7 +39,7 @@ import java.util.Optional; * the handle of the entity with the registrar role is be [sic] equal to the IANA Registrar ID. */ @Action( - service = GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = "/rdap/entity/", method = {GET, HEAD}, isPrefix = true, diff --git a/core/src/main/java/google/registry/rdap/RdapEntitySearchAction.java b/core/src/main/java/google/registry/rdap/RdapEntitySearchAction.java index 2bec9c3cf..2490ec916 100644 --- a/core/src/main/java/google/registry/rdap/RdapEntitySearchAction.java +++ b/core/src/main/java/google/registry/rdap/RdapEntitySearchAction.java @@ -31,7 +31,6 @@ import google.registry.rdap.RdapMetrics.SearchType; import google.registry.rdap.RdapSearchResults.EntitySearchResponse; import google.registry.rdap.RdapSearchResults.IncompletenessWarningType; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.NotFoundException; import google.registry.request.HttpException.UnprocessableEntityException; @@ -56,7 +55,7 @@ import java.util.Optional; * Data Access Protocol (RDAP) */ @Action( - service = GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = "/rdap/entities", method = {GET, HEAD}, auth = Auth.AUTH_PUBLIC) diff --git a/core/src/main/java/google/registry/rdap/RdapHelpAction.java b/core/src/main/java/google/registry/rdap/RdapHelpAction.java index 9b64bf875..ef79a4bef 100644 --- a/core/src/main/java/google/registry/rdap/RdapHelpAction.java +++ b/core/src/main/java/google/registry/rdap/RdapHelpAction.java @@ -22,7 +22,6 @@ import google.registry.rdap.RdapDataStructures.Notice; import google.registry.rdap.RdapMetrics.EndpointType; import google.registry.rdap.RdapObjectClasses.HelpResponse; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.NotFoundException; import google.registry.request.auth.Auth; import jakarta.inject.Inject; @@ -30,7 +29,7 @@ import java.util.Optional; /** RDAP action for help requests. */ @Action( - service = GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = RdapHelpAction.PATH, method = {GET, HEAD}, isPrefix = true, diff --git a/core/src/main/java/google/registry/rdap/RdapIpAction.java b/core/src/main/java/google/registry/rdap/RdapIpAction.java index 36d468cb4..f031cf745 100644 --- a/core/src/main/java/google/registry/rdap/RdapIpAction.java +++ b/core/src/main/java/google/registry/rdap/RdapIpAction.java @@ -20,7 +20,6 @@ import static google.registry.request.Action.Method.HEAD; import google.registry.rdap.RdapMetrics.EndpointType; import google.registry.rdap.RdapObjectClasses.ReplyPayloadBase; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.NotImplementedException; import google.registry.request.auth.Auth; import jakarta.inject.Inject; @@ -32,7 +31,7 @@ import jakarta.inject.Inject; * ARIN, not domain registries. */ @Action( - service = GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = "/rdap/ip/", method = {GET, HEAD}, isPrefix = true, diff --git a/core/src/main/java/google/registry/rdap/RdapNameserverAction.java b/core/src/main/java/google/registry/rdap/RdapNameserverAction.java index de734e17b..11e243dbe 100644 --- a/core/src/main/java/google/registry/rdap/RdapNameserverAction.java +++ b/core/src/main/java/google/registry/rdap/RdapNameserverAction.java @@ -26,7 +26,6 @@ import google.registry.rdap.RdapJsonFormatter.OutputDataType; import google.registry.rdap.RdapMetrics.EndpointType; import google.registry.rdap.RdapObjectClasses.RdapNameserver; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.NotFoundException; import google.registry.request.auth.Auth; @@ -35,7 +34,7 @@ import java.util.Optional; /** RDAP action for nameserver requests. */ @Action( - service = GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = "/rdap/nameserver/", method = {GET, HEAD}, isPrefix = true, diff --git a/core/src/main/java/google/registry/rdap/RdapNameserverSearchAction.java b/core/src/main/java/google/registry/rdap/RdapNameserverSearchAction.java index f4284b670..4bf25cbd5 100644 --- a/core/src/main/java/google/registry/rdap/RdapNameserverSearchAction.java +++ b/core/src/main/java/google/registry/rdap/RdapNameserverSearchAction.java @@ -34,7 +34,6 @@ import google.registry.rdap.RdapMetrics.SearchType; import google.registry.rdap.RdapSearchResults.IncompletenessWarningType; import google.registry.rdap.RdapSearchResults.NameserverSearchResponse; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.NotFoundException; import google.registry.request.HttpException.UnprocessableEntityException; @@ -57,7 +56,7 @@ import java.util.Optional; * Data Access Protocol (RDAP) */ @Action( - service = GaeService.PUBAPI, + service = Action.Service.PUBAPI, path = "/rdap/nameservers", method = {GET, HEAD}, auth = Auth.AUTH_PUBLIC) diff --git a/core/src/main/java/google/registry/rdap/UpdateRegistrarRdapBaseUrlsAction.java b/core/src/main/java/google/registry/rdap/UpdateRegistrarRdapBaseUrlsAction.java index 09becfe7d..8643845ac 100644 --- a/core/src/main/java/google/registry/rdap/UpdateRegistrarRdapBaseUrlsAction.java +++ b/core/src/main/java/google/registry/rdap/UpdateRegistrarRdapBaseUrlsAction.java @@ -27,7 +27,6 @@ import com.google.common.flogger.FluentLogger; import google.registry.model.registrar.Registrar; import google.registry.persistence.PersistenceModule; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.InternalServerErrorException; import google.registry.request.UrlConnectionService; import google.registry.request.UrlConnectionUtils; @@ -54,7 +53,7 @@ import org.apache.commons.csv.CSVRecord; * CSV endpoint requires no authentication. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/updateRegistrarRdapBaseUrls", automaticallyPrintOk = true, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/rde/BrdaCopyAction.java b/core/src/main/java/google/registry/rde/BrdaCopyAction.java index 95d682eec..9cd089bd1 100644 --- a/core/src/main/java/google/registry/rde/BrdaCopyAction.java +++ b/core/src/main/java/google/registry/rde/BrdaCopyAction.java @@ -32,7 +32,6 @@ import google.registry.model.rde.RdeNamingUtils; import google.registry.model.rde.RdeRevision; import google.registry.model.tld.Tld; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.NoContentException; import google.registry.request.Parameter; import google.registry.request.RequestParameters; @@ -63,7 +62,7 @@ import org.joda.time.DateTime; * Agreement */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = BrdaCopyAction.PATH, method = POST, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/rde/RdeReportAction.java b/core/src/main/java/google/registry/rde/RdeReportAction.java index 313a3a63e..cc50c01d9 100644 --- a/core/src/main/java/google/registry/rde/RdeReportAction.java +++ b/core/src/main/java/google/registry/rde/RdeReportAction.java @@ -36,7 +36,6 @@ import google.registry.model.rde.RdeRevision; import google.registry.model.tld.Tld; import google.registry.rde.EscrowTaskRunner.EscrowTask; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.NoContentException; import google.registry.request.Parameter; import google.registry.request.RequestParameters; @@ -54,7 +53,7 @@ import org.joda.time.Duration; * Action that uploads a small XML RDE report to ICANN after {@link RdeUploadAction} has finished. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = RdeReportAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/rde/RdeStagingAction.java b/core/src/main/java/google/registry/rde/RdeStagingAction.java index 5d4938def..6fde7d818 100644 --- a/core/src/main/java/google/registry/rde/RdeStagingAction.java +++ b/core/src/main/java/google/registry/rde/RdeStagingAction.java @@ -50,7 +50,6 @@ import google.registry.model.host.Host; import google.registry.model.rde.RdeMode; import google.registry.model.registrar.Registrar; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.BadRequestException; import google.registry.request.Parameter; import google.registry.request.RequestParameters; @@ -205,7 +204,7 @@ import org.joda.time.Duration; * Name Registration Data Objects Mapping */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = RdeStagingAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/rde/RdeUploadAction.java b/core/src/main/java/google/registry/rde/RdeUploadAction.java index 361094d96..36fa46e3f 100644 --- a/core/src/main/java/google/registry/rde/RdeUploadAction.java +++ b/core/src/main/java/google/registry/rde/RdeUploadAction.java @@ -50,7 +50,6 @@ import google.registry.model.tld.Tld; import google.registry.rde.EscrowTaskRunner.EscrowTask; import google.registry.rde.JSchSshSession.JSchSshSessionFactory; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.NoContentException; import google.registry.request.Parameter; import google.registry.request.RequestParameters; @@ -84,7 +83,7 @@ import org.joda.time.Duration; * RdeReportAction}. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = RdeUploadAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/reporting/billing/CopyDetailReportsAction.java b/core/src/main/java/google/registry/reporting/billing/CopyDetailReportsAction.java index 2bfd4abf1..e5a152ca1 100644 --- a/core/src/main/java/google/registry/reporting/billing/CopyDetailReportsAction.java +++ b/core/src/main/java/google/registry/reporting/billing/CopyDetailReportsAction.java @@ -33,7 +33,6 @@ import google.registry.gcs.GcsUtils; import google.registry.model.registrar.Registrar; import google.registry.reporting.billing.BillingModule.InvoiceDirectoryPrefix; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.storage.drive.DriveConnection; @@ -45,7 +44,7 @@ import java.util.Optional; /** Copy all registrar detail reports in a given bucket's subdirectory from GCS to Drive. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = CopyDetailReportsAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java b/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java index d4facdf68..c8e7a272f 100644 --- a/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java +++ b/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java @@ -32,7 +32,6 @@ import google.registry.config.RegistryConfig.Config; import google.registry.persistence.PersistenceModule; import google.registry.reporting.ReportingModule; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -51,7 +50,7 @@ import org.joda.time.YearMonth; * template. The pipeline then generates invoices for the month and stores them on GCS. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = GenerateInvoicesAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/reporting/billing/PublishInvoicesAction.java b/core/src/main/java/google/registry/reporting/billing/PublishInvoicesAction.java index ae0571d90..4c57c6855 100644 --- a/core/src/main/java/google/registry/reporting/billing/PublishInvoicesAction.java +++ b/core/src/main/java/google/registry/reporting/billing/PublishInvoicesAction.java @@ -30,7 +30,6 @@ import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; import google.registry.reporting.ReportingModule; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -49,7 +48,7 @@ import org.joda.time.YearMonth; * Job States */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = PublishInvoicesAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/reporting/icann/IcannReportingStagingAction.java b/core/src/main/java/google/registry/reporting/icann/IcannReportingStagingAction.java index 9484a9025..b8fe488f2 100644 --- a/core/src/main/java/google/registry/reporting/icann/IcannReportingStagingAction.java +++ b/core/src/main/java/google/registry/reporting/icann/IcannReportingStagingAction.java @@ -34,7 +34,6 @@ import google.registry.groups.GmailClient; import google.registry.reporting.ReportingModule; import google.registry.reporting.icann.IcannReportingModule.ReportType; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -66,7 +65,7 @@ import org.joda.time.format.DateTimeFormat; * 'transactions'. If none specified - defaults to generating both. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = IcannReportingStagingAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/reporting/icann/IcannReportingUploadAction.java b/core/src/main/java/google/registry/reporting/icann/IcannReportingUploadAction.java index c7524093f..703d8b8df 100644 --- a/core/src/main/java/google/registry/reporting/icann/IcannReportingUploadAction.java +++ b/core/src/main/java/google/registry/reporting/icann/IcannReportingUploadAction.java @@ -35,7 +35,6 @@ import google.registry.model.tld.Tld.TldType; import google.registry.model.tld.Tlds; import google.registry.persistence.VKey; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.ServiceUnavailableException; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -68,7 +67,7 @@ import org.joda.time.Duration; * Defaults to "icann/monthly/[last month in yyyy-MM format]". */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = IcannReportingUploadAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java b/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java index b45057713..e921a4d59 100644 --- a/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java +++ b/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java @@ -32,7 +32,6 @@ import google.registry.config.RegistryConfig.Config; import google.registry.keyring.api.KeyModule.Key; import google.registry.reporting.ReportingModule; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -50,7 +49,7 @@ import org.joda.time.LocalDate; * generates the specified month's Spec11 report and stores it on GCS. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = GenerateSpec11ReportAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/reporting/spec11/PublishSpec11ReportAction.java b/core/src/main/java/google/registry/reporting/spec11/PublishSpec11ReportAction.java index bb4267871..22160d57e 100644 --- a/core/src/main/java/google/registry/reporting/spec11/PublishSpec11ReportAction.java +++ b/core/src/main/java/google/registry/reporting/spec11/PublishSpec11ReportAction.java @@ -38,7 +38,6 @@ import google.registry.config.RegistryConfig.Config; import google.registry.reporting.ReportingModule; import google.registry.reporting.spec11.soy.Spec11EmailSoyInfo; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -57,7 +56,7 @@ import org.json.JSONException; * ImmutableSet)} on success or {@link Spec11EmailUtils#sendAlertEmail(String, String)} on failure. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = PublishSpec11ReportAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/request/Action.java b/core/src/main/java/google/registry/request/Action.java index 2a2a75418..ba6dcc4c2 100644 --- a/core/src/main/java/google/registry/request/Action.java +++ b/core/src/main/java/google/registry/request/Action.java @@ -14,7 +14,6 @@ package google.registry.request; -import static com.google.common.base.Preconditions.checkState; import google.registry.config.RegistryConfig; import google.registry.request.auth.Auth; @@ -38,46 +37,7 @@ public @interface Action { DELETE } - interface Service { - String getServiceId(); - - URL getServiceUrl(); - } - - enum GaeService implements Service { - BSA("bsa"), - DEFAULT("default"), - TOOLS("tools"), - BACKEND("backend"), - PUBAPI("pubapi"); - - private final String serviceId; - - GaeService(String serviceId) { - this.serviceId = serviceId; - } - - @Override - public String getServiceId() { - return serviceId; - } - - @Override - public URL getServiceUrl() { - return switch (this) { - case DEFAULT -> RegistryConfig.getDefaultServer(); - case TOOLS -> RegistryConfig.getToolsServer(); - case BACKEND -> RegistryConfig.getBackendServer(); - case BSA -> RegistryConfig.getBsaServer(); - case PUBAPI -> RegistryConfig.getPubapiServer(); - }; - } - } - - enum GkeService implements Service { - // This designation means that it defers to the GAE service, so we don't have to annotate EVERY - // action during the GKE migration. - SAME_AS_GAE("same_as_gae"), + enum Service { FRONTEND("frontend"), BACKEND("backend"), PUBAPI("pubapi"), @@ -85,27 +45,21 @@ public @interface Action { private final String serviceId; - GkeService(String serviceId) { + Service(String serviceId) { this.serviceId = serviceId; } - @Override public String getServiceId() { - checkState(this != SAME_AS_GAE, "Cannot get service Id for SAME_AS_GAE"); return serviceId; } - @Override public URL getServiceUrl() { return RegistryConfig.getServiceUrl(this); } } - /** Which App Engine service this action lives on. */ - GaeService service(); - /** Which GKE service this action lives on. */ - GkeService gkeService() default GkeService.SAME_AS_GAE; + Service service(); /** HTTP path to serve the action from. The path components must be percent-escaped. */ String path(); @@ -127,22 +81,4 @@ public @interface Action { /** Authentication settings. */ Auth auth(); - - // TODO(jianglai): Use Action.gkeService() directly once we are off GAE. - class ServiceGetter { - public static GkeService get(Action action) { - GkeService service = action.gkeService(); - if (service != GkeService.SAME_AS_GAE) { - return service; - } - GaeService gaeService = action.service(); - return switch (gaeService) { - case DEFAULT -> GkeService.FRONTEND; - case BACKEND -> GkeService.BACKEND; - case TOOLS -> GkeService.BACKEND; - case BSA -> GkeService.BACKEND; - case PUBAPI -> GkeService.PUBAPI; - }; - } - } } diff --git a/core/src/main/java/google/registry/request/RequestHandler.java b/core/src/main/java/google/registry/request/RequestHandler.java index bdc1b89d9..d1f81151b 100644 --- a/core/src/main/java/google/registry/request/RequestHandler.java +++ b/core/src/main/java/google/registry/request/RequestHandler.java @@ -23,7 +23,7 @@ import static jakarta.servlet.http.HttpServletResponse.SC_NOT_FOUND; import com.google.common.flogger.FluentLogger; import google.registry.config.RegistryConfig; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.auth.AuthResult; import google.registry.request.auth.RequestAuthenticator; import google.registry.util.NonFinalForTesting; @@ -139,21 +139,20 @@ public class RequestHandler { rsp.sendError(SC_NOT_FOUND); return; } - if (RegistryEnvironment.isOnJetty()) { - GkeService service = Action.ServiceGetter.get(route.get().action()); - String expectedDomain = RegistryConfig.getServiceUrl(service).getHost(); - String actualDomain = req.getServerName(); - // If the request doesn't come from GKE readiness prober - String maybeUserAgent = Optional.ofNullable(req.getHeader("User-Agent")).orElse(""); - if (!maybeUserAgent.startsWith("kube-probe") - // If the hostname is "localhost", it must have come from the sidecar proxy. - && !Objects.equals("localhost", actualDomain) - && !Objects.equals(actualDomain, expectedDomain)) { - logger.atWarning().log( - "Actual domain %s does not match expected domain %s", actualDomain, expectedDomain); - rsp.sendError(SC_NOT_FOUND); - return; - } + Service service = route.get().action().service(); + String expectedDomain = RegistryConfig.getServiceUrl(service).getHost(); + String actualDomain = req.getServerName(); + // If the request doesn't come from GKE readiness prober + String maybeUserAgent = Optional.ofNullable(req.getHeader("User-Agent")).orElse(""); + if (!maybeUserAgent.startsWith("kube-probe") + // If the hostname is "localhost", it must have come from the sidecar proxy. + && !Objects.equals("localhost", actualDomain) + && !Objects.equals(actualDomain, expectedDomain) + && !RegistryEnvironment.isInTestServer()) { + logger.atWarning().log( + "Actual domain %s does not match expected domain %s", actualDomain, expectedDomain); + rsp.sendError(SC_NOT_FOUND); + return; } if (!route.get().isMethodAllowed(method)) { logger.atWarning().log("Method %s not allowed for: %s", method, path); diff --git a/core/src/main/java/google/registry/request/RouterDisplayHelper.java b/core/src/main/java/google/registry/request/RouterDisplayHelper.java index 7c8842490..d9b64b9f1 100644 --- a/core/src/main/java/google/registry/request/RouterDisplayHelper.java +++ b/core/src/main/java/google/registry/request/RouterDisplayHelper.java @@ -94,7 +94,7 @@ public class RouterDisplayHelper { private static String routeToString(Route route, String formatString) { return String.format( formatString, - Action.ServiceGetter.get(route.action()).name(), + route.action().service().name(), route.action().isPrefix() ? (route.action().path() + "(*)") : route.action().path(), route.actionClass().getSimpleName(), Joiner.on(",").join(route.action().method()), @@ -112,7 +112,7 @@ public class RouterDisplayHelper { int methodsWidth = 7; int minLevelWidth = 3; for (Route route : routes) { - int len = Action.ServiceGetter.get(route.action()).name().length(); + int len = route.action().service().name().length(); if (len > serviceWidth) { serviceWidth = len; } @@ -148,9 +148,7 @@ public class RouterDisplayHelper { return headerToString(formatString) + String.format("%n") + Streams.stream(routes) - .sorted( - Comparator.comparing( - (Route route) -> Action.ServiceGetter.get(route.action()).ordinal())) + .sorted(Comparator.comparing((Route route) -> route.action().service().ordinal())) .map(route -> routeToString(route, formatString)) .collect(joining(String.format("%n"))); } diff --git a/core/src/main/java/google/registry/request/auth/AuthModule.java b/core/src/main/java/google/registry/request/auth/AuthModule.java index 149e74876..a7443f9cf 100644 --- a/core/src/main/java/google/registry/request/auth/AuthModule.java +++ b/core/src/main/java/google/registry/request/auth/AuthModule.java @@ -54,10 +54,7 @@ public class AuthModule { // See https://cloud.google.com/iap/docs/signed-headers-howto#securing_iap_headers. public static final String IAP_HEADER_NAME = "X-Goog-IAP-JWT-Assertion"; public static final String BEARER_PREFIX = "Bearer "; - // TODO (jianglai): Only use GKE audience once we are fully migrated to GKE. - // See: https://cloud.google.com/iap/docs/signed-headers-howto#verifying_the_jwt_payload - private static final String IAP_GAE_AUDIENCE_FORMAT = "/projects/%d/apps/%s"; - private static final String IAP_GKE_AUDIENCE_FORMAT = "/projects/%d/global/backendServices/%d"; + private static final String IAP_AUDIENCE_FORMAT = "/projects/%d/global/backendServices/%d"; private static final String IAP_ISSUER_URL = "https://cloud.google.com/iap"; private static final String REGULAR_ISSUER_URL = "https://accounts.google.com"; // The backend service IDs created when setting up GKE routes. They will be included in the @@ -89,24 +86,18 @@ public class AuthModule { @IapOidc @Singleton TokenVerifier provideIapTokenVerifier( - @Config("projectId") String projectId, @Config("projectIdNumber") long projectIdNumber, @Named("backendServiceIdMap") Supplier> backendServiceIdMap) { com.google.auth.oauth2.TokenVerifier.Builder tokenVerifierBuilder = com.google.auth.oauth2.TokenVerifier.newBuilder().setIssuer(IAP_ISSUER_URL); return (String service, String token) -> { - String audience; - if (RegistryEnvironment.isOnJetty()) { - Long backendServiceId = backendServiceIdMap.get().get(service); - checkNotNull( - backendServiceId, - "Backend service ID not found for service: %s, available IDs are %s", - service, - backendServiceIdMap); - audience = String.format(IAP_GKE_AUDIENCE_FORMAT, projectIdNumber, backendServiceId); - } else { - audience = String.format(IAP_GAE_AUDIENCE_FORMAT, projectIdNumber, projectId); - } + Long backendServiceId = backendServiceIdMap.get().get(service); + checkNotNull( + backendServiceId, + "Backend service ID not found for service: %s, available IDs are %s", + service, + backendServiceIdMap); + String audience = String.format(IAP_AUDIENCE_FORMAT, projectIdNumber, backendServiceId); return tokenVerifierBuilder.setAudience(audience).build().verify(token); }; } diff --git a/core/src/main/java/google/registry/request/auth/OidcTokenAuthenticationMechanism.java b/core/src/main/java/google/registry/request/auth/OidcTokenAuthenticationMechanism.java index 65fe13739..288852492 100644 --- a/core/src/main/java/google/registry/request/auth/OidcTokenAuthenticationMechanism.java +++ b/core/src/main/java/google/registry/request/auth/OidcTokenAuthenticationMechanism.java @@ -86,13 +86,10 @@ public abstract class OidcTokenAuthenticationMechanism implements Authentication } JsonWebSignature token = null; try { - String service = null; - if (RegistryEnvironment.isOnJetty()) { - String hostname = request.getServerName(); - service = Splitter.on('.').split(hostname).iterator().next(); - if (request.getHeader("canary") != null) { - service += "-canary"; - } + String hostname = request.getServerName(); + String service = Splitter.on('.').split(hostname).iterator().next(); + if (request.getHeader("canary") != null) { + service += "-canary"; } token = tokenVerifier.verify(service, rawIdToken); } catch (Exception e) { diff --git a/core/src/main/java/google/registry/tmch/NordnUploadAction.java b/core/src/main/java/google/registry/tmch/NordnUploadAction.java index cfb462ca6..74ef7da8d 100644 --- a/core/src/main/java/google/registry/tmch/NordnUploadAction.java +++ b/core/src/main/java/google/registry/tmch/NordnUploadAction.java @@ -37,7 +37,6 @@ import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; import google.registry.model.domain.Domain; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.RequestParameters; import google.registry.request.UrlConnectionService; @@ -66,7 +65,7 @@ import org.joda.time.Duration; * @see NordnVerifyAction */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = NordnUploadAction.PATH, method = Action.Method.POST, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/tmch/NordnVerifyAction.java b/core/src/main/java/google/registry/tmch/NordnVerifyAction.java index e60bcd80e..d31d04610 100644 --- a/core/src/main/java/google/registry/tmch/NordnVerifyAction.java +++ b/core/src/main/java/google/registry/tmch/NordnVerifyAction.java @@ -23,7 +23,6 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.flogger.FluentLogger; import com.google.common.io.ByteSource; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.ConflictException; import google.registry.request.Parameter; import google.registry.request.RequestParameters; @@ -51,7 +50,7 @@ import java.util.Map.Entry; * http://tools.ietf.org/html/draft-lozano-tmch-func-spec-08#section-5.2.3.3 */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = NordnVerifyAction.PATH, method = Action.Method.POST, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/tmch/TmchCrlAction.java b/core/src/main/java/google/registry/tmch/TmchCrlAction.java index 751d610fb..c7f9b62bd 100644 --- a/core/src/main/java/google/registry/tmch/TmchCrlAction.java +++ b/core/src/main/java/google/registry/tmch/TmchCrlAction.java @@ -19,7 +19,6 @@ import static java.nio.charset.StandardCharsets.UTF_8; import google.registry.config.RegistryConfig.Config; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import jakarta.inject.Inject; import java.io.IOException; @@ -29,7 +28,7 @@ import java.util.Optional; /** Action to download the latest ICANN TMCH CRL from MarksDB. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/tmchCrl", method = POST, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/tmch/TmchDnlAction.java b/core/src/main/java/google/registry/tmch/TmchDnlAction.java index c2c80d5b5..2af8ca4ad 100644 --- a/core/src/main/java/google/registry/tmch/TmchDnlAction.java +++ b/core/src/main/java/google/registry/tmch/TmchDnlAction.java @@ -22,7 +22,6 @@ import google.registry.keyring.api.KeyModule.Key; import google.registry.model.tmch.ClaimsList; import google.registry.model.tmch.ClaimsListDao; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import jakarta.inject.Inject; import java.io.IOException; @@ -32,7 +31,7 @@ import org.bouncycastle.openpgp.PGPException; /** Action to download the latest domain name list (aka claims list) from MarksDB. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/tmchDnl", method = POST, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/tmch/TmchSmdrlAction.java b/core/src/main/java/google/registry/tmch/TmchSmdrlAction.java index b29801597..b1f5447e9 100644 --- a/core/src/main/java/google/registry/tmch/TmchSmdrlAction.java +++ b/core/src/main/java/google/registry/tmch/TmchSmdrlAction.java @@ -22,7 +22,6 @@ import google.registry.keyring.api.KeyModule.Key; import google.registry.model.smd.SignedMarkRevocationList; import google.registry.model.smd.SignedMarkRevocationListDao; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import jakarta.inject.Inject; import java.io.IOException; @@ -32,7 +31,7 @@ import org.bouncycastle.openpgp.PGPException; /** Action to download the latest signed mark revocation list from MarksDB. */ @Action( - service = GaeService.BACKEND, + service = Action.Service.BACKEND, path = "/_dr/task/tmchSmdrl", method = POST, automaticallyPrintOk = true, diff --git a/core/src/main/java/google/registry/tools/CurlCommand.java b/core/src/main/java/google/registry/tools/CurlCommand.java index 0fd0741d1..5fbb80333 100644 --- a/core/src/main/java/google/registry/tools/CurlCommand.java +++ b/core/src/main/java/google/registry/tools/CurlCommand.java @@ -28,8 +28,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.net.MediaType; import google.registry.config.RegistryConfig.Config; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; import google.registry.request.Action.Service; import jakarta.inject.Inject; import java.util.List; @@ -80,10 +78,6 @@ class CurlCommand implements CommandWithConnection { required = true) private String serviceName; - @Inject - @Config("useGke") - boolean useGke; - @Inject @Config("useCanary") boolean useCanary; @@ -103,11 +97,7 @@ class CurlCommand implements CommandWithConnection { throw new IllegalArgumentException("You may not specify a body for a get method."); } - Service service = - useGke - ? GkeService.valueOf(Ascii.toUpperCase(serviceName)) - : GaeService.valueOf(Ascii.toUpperCase(serviceName)); - + Service service = Service.valueOf(Ascii.toUpperCase(serviceName)); ServiceConnection connectionToService = connection.withService(service, useCanary); String response = (method == Method.GET) diff --git a/core/src/main/java/google/registry/tools/ServiceConnection.java b/core/src/main/java/google/registry/tools/ServiceConnection.java index 3d8ad8ef5..068eaec07 100644 --- a/core/src/main/java/google/registry/tools/ServiceConnection.java +++ b/core/src/main/java/google/registry/tools/ServiceConnection.java @@ -19,7 +19,6 @@ import static com.google.common.base.Strings.isNullOrEmpty; import static com.google.common.base.Verify.verify; import static com.google.common.net.HttpHeaders.X_REQUESTED_WITH; import static com.google.common.net.MediaType.JSON_UTF_8; -import static google.registry.config.ConfigUtils.makeUrl; import static google.registry.config.RegistryConfig.CANARY_HEADER; import static google.registry.security.JsonHttp.JSON_SAFETY_PREFIX; import static java.nio.charset.StandardCharsets.UTF_8; @@ -36,8 +35,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.io.CharStreams; import com.google.common.net.MediaType; import google.registry.config.RegistryConfig.Config; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; import google.registry.request.Action.Service; import jakarta.inject.Inject; import java.io.IOException; @@ -61,10 +58,9 @@ public class ServiceConnection { @Inject ServiceConnection( - @Config("useGke") boolean useGke, @Config("useCanary") boolean useCanary, HttpRequestFactory requestFactory) { - this(useGke ? GkeService.BACKEND : GaeService.TOOLS, requestFactory, useCanary); + this(Service.BACKEND, requestFactory, useCanary); } private ServiceConnection(Service service, HttpRequestFactory requestFactory, boolean useCanary) { @@ -75,14 +71,6 @@ public class ServiceConnection { /** Returns a copy of this connection that talks to a different service endpoint. */ public ServiceConnection withService(Service service, boolean useCanary) { - Class oldServiceClazz = this.service.getClass(); - Class newServiceClazz = service.getClass(); - if (oldServiceClazz != newServiceClazz) { - throw new IllegalArgumentException( - String.format( - "Cannot switch from %s to %s", - oldServiceClazz.getSimpleName(), newServiceClazz.getSimpleName())); - } return new ServiceConnection(service, requestFactory, useCanary); } @@ -136,12 +124,6 @@ public class ServiceConnection { URL getServer() { URL url = service.getServiceUrl(); verify(!isNullOrEmpty(url.getHost()), "Null host in url"); - if (useCanary && service instanceof GaeService) { - url = - makeUrl( - String.format( - "%s://nomulus-dot-%s%s", url.getProtocol(), url.getHost(), url.getFile())); - } return url; } diff --git a/core/src/main/java/google/registry/tools/server/CreateGroupsAction.java b/core/src/main/java/google/registry/tools/server/CreateGroupsAction.java index 0f4e27eed..343b260b5 100644 --- a/core/src/main/java/google/registry/tools/server/CreateGroupsAction.java +++ b/core/src/main/java/google/registry/tools/server/CreateGroupsAction.java @@ -26,7 +26,6 @@ import google.registry.groups.GroupsConnection.Role; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarPoc; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.InternalServerErrorException; import google.registry.request.Parameter; @@ -41,7 +40,7 @@ import java.util.Optional; /** Action that creates Google Groups for a registrar's mailing lists. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = CreateGroupsAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/tools/server/GenerateZoneFilesAction.java b/core/src/main/java/google/registry/tools/server/GenerateZoneFilesAction.java index d82f311a0..15573470c 100644 --- a/core/src/main/java/google/registry/tools/server/GenerateZoneFilesAction.java +++ b/core/src/main/java/google/registry/tools/server/GenerateZoneFilesAction.java @@ -33,7 +33,6 @@ import google.registry.model.domain.secdns.DomainDsData; import google.registry.model.host.Host; import google.registry.model.tld.Tld; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.HttpException.BadRequestException; import google.registry.request.JsonActionRunner; import google.registry.request.auth.Auth; @@ -63,7 +62,7 @@ import org.joda.time.Duration; * days in the past, and must be at midnight UTC. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = GenerateZoneFilesAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/tools/server/ListDomainsAction.java b/core/src/main/java/google/registry/tools/server/ListDomainsAction.java index e69c5b5d4..421dccde9 100644 --- a/core/src/main/java/google/registry/tools/server/ListDomainsAction.java +++ b/core/src/main/java/google/registry/tools/server/ListDomainsAction.java @@ -28,7 +28,6 @@ import com.google.common.collect.ImmutableSet; import google.registry.model.EppResourceUtils; import google.registry.model.domain.Domain; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.util.Clock; @@ -37,7 +36,7 @@ import jakarta.inject.Inject; /** An action that lists domains, for use by the {@code nomulus list_domains} command. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = ListDomainsAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/tools/server/ListHostsAction.java b/core/src/main/java/google/registry/tools/server/ListHostsAction.java index 90679223c..2f6639d46 100644 --- a/core/src/main/java/google/registry/tools/server/ListHostsAction.java +++ b/core/src/main/java/google/registry/tools/server/ListHostsAction.java @@ -25,7 +25,6 @@ import com.google.common.collect.ImmutableSet; import google.registry.model.EppResourceUtils; import google.registry.model.host.Host; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import google.registry.util.Clock; import jakarta.inject.Inject; @@ -33,7 +32,7 @@ import org.joda.time.DateTime; /** An action that lists hosts, for use by the {@code nomulus list_hosts} command. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = ListHostsAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/tools/server/ListPremiumListsAction.java b/core/src/main/java/google/registry/tools/server/ListPremiumListsAction.java index 6e049f83f..cfeda091a 100644 --- a/core/src/main/java/google/registry/tools/server/ListPremiumListsAction.java +++ b/core/src/main/java/google/registry/tools/server/ListPremiumListsAction.java @@ -23,7 +23,6 @@ import com.google.common.collect.ImmutableSet; import google.registry.model.tld.label.PremiumList; import google.registry.model.tld.label.PremiumListDao; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import jakarta.inject.Inject; import java.util.Comparator; @@ -33,7 +32,7 @@ import java.util.Optional; * An action that lists premium lists, for use by the {@code nomulus list_premium_lists} command. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = ListPremiumListsAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/tools/server/ListRegistrarsAction.java b/core/src/main/java/google/registry/tools/server/ListRegistrarsAction.java index cc65a927e..f4235ab45 100644 --- a/core/src/main/java/google/registry/tools/server/ListRegistrarsAction.java +++ b/core/src/main/java/google/registry/tools/server/ListRegistrarsAction.java @@ -22,13 +22,12 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import google.registry.model.registrar.Registrar; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import jakarta.inject.Inject; /** An action that lists registrars, for use by the {@code nomulus list_registrars} command. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = ListRegistrarsAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/tools/server/ListReservedListsAction.java b/core/src/main/java/google/registry/tools/server/ListReservedListsAction.java index 47e776463..2692c4779 100644 --- a/core/src/main/java/google/registry/tools/server/ListReservedListsAction.java +++ b/core/src/main/java/google/registry/tools/server/ListReservedListsAction.java @@ -23,7 +23,6 @@ import com.google.common.collect.ImmutableSet; import google.registry.model.tld.label.ReservedList; import google.registry.model.tld.label.ReservedListDao; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import jakarta.inject.Inject; import java.util.Comparator; @@ -31,7 +30,7 @@ import java.util.Optional; /** A that lists reserved lists, for use by the {@code nomulus list_reserved_lists} command. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = ListReservedListsAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/tools/server/ListTldsAction.java b/core/src/main/java/google/registry/tools/server/ListTldsAction.java index d57018e6d..f4f3c4250 100644 --- a/core/src/main/java/google/registry/tools/server/ListTldsAction.java +++ b/core/src/main/java/google/registry/tools/server/ListTldsAction.java @@ -24,7 +24,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import google.registry.model.tld.Tld; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import google.registry.util.Clock; import jakarta.inject.Inject; @@ -32,7 +31,7 @@ import org.joda.time.DateTime; /** An action that lists top-level domains, for use by the {@code nomulus list_tlds} command. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = ListTldsAction.PATH, method = {GET, POST}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/tools/server/RefreshDnsForAllDomainsAction.java b/core/src/main/java/google/registry/tools/server/RefreshDnsForAllDomainsAction.java index 4d7bcfe85..ce1734955 100644 --- a/core/src/main/java/google/registry/tools/server/RefreshDnsForAllDomainsAction.java +++ b/core/src/main/java/google/registry/tools/server/RefreshDnsForAllDomainsAction.java @@ -29,7 +29,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.flogger.FluentLogger; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -58,7 +57,7 @@ import org.joda.time.Duration; * domains that have since been deleted. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = "/_dr/task/refreshDnsForAllDomains", auth = Auth.AUTH_ADMIN) public class RefreshDnsForAllDomainsAction implements Runnable { diff --git a/core/src/main/java/google/registry/tools/server/UpdateUserGroupAction.java b/core/src/main/java/google/registry/tools/server/UpdateUserGroupAction.java index ef0a4bb2f..3929926d2 100644 --- a/core/src/main/java/google/registry/tools/server/UpdateUserGroupAction.java +++ b/core/src/main/java/google/registry/tools/server/UpdateUserGroupAction.java @@ -20,7 +20,6 @@ import com.google.common.flogger.FluentLogger; import google.registry.groups.GroupsConnection; import google.registry.groups.GroupsConnection.Role; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -28,7 +27,7 @@ import jakarta.inject.Inject; /** Action that adds or deletes a console user to/from the group that has IAP permissions. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = UpdateUserGroupAction.PATH, method = POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/tools/server/VerifyOteAction.java b/core/src/main/java/google/registry/tools/server/VerifyOteAction.java index e39ac3c0c..d51b81968 100644 --- a/core/src/main/java/google/registry/tools/server/VerifyOteAction.java +++ b/core/src/main/java/google/registry/tools/server/VerifyOteAction.java @@ -21,7 +21,6 @@ import com.google.common.collect.Maps; import google.registry.model.OteStats; import google.registry.model.OteStats.StatType; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.JsonActionRunner; import google.registry.request.JsonActionRunner.JsonAction; import google.registry.request.auth.Auth; @@ -35,7 +34,7 @@ import java.util.stream.Collectors; * OT&E commands that have been run just previously to verification may not be picked up yet. */ @Action( - service = GaeService.TOOLS, + service = Action.Service.BACKEND, path = VerifyOteAction.PATH, method = Action.Method.POST, auth = Auth.AUTH_ADMIN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleDomainGetAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleDomainGetAction.java index faf43f189..a6f472886 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleDomainGetAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleDomainGetAction.java @@ -23,8 +23,7 @@ import google.registry.model.console.ConsolePermission; import google.registry.model.console.User; import google.registry.model.domain.Domain; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import jakarta.inject.Inject; @@ -32,8 +31,7 @@ import java.util.Optional; /** Returns a JSON representation of a domain to the registrar console. */ @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleDomainGetAction.PATH, auth = Auth.AUTH_PUBLIC_LOGGED_IN) public class ConsoleDomainGetAction extends ConsoleApiAction { diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleDomainListAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleDomainListAction.java index 987e2ddf2..562db6d45 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleDomainListAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleDomainListAction.java @@ -26,8 +26,7 @@ import google.registry.model.CreateAutoTimestamp; import google.registry.model.console.User; import google.registry.model.domain.Domain; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import jakarta.inject.Inject; @@ -38,8 +37,7 @@ import org.joda.time.DateTime; /** Returns a (paginated) list of domains for a particular registrar. */ @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleDomainListAction.PATH, method = Action.Method.GET, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleDumDownloadAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleDumDownloadAction.java index 102aa06e5..e056d116a 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleDumDownloadAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleDumDownloadAction.java @@ -26,8 +26,7 @@ import google.registry.model.console.ConsolePermission; import google.registry.model.console.ConsoleUpdateHistory; import google.registry.model.console.User; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.util.Clock; @@ -39,8 +38,7 @@ import org.apache.commons.csv.CSVPrinter; import org.joda.time.DateTime; @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleDumDownloadAction.PATH, method = {GET}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleEppPasswordAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleEppPasswordAction.java index bcdefd7e4..a9c894331 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleEppPasswordAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleEppPasswordAction.java @@ -31,8 +31,7 @@ import google.registry.model.console.ConsoleUpdateHistory; import google.registry.model.console.User; import google.registry.model.registrar.Registrar; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.request.auth.AuthenticatedRegistrarAccessor; @@ -42,8 +41,7 @@ import jakarta.inject.Inject; import java.util.Optional; @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleEppPasswordAction.PATH, method = {POST}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleHistoryDataAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleHistoryDataAction.java index 03429c5f0..d967e1e3e 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleHistoryDataAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleHistoryDataAction.java @@ -29,8 +29,7 @@ import google.registry.model.console.GlobalRole; import google.registry.model.console.User; import google.registry.model.console.UserRoles; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import jakarta.inject.Inject; @@ -38,8 +37,7 @@ import java.util.List; import java.util.Optional; @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleHistoryDataAction.PATH, method = {GET}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleOteAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleOteAction.java index 057daf84e..2465a6a91 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleOteAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleOteAction.java @@ -36,7 +36,7 @@ import google.registry.model.console.ConsolePermission; import google.registry.model.console.User; import google.registry.model.registrar.Registrar; import google.registry.request.Action; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.tools.IamClient; @@ -48,8 +48,7 @@ import java.util.Map; import java.util.Optional; @Action( - service = Action.GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleOteAction.PATH, method = {GET, POST}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleRegistryLockAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleRegistryLockAction.java index 5c658f8ce..c50b6565a 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleRegistryLockAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleRegistryLockAction.java @@ -34,8 +34,7 @@ import google.registry.model.domain.RegistryLock; import google.registry.model.registrar.Registrar; import google.registry.model.tld.RegistryLockDao; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; @@ -56,8 +55,7 @@ import org.joda.time.Duration; * action). */ @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleRegistryLockAction.PATH, method = {GET, POST}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleRegistryLockVerifyAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleRegistryLockVerifyAction.java index 12817522e..cea8745ae 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleRegistryLockVerifyAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleRegistryLockVerifyAction.java @@ -23,8 +23,7 @@ import google.registry.model.console.ConsoleUpdateHistory; import google.registry.model.console.User; import google.registry.model.domain.RegistryLock; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.tools.DomainLockUtils; @@ -33,8 +32,7 @@ import jakarta.servlet.http.HttpServletResponse; /** Handler for verifying registry lock requests, a form of 2FA. */ @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleRegistryLockVerifyAction.PATH, method = {GET}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleUpdateRegistrarAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleUpdateRegistrarAction.java index 7bd0c8a56..4ecb6e7d9 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleUpdateRegistrarAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleUpdateRegistrarAction.java @@ -29,8 +29,7 @@ import google.registry.model.console.ConsoleUpdateHistory; import google.registry.model.console.User; import google.registry.model.registrar.Registrar; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.HttpException.BadRequestException; import google.registry.request.Parameter; import google.registry.request.auth.Auth; @@ -42,8 +41,7 @@ import java.util.stream.Collectors; import org.joda.time.DateTime; @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleUpdateRegistrarAction.PATH, method = {POST}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleUserDataAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleUserDataAction.java index deb891fa9..f4def0e7a 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleUserDataAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleUserDataAction.java @@ -21,8 +21,7 @@ import com.google.common.collect.ImmutableMap; import google.registry.config.RegistryConfig.Config; import google.registry.model.console.User; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.auth.Auth; import google.registry.security.XsrfTokenManager; import jakarta.inject.Inject; @@ -30,8 +29,7 @@ import jakarta.servlet.http.Cookie; import org.json.JSONObject; @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleUserDataAction.PATH, method = {GET}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleUsersAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleUsersAction.java index 2b1d78ed5..7b0c58c7d 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleUsersAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleUsersAction.java @@ -43,7 +43,7 @@ import google.registry.model.console.UserRoles; import google.registry.model.registrar.Registrar; import google.registry.persistence.VKey; import google.registry.request.Action; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.HttpException.BadRequestException; import google.registry.request.Parameter; import google.registry.request.auth.Auth; @@ -61,8 +61,7 @@ import java.util.stream.Collectors; import javax.annotation.Nullable; @Action( - service = Action.GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ConsoleUsersAction.PATH, method = {GET, POST, DELETE, PUT}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/PasswordResetRequestAction.java b/core/src/main/java/google/registry/ui/server/console/PasswordResetRequestAction.java index 7ee27e4e4..30d1bd3b3 100644 --- a/core/src/main/java/google/registry/ui/server/console/PasswordResetRequestAction.java +++ b/core/src/main/java/google/registry/ui/server/console/PasswordResetRequestAction.java @@ -34,8 +34,7 @@ import jakarta.servlet.http.HttpServletResponse; import javax.annotation.Nullable; @Action( - service = Action.GaeService.DEFAULT, - gkeService = Action.GkeService.CONSOLE, + service = Action.Service.CONSOLE, path = PasswordResetRequestAction.PATH, method = Action.Method.POST, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/PasswordResetVerifyAction.java b/core/src/main/java/google/registry/ui/server/console/PasswordResetVerifyAction.java index 32b21c1bd..640adb152 100644 --- a/core/src/main/java/google/registry/ui/server/console/PasswordResetVerifyAction.java +++ b/core/src/main/java/google/registry/ui/server/console/PasswordResetVerifyAction.java @@ -36,8 +36,7 @@ import java.util.Optional; import org.joda.time.Duration; @Action( - service = Action.GaeService.DEFAULT, - gkeService = Action.GkeService.CONSOLE, + service = Action.Service.CONSOLE, path = PasswordResetVerifyAction.PATH, method = {GET, POST}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/RegistrarsAction.java b/core/src/main/java/google/registry/ui/server/console/RegistrarsAction.java index 390ff39b3..a22f6fa4c 100644 --- a/core/src/main/java/google/registry/ui/server/console/RegistrarsAction.java +++ b/core/src/main/java/google/registry/ui/server/console/RegistrarsAction.java @@ -33,8 +33,7 @@ import google.registry.model.registrar.Registrar; import google.registry.model.registrar.Registrar.State; import google.registry.model.registrar.RegistrarPoc; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.util.StringGenerator; @@ -45,8 +44,7 @@ import java.util.Map; import java.util.Optional; @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = RegistrarsAction.PATH, method = {GET, POST}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/domains/ConsoleBulkDomainAction.java b/core/src/main/java/google/registry/ui/server/console/domains/ConsoleBulkDomainAction.java index b20f33f5f..b4ed47db1 100644 --- a/core/src/main/java/google/registry/ui/server/console/domains/ConsoleBulkDomainAction.java +++ b/core/src/main/java/google/registry/ui/server/console/domains/ConsoleBulkDomainAction.java @@ -49,8 +49,7 @@ import java.util.Optional; * request body depend on the type of action -- some requests may require more data than others. */ @Action( - service = Action.GaeService.DEFAULT, - gkeService = Action.GkeService.CONSOLE, + service = Action.Service.CONSOLE, path = ConsoleBulkDomainAction.PATH, method = Action.Method.POST, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/settings/ContactAction.java b/core/src/main/java/google/registry/ui/server/console/settings/ContactAction.java index 1774d8087..8fd4d9095 100644 --- a/core/src/main/java/google/registry/ui/server/console/settings/ContactAction.java +++ b/core/src/main/java/google/registry/ui/server/console/settings/ContactAction.java @@ -36,8 +36,7 @@ import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarPoc; import google.registry.model.registrar.RegistrarPoc.Type; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.ui.server.console.ConsoleApiAction; @@ -49,8 +48,7 @@ import java.util.Set; import java.util.function.BiFunction; @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = ContactAction.PATH, method = {GET, POST, DELETE, PUT}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/settings/RdapRegistrarFieldsAction.java b/core/src/main/java/google/registry/ui/server/console/settings/RdapRegistrarFieldsAction.java index d2f42d5b4..796da6697 100644 --- a/core/src/main/java/google/registry/ui/server/console/settings/RdapRegistrarFieldsAction.java +++ b/core/src/main/java/google/registry/ui/server/console/settings/RdapRegistrarFieldsAction.java @@ -25,8 +25,7 @@ import google.registry.model.console.ConsoleUpdateHistory; import google.registry.model.console.User; import google.registry.model.registrar.Registrar; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.request.auth.AuthenticatedRegistrarAccessor; @@ -44,8 +43,7 @@ import java.util.StringJoiner; * and don't have any other obvious means of edit. */ @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = RdapRegistrarFieldsAction.PATH, method = {POST}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/main/java/google/registry/ui/server/console/settings/SecurityAction.java b/core/src/main/java/google/registry/ui/server/console/settings/SecurityAction.java index 1bb001467..3156b47b3 100644 --- a/core/src/main/java/google/registry/ui/server/console/settings/SecurityAction.java +++ b/core/src/main/java/google/registry/ui/server/console/settings/SecurityAction.java @@ -29,8 +29,7 @@ import google.registry.model.console.ConsoleUpdateHistory; import google.registry.model.console.User; import google.registry.model.registrar.Registrar; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.request.auth.AuthenticatedRegistrarAccessor; @@ -42,8 +41,7 @@ import java.util.Optional; import java.util.StringJoiner; @Action( - service = GaeService.DEFAULT, - gkeService = GkeService.CONSOLE, + service = Service.CONSOLE, path = SecurityAction.PATH, method = {POST}, auth = Auth.AUTH_PUBLIC_LOGGED_IN) diff --git a/core/src/test/java/google/registry/batch/CloudTasksUtilsTest.java b/core/src/test/java/google/registry/batch/CloudTasksUtilsTest.java index bf8a3ca98..370f69121 100644 --- a/core/src/test/java/google/registry/batch/CloudTasksUtilsTest.java +++ b/core/src/test/java/google/registry/batch/CloudTasksUtilsTest.java @@ -32,8 +32,7 @@ import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.LinkedListMultimap; import google.registry.batch.CloudTasksUtils.SerializableCloudTasksClient; import google.registry.request.Action; -import google.registry.request.Action.GaeService; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import google.registry.request.auth.Auth; import google.registry.testing.CloudTasksHelper.FakeGoogleCredentialsBundle; import google.registry.testing.FakeClock; @@ -87,13 +86,13 @@ public class CloudTasksUtilsTest { void testFailure_illegalPath() { assertThrows( IllegalArgumentException.class, - () -> cloudTasksUtils.createTask("the/path", GET, GkeService.BACKEND, params)); + () -> cloudTasksUtils.createTask("the/path", GET, Service.BACKEND, params)); assertThrows( IllegalArgumentException.class, - () -> cloudTasksUtils.createTask(null, GET, GkeService.BACKEND, params)); + () -> cloudTasksUtils.createTask(null, GET, Service.BACKEND, params)); assertThrows( IllegalArgumentException.class, - () -> cloudTasksUtils.createTask("", GET, GkeService.BACKEND, params)); + () -> cloudTasksUtils.createTask("", GET, Service.BACKEND, params)); } @Test @@ -126,24 +125,14 @@ public class CloudTasksUtilsTest { Task task = cloudTasksUtils.createTask(TheAction.class, GET, params); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getHttpRequest().getUrl()) - .isEqualTo("https://backend.example.com/the/path?key1=val1&key2=val2&key1=val3"); + .isEqualTo("https://backend.registry.test/the/path?key1=val1&key2=val2&key1=val3"); verifyOidcToken(task); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @Test - void testSuccess_createTasks_WithPathAndService_GAE() { - Task task = cloudTasksUtils.createTask("/the/path", GET, GaeService.BACKEND, params); - assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); - assertThat(task.getHttpRequest().getUrl()) - .isEqualTo("https://backend.example.com/the/path?key1=val1&key2=val2&key1=val3"); - verifyOidcToken(task); - assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); - } - - @Test - void testSuccess_createTasks_WithPathAndService_GKE() { - Task task = cloudTasksUtils.createTask("/the/path", GET, GkeService.BACKEND, params); + void testSuccess_createTasks_WithPathAndService() { + Task task = cloudTasksUtils.createTask("/the/path", GET, Service.BACKEND, params); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getHttpRequest().getUrl()) .isEqualTo("https://backend.registry.test/the/path?key1=val1&key2=val2&key1=val3"); @@ -169,7 +158,7 @@ public class CloudTasksUtilsTest { void testSuccess_createPostTasks() { Task task = cloudTasksUtils.createTask(TheAction.class, POST, params); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); - assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.example.com/the/path"); + assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.registry.test/the/path"); assertThat(task.getHttpRequest().getHeadersMap().get("Content-Type")) .isEqualTo("application/x-www-form-urlencoded"); assertThat(task.getHttpRequest().getBody().toString(StandardCharsets.UTF_8)) @@ -182,7 +171,7 @@ public class CloudTasksUtilsTest { void testSuccess_createGetTasks_withNullParams() { Task task = cloudTasksUtils.createTask(TheAction.class, GET, null); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); - assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.example.com/the/path"); + assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.registry.test/the/path"); verifyOidcToken(task); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @@ -191,7 +180,7 @@ public class CloudTasksUtilsTest { void testSuccess_createPostTasks_withNullParams() { Task task = cloudTasksUtils.createTask(TheAction.class, POST, null); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); - assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.example.com/the/path"); + assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.registry.test/the/path"); assertThat(task.getHttpRequest().getBody().toString(StandardCharsets.UTF_8)).isEmpty(); verifyOidcToken(task); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); @@ -201,7 +190,7 @@ public class CloudTasksUtilsTest { void testSuccess_createGetTasks_withEmptyParams() { Task task = cloudTasksUtils.createTask(TheAction.class, GET, ImmutableMultimap.of()); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); - assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.example.com/the/path"); + assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.registry.test/the/path"); verifyOidcToken(task); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @@ -210,7 +199,7 @@ public class CloudTasksUtilsTest { void testSuccess_createPostTasks_withEmptyParams() { Task task = cloudTasksUtils.createTask(TheAction.class, POST, ImmutableMultimap.of()); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); - assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.example.com/the/path"); + assertThat(task.getHttpRequest().getUrl()).isEqualTo("https://backend.registry.test/the/path"); assertThat(task.getHttpRequest().getBody().toString(StandardCharsets.UTF_8)).isEmpty(); verifyOidcToken(task); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); @@ -223,7 +212,7 @@ public class CloudTasksUtilsTest { cloudTasksUtils.createTaskWithJitter(TheAction.class, GET, params, Optional.of(100)); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getHttpRequest().getUrl()) - .isEqualTo("https://backend.example.com/the/path?key1=val1&key2=val2&key1=val3"); + .isEqualTo("https://backend.registry.test/the/path?key1=val1&key2=val2&key1=val3"); verifyOidcToken(task); assertThat(task.getScheduleTime().getSeconds()).isNotEqualTo(0); @@ -241,7 +230,7 @@ public class CloudTasksUtilsTest { cloudTasksUtils.createTaskWithJitter(TheAction.class, GET, params, Optional.empty()); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getHttpRequest().getUrl()) - .isEqualTo("https://backend.example.com/the/path?key1=val1&key2=val2&key1=val3"); + .isEqualTo("https://backend.registry.test/the/path?key1=val1&key2=val2&key1=val3"); verifyOidcToken(task); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @@ -251,7 +240,7 @@ public class CloudTasksUtilsTest { Task task = cloudTasksUtils.createTaskWithJitter(TheAction.class, GET, params, Optional.of(0)); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getHttpRequest().getUrl()) - .isEqualTo("https://backend.example.com/the/path?key1=val1&key2=val2&key1=val3"); + .isEqualTo("https://backend.registry.test/the/path?key1=val1&key2=val2&key1=val3"); verifyOidcToken(task); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @@ -263,7 +252,7 @@ public class CloudTasksUtilsTest { TheAction.class, GET, params, Duration.standardMinutes(10)); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getHttpRequest().getUrl()) - .isEqualTo("https://backend.example.com/the/path?key1=val1&key2=val2&key1=val3"); + .isEqualTo("https://backend.registry.test/the/path?key1=val1&key2=val2&key1=val3"); verifyOidcToken(task); assertThat(Instant.ofEpochSecond(task.getScheduleTime().getSeconds())) .isEqualTo(Instant.ofEpochMilli(clock.nowUtc().plusMinutes(10).getMillis())); @@ -274,14 +263,13 @@ public class CloudTasksUtilsTest { Task task = cloudTasksUtils.createTaskWithDelay(TheAction.class, GET, params, Duration.ZERO); assertThat(task.getHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getHttpRequest().getUrl()) - .isEqualTo("https://backend.example.com/the/path?key1=val1&key2=val2&key1=val3"); + .isEqualTo("https://backend.registry.test/the/path?key1=val1&key2=val2&key1=val3"); verifyOidcToken(task); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @Action( - service = GaeService.BACKEND, - gkeService = GkeService.BACKEND, + service = Service.BACKEND, path = "/the/path", method = {GET, POST}, auth = Auth.AUTH_ADMIN) @@ -292,8 +280,7 @@ public class CloudTasksUtilsTest { } @Action( - service = GaeService.TOOLS, - gkeService = GkeService.BACKEND, + service = Service.BACKEND, path = "/other/path", method = {GET}, auth = Auth.AUTH_ADMIN) diff --git a/core/src/test/java/google/registry/beam/common/RegistryPipelineWorkerInitializerTest.java b/core/src/test/java/google/registry/beam/common/RegistryPipelineWorkerInitializerTest.java deleted file mode 100644 index 16a084ece..000000000 --- a/core/src/test/java/google/registry/beam/common/RegistryPipelineWorkerInitializerTest.java +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2025 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.beam.common; - -import static com.google.common.truth.Truth.assertThat; - -import google.registry.util.RegistryEnvironment; -import org.apache.beam.sdk.options.PipelineOptionsFactory; -import org.junit.jupiter.api.Test; - -public class RegistryPipelineWorkerInitializerTest { - - @Test - void test() { - RegistryPipelineOptions options = - PipelineOptionsFactory.fromArgs( - "--registryEnvironment=ALPHA", "--isolationOverride=TRANSACTION_SERIALIZABLE") - .withValidation() - .as(RegistryPipelineOptions.class); - new RegistryPipelineWorkerInitializer().beforeProcessing(options); - assertThat(RegistryEnvironment.isOnJetty()).isTrue(); - System.clearProperty("google.registry.jetty"); - } -} diff --git a/core/src/test/java/google/registry/cron/TldFanoutActionTest.java b/core/src/test/java/google/registry/cron/TldFanoutActionTest.java index 2a5c13202..1dec658f7 100644 --- a/core/src/test/java/google/registry/cron/TldFanoutActionTest.java +++ b/core/src/test/java/google/registry/cron/TldFanoutActionTest.java @@ -224,11 +224,11 @@ class TldFanoutActionTest { String expectedResponse = String.format( """ - OK: Launched the following 3 tasks in queue the-queue - - Task: '%s', tld: 'com', endpoint: 'https://backend.example.com/the/servlet' - - Task: '%s', tld: 'net', endpoint: 'https://backend.example.com/the/servlet' - - Task: '%s', tld: 'org', endpoint: 'https://backend.example.com/the/servlet' - """, + OK: Launched the following 3 tasks in queue the-queue + - Task: '%s', tld: 'com', endpoint: 'https://backend.registry.test/the/servlet' + - Task: '%s', tld: 'net', endpoint: 'https://backend.registry.test/the/servlet' + - Task: '%s', tld: 'org', endpoint: 'https://backend.registry.test/the/servlet' + """, taskList.get(0).getName(), taskList.get(1).getName(), taskList.get(2).getName()); assertThat(response.getPayload()).isEqualTo(expectedResponse); } @@ -243,9 +243,9 @@ class TldFanoutActionTest { String expectedResponse = String.format( """ - OK: Launched the following 1 tasks in queue the-queue - - Task: '%s', tld: '', endpoint: 'https://backend.example.com/the/servlet' - """, + OK: Launched the following 1 tasks in queue the-queue + - Task: '%s', tld: '', endpoint: 'https://backend.registry.test/the/servlet' + """, taskList.get(0).getName()); assertThat(response.getPayload()).isEqualTo(expectedResponse); } diff --git a/core/src/test/java/google/registry/model/OteAccountBuilderTest.java b/core/src/test/java/google/registry/model/OteAccountBuilderTest.java index c0d1924dd..88ea47506 100644 --- a/core/src/test/java/google/registry/model/OteAccountBuilderTest.java +++ b/core/src/test/java/google/registry/model/OteAccountBuilderTest.java @@ -130,7 +130,7 @@ public final class OteAccountBuilderTest { cloudTasksHelper.assertTasksEnqueued( "console-user-group-update", new TaskMatcher() - .service("TOOLS") + .service("BACKEND") .method(HttpMethod.POST) .path("/_dr/admin/updateUserGroup") .param("userEmailAddress", emailAddress) diff --git a/core/src/test/java/google/registry/model/console/UserTest.java b/core/src/test/java/google/registry/model/console/UserTest.java index ca52a089e..21d093b2d 100644 --- a/core/src/test/java/google/registry/model/console/UserTest.java +++ b/core/src/test/java/google/registry/model/console/UserTest.java @@ -166,7 +166,7 @@ public class UserTest extends EntityTestCase { cloudTasksHelper.assertTasksEnqueued( "console-user-group-update", new TaskMatcher() - .service("TOOLS") + .service("BACKEND") .method(HttpMethod.POST) .path("/_dr/admin/updateUserGroup") .param("userEmailAddress", "email@example.com") @@ -222,7 +222,7 @@ public class UserTest extends EntityTestCase { cloudTasksHelper.assertTasksEnqueued( "console-user-group-update", new TaskMatcher() - .service("TOOLS") + .service("BACKEND") .method(HttpMethod.POST) .path("/_dr/admin/updateUserGroup") .param("userEmailAddress", "email@example.com") diff --git a/core/src/test/java/google/registry/rdap/RdapActionBaseTest.java b/core/src/test/java/google/registry/rdap/RdapActionBaseTest.java index d5dd9c90b..22deba985 100644 --- a/core/src/test/java/google/registry/rdap/RdapActionBaseTest.java +++ b/core/src/test/java/google/registry/rdap/RdapActionBaseTest.java @@ -30,7 +30,6 @@ import google.registry.rdap.RdapObjectClasses.BoilerplateType; import google.registry.rdap.RdapObjectClasses.ReplyPayloadBase; import google.registry.rdap.RdapSearchResults.IncompletenessWarningType; import google.registry.request.Action; -import google.registry.request.Action.GaeService; import google.registry.request.auth.Auth; import java.util.Optional; import org.junit.jupiter.api.BeforeEach; @@ -45,7 +44,7 @@ class RdapActionBaseTest extends RdapActionBaseTestCase headerBuilder = new ImmutableMultimap.Builder<>(); diff --git a/core/src/test/java/google/registry/tools/CurlCommandTest.java b/core/src/test/java/google/registry/tools/CurlCommandTest.java index ea0823bf0..e7f28e013 100644 --- a/core/src/test/java/google/registry/tools/CurlCommandTest.java +++ b/core/src/test/java/google/registry/tools/CurlCommandTest.java @@ -15,10 +15,6 @@ package google.registry.tools; import static com.google.common.truth.Truth.assertThat; -import static google.registry.request.Action.GaeService.BACKEND; -import static google.registry.request.Action.GaeService.DEFAULT; -import static google.registry.request.Action.GaeService.PUBAPI; -import static google.registry.request.Action.GaeService.TOOLS; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; @@ -30,7 +26,7 @@ import static org.mockito.Mockito.when; import com.google.common.collect.ImmutableMap; import com.google.common.net.MediaType; -import google.registry.request.Action.Service; +import google.registry.request.Action; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; @@ -48,15 +44,16 @@ class CurlCommandTest extends CommandTestCase { @BeforeEach void beforeEach() { command.setConnection(connection); - when(connection.withService(any(Service.class), anyBoolean())).thenReturn(connectionForService); + when(connection.withService(any(Action.Service.class), anyBoolean())) + .thenReturn(connectionForService); } @Captor ArgumentCaptor> urlParamCaptor; @Test void testGetInvocation() throws Exception { - runCommand("--path=/foo/bar?a=1&b=2", "--service=TOOLS"); - verify(connection).withService(eq(TOOLS), eq(false)); + runCommand("--path=/foo/bar?a=1&b=2", "--service=BACKEND"); + verify(connection).withService(eq(Action.Service.BACKEND), eq(false)); verifyNoMoreInteractions(connection); verify(connectionForService) .sendGetRequest(eq("/foo/bar?a=1&b=2"), eq(ImmutableMap.of())); @@ -65,7 +62,7 @@ class CurlCommandTest extends CommandTestCase { @Test void testExplicitGetInvocation() throws Exception { runCommand("--path=/foo/bar?a=1&b=2", "--request=GET", "--service=BACKEND"); - verify(connection).withService(eq(BACKEND), eq(false)); + verify(connection).withService(eq(Action.Service.BACKEND), eq(false)); verifyNoMoreInteractions(connection); verify(connectionForService) .sendGetRequest(eq("/foo/bar?a=1&b=2"), eq(ImmutableMap.of())); @@ -73,8 +70,8 @@ class CurlCommandTest extends CommandTestCase { @Test void testPostInvocation() throws Exception { - runCommand("--path=/foo/bar?a=1&b=2", "--data=some data", "--service=DEFAULT"); - verify(connection).withService(eq(DEFAULT), eq(false)); + runCommand("--path=/foo/bar?a=1&b=2", "--data=some data", "--service=FRONTEND"); + verify(connection).withService(eq(Action.Service.FRONTEND), eq(false)); verifyNoMoreInteractions(connection); verify(connectionForService) .sendPostRequest( @@ -89,9 +86,9 @@ class CurlCommandTest extends CommandTestCase { runCommand( "--path=/foo/bar?a=1&b=2", "--data=some data", - "--service=DEFAULT", + "--service=FRONTEND", "--content-type=application/json"); - verify(connection).withService(eq(DEFAULT), eq(false)); + verify(connection).withService(eq(Action.Service.FRONTEND), eq(false)); verifyNoMoreInteractions(connection); verify(connectionForService) .sendPostRequest( @@ -110,7 +107,7 @@ class CurlCommandTest extends CommandTestCase { runCommand( "--path=/foo/bar?a=1&b=2", "--data=some data", - "--service=DEFAULT", + "--service=FRONTEND", "--content-type=bad")); verifyNoMoreInteractions(connection); verifyNoMoreInteractions(connectionForService); @@ -120,7 +117,7 @@ class CurlCommandTest extends CommandTestCase { void testMultiDataPost() throws Exception { runCommand( "--path=/foo/bar?a=1&b=2", "--data=first=100", "-d", "second=200", "--service=PUBAPI"); - verify(connection).withService(eq(PUBAPI), eq(false)); + verify(connection).withService(eq(Action.Service.PUBAPI), eq(false)); verifyNoMoreInteractions(connection); verify(connectionForService) .sendPostRequest( @@ -134,7 +131,7 @@ class CurlCommandTest extends CommandTestCase { void testDataDoesntSplit() throws Exception { runCommand( "--path=/foo/bar?a=1&b=2", "--data=one,two", "--service=PUBAPI"); - verify(connection).withService(eq(PUBAPI), eq(false)); + verify(connection).withService(eq(Action.Service.PUBAPI), eq(false)); verifyNoMoreInteractions(connection); verify(connectionForService) .sendPostRequest( @@ -146,8 +143,8 @@ class CurlCommandTest extends CommandTestCase { @Test void testExplicitPostInvocation() throws Exception { - runCommand("--path=/foo/bar?a=1&b=2", "--request=POST", "--service=TOOLS"); - verify(connection).withService(eq(TOOLS), eq(false)); + runCommand("--path=/foo/bar?a=1&b=2", "--request=POST", "--service=PUBAPI"); + verify(connection).withService(eq(Action.Service.PUBAPI), eq(false)); verifyNoMoreInteractions(connection); verify(connectionForService) .sendPostRequest( @@ -168,7 +165,7 @@ class CurlCommandTest extends CommandTestCase { "--path=/foo/bar?a=1&b=2", "--request=GET", "--data=inappropriate data", - "--service=TOOLS")); + "--service=BACKEND")); assertThat(thrown).hasMessageThat().contains("You may not specify a body for a get method."); } } diff --git a/core/src/test/java/google/registry/tools/GcpProjectConnectionTest.java b/core/src/test/java/google/registry/tools/GcpProjectConnectionTest.java index d29259b1e..0071471eb 100644 --- a/core/src/test/java/google/registry/tools/GcpProjectConnectionTest.java +++ b/core/src/test/java/google/registry/tools/GcpProjectConnectionTest.java @@ -85,7 +85,7 @@ final class GcpProjectConnectionTest { when(lowLevelHttpResponse.getStatusCode()).thenReturn(200); httpTransport = new TestHttpTransport(); - connection = new ServiceConnection(false, false, httpTransport.createRequestFactory()); + connection = new ServiceConnection(false, httpTransport.createRequestFactory()); } @Test @@ -96,7 +96,7 @@ final class GcpProjectConnectionTest { .isEqualTo("MyContent"); assertThat(httpTransport.method).isEqualTo("GET"); assertThat(httpTransport.url) - .isEqualTo("https://tools.example.com/my/path?query&key1=value1&key2=value2"); + .isEqualTo("https://backend.registry.test/my/path?query&key1=value1&key2=value2"); assertThat(lowLevelHttpRequest.headers).containsEntry("Cache-Control", "no-cache"); assertThat(lowLevelHttpRequest.headers).containsEntry("x-requested-with", "RegistryTool"); } @@ -112,7 +112,7 @@ final class GcpProjectConnectionTest { .isEqualTo("MyContent"); assertThat(httpTransport.method).isEqualTo("POST"); assertThat(httpTransport.url) - .isEqualTo("https://tools.example.com/my/path?query&key1=value1&key2=value2"); + .isEqualTo("https://backend.registry.test/my/path?query&key1=value1&key2=value2"); assertThat(lowLevelHttpRequest.getContentType()).isEqualTo("text/plain; charset=utf-8"); assertThat(lowLevelHttpRequest.getContentString()).isEqualTo("some data"); assertThat(lowLevelHttpRequest.headers).containsEntry("Cache-Control", "no-cache"); @@ -129,7 +129,7 @@ final class GcpProjectConnectionTest { "/my/path?query", ImmutableMap.of("string", "value1", "bool", true))) .containsExactly("key", "value"); assertThat(httpTransport.method).isEqualTo("POST"); - assertThat(httpTransport.url).isEqualTo("https://tools.example.com/my/path?query"); + assertThat(httpTransport.url).isEqualTo("https://backend.registry.test/my/path?query"); assertThat(lowLevelHttpRequest.getContentType()).isEqualTo("application/json; charset=utf-8"); assertThat(lowLevelHttpRequest.getContentString()) .isEqualTo("{\"string\":\"value1\",\"bool\":true}"); diff --git a/core/src/test/java/google/registry/tools/ServiceConnectionTest.java b/core/src/test/java/google/registry/tools/ServiceConnectionTest.java index bde677c8f..026fa57de 100644 --- a/core/src/test/java/google/registry/tools/ServiceConnectionTest.java +++ b/core/src/test/java/google/registry/tools/ServiceConnectionTest.java @@ -15,8 +15,6 @@ package google.registry.tools; import static com.google.common.truth.Truth.assertThat; -import static google.registry.request.Action.GaeService.DEFAULT; -import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -28,7 +26,7 @@ import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpResponse; import com.google.common.collect.ImmutableMap; -import google.registry.request.Action.GkeService; +import google.registry.request.Action.Service; import java.io.ByteArrayInputStream; import org.junit.jupiter.api.Test; @@ -38,28 +36,9 @@ public class ServiceConnectionTest { @Test void testSuccess_serverUrl_notCanary() { ServiceConnection connection = - new ServiceConnection(false, false, null).withService(DEFAULT, false); + new ServiceConnection(false, null).withService(Service.FRONTEND, false); String serverUrl = connection.getServer().toString(); - assertThat(serverUrl).isEqualTo("https://default.example.com"); // See default-config.yaml - } - - @Test - void testFailure_mixedService() throws Exception { - IllegalArgumentException thrown = - assertThrows( - IllegalArgumentException.class, - () -> { - new ServiceConnection(true, false, null).withService(DEFAULT, true); - }); - assertThat(thrown).hasMessageThat().contains("Cannot switch from GkeService to GaeService"); - } - - @Test - void testSuccess_serverUrl_gae_canary() { - ServiceConnection connection = - new ServiceConnection(false, false, null).withService(DEFAULT, true); - String serverUrl = connection.getServer().toString(); - assertThat(serverUrl).isEqualTo("https://nomulus-dot-default.example.com"); + assertThat(serverUrl).isEqualTo("https://frontend.registry.test"); // See default-config.yaml } @Test @@ -73,7 +52,7 @@ public class ServiceConnectionTest { when(request.execute()).thenReturn(response); when(response.getContent()).thenReturn(ByteArrayInputStream.nullInputStream()); ServiceConnection connection = - new ServiceConnection(true, false, factory).withService(GkeService.PUBAPI, true); + new ServiceConnection(false, factory).withService(Service.PUBAPI, true); String serverUrl = connection.getServer().toString(); assertThat(serverUrl).isEqualTo("https://pubapi.registry.test"); connection.sendGetRequest("/path", ImmutableMap.of()); diff --git a/core/src/test/java/google/registry/tools/SetupOteCommandTest.java b/core/src/test/java/google/registry/tools/SetupOteCommandTest.java index a3174a415..8383d0c9a 100644 --- a/core/src/test/java/google/registry/tools/SetupOteCommandTest.java +++ b/core/src/test/java/google/registry/tools/SetupOteCommandTest.java @@ -135,7 +135,7 @@ class SetupOteCommandTest extends CommandTestCase { cloudTasksHelper.assertTasksEnqueued( "console-user-group-update", new TaskMatcher() - .service("TOOLS") + .service("BACKEND") .method(HttpMethod.POST) .path("/_dr/admin/updateUserGroup") .param("userEmailAddress", emailAddress) diff --git a/util/src/main/java/google/registry/util/RegistryEnvironment.java b/util/src/main/java/google/registry/util/RegistryEnvironment.java index 819efaa0b..00e918282 100644 --- a/util/src/main/java/google/registry/util/RegistryEnvironment.java +++ b/util/src/main/java/google/registry/util/RegistryEnvironment.java @@ -52,12 +52,6 @@ public enum RegistryEnvironment { /** System property for configuring which environment we should use. */ private static final String PROPERTY = "google.registry.environment"; - /** - * System property for if Nomulus is running on top of a self-hosted Jetty server (i.e., not in - * App Engine). - */ - private static final String JETTY_PROPERTY = "google.registry.jetty"; - /** Name of the environmental variable of the container name. */ private static final String CONTAINER_ENV = "CONTAINER_NAME"; @@ -97,11 +91,6 @@ public enum RegistryEnvironment { return valueOf(Ascii.toUpperCase(System.getProperty(PROPERTY, UNITTEST.name()))); } - // TODO(b/416299900): remove method after GAE is removed. - public static boolean isOnJetty() { - return Boolean.parseBoolean(System.getProperty(JETTY_PROPERTY, "false")); - } - public static boolean isCanary() { return IS_CANARY; }