From 3c36b6b928a441e375ef9ec585e68967e888b9d1 Mon Sep 17 00:00:00 2001 From: ctingue Date: Fri, 14 Oct 2016 14:09:25 -0700 Subject: [PATCH] Clean up billing MR work ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=136196221 --- .../ExpandRecurringBillingEventsAction.java | 2 + .../registry/env/common/tools/WEB-INF/web.xml | 11 --- .../module/tools/ToolsRequestComponent.java | 4 - .../registry/tools/server/javascrap/BUILD | 1 + .../BackfillAutorenewBillingFlagAction.java | 97 ------------------- .../CountRecurringBillingEventsAction.java | 73 -------------- javatests/google/registry/batch/BUILD | 6 +- 7 files changed, 4 insertions(+), 190 deletions(-) delete mode 100644 java/google/registry/tools/server/javascrap/BackfillAutorenewBillingFlagAction.java delete mode 100644 java/google/registry/tools/server/javascrap/CountRecurringBillingEventsAction.java diff --git a/java/google/registry/batch/ExpandRecurringBillingEventsAction.java b/java/google/registry/batch/ExpandRecurringBillingEventsAction.java index 93622f73f..5837e6fa4 100644 --- a/java/google/registry/batch/ExpandRecurringBillingEventsAction.java +++ b/java/google/registry/batch/ExpandRecurringBillingEventsAction.java @@ -67,6 +67,8 @@ import org.joda.time.DateTime; * {@code cursorTime}) represents the inclusive lower bound on the range of billing times that will * be expanded as a result of the job (the exclusive upper bound being the execution time of the * job). + * + *

NOTE: This is not yet production ready and not configured to run. */ @Action(path = "/_dr/task/expandRecurringBillingEvents") public class ExpandRecurringBillingEventsAction implements Runnable { diff --git a/java/google/registry/env/common/tools/WEB-INF/web.xml b/java/google/registry/env/common/tools/WEB-INF/web.xml index d6b72a6ff..ff4adc638 100644 --- a/java/google/registry/env/common/tools/WEB-INF/web.xml +++ b/java/google/registry/env/common/tools/WEB-INF/web.xml @@ -72,17 +72,6 @@ /_dr/task/resaveAllEppResources - - - tools-servlet - /_dr/task/countRecurringBillingEvents - - - - - tools-servlet - /_dr/task/backfillAutorenewBillingFlag - diff --git a/java/google/registry/module/tools/ToolsRequestComponent.java b/java/google/registry/module/tools/ToolsRequestComponent.java index a4636612d..41d9686dc 100644 --- a/java/google/registry/module/tools/ToolsRequestComponent.java +++ b/java/google/registry/module/tools/ToolsRequestComponent.java @@ -42,8 +42,6 @@ import google.registry.tools.server.ResaveAllEppResourcesAction; import google.registry.tools.server.ToolsServerModule; import google.registry.tools.server.UpdatePremiumListAction; import google.registry.tools.server.VerifyOteAction; -import google.registry.tools.server.javascrap.BackfillAutorenewBillingFlagAction; -import google.registry.tools.server.javascrap.CountRecurringBillingEventsAction; import google.registry.tools.server.javascrap.RefreshAllDomainsAction; /** Dagger component with per-request lifetime for "tools" App Engine module. */ @@ -59,8 +57,6 @@ import google.registry.tools.server.javascrap.RefreshAllDomainsAction; WhiteboxModule.class, }) interface ToolsRequestComponent { - BackfillAutorenewBillingFlagAction backfillAutorenewBillingFlagAction(); - CountRecurringBillingEventsAction countRecurringBillingEventsAction(); CreateGroupsAction createGroupsAction(); CreatePremiumListAction createPremiumListAction(); DeleteEntityAction deleteEntityAction(); diff --git a/java/google/registry/tools/server/javascrap/BUILD b/java/google/registry/tools/server/javascrap/BUILD index 43f9bcfb6..9a25a4199 100644 --- a/java/google/registry/tools/server/javascrap/BUILD +++ b/java/google/registry/tools/server/javascrap/BUILD @@ -9,6 +9,7 @@ java_library( name = "javascrap", srcs = glob(["*.java"]), deps = [ + "//java/com/google/common/annotations", "//java/com/google/common/base", "//java/com/google/common/collect", "//third_party/java/appengine:appengine-api", diff --git a/java/google/registry/tools/server/javascrap/BackfillAutorenewBillingFlagAction.java b/java/google/registry/tools/server/javascrap/BackfillAutorenewBillingFlagAction.java deleted file mode 100644 index 258f07c1d..000000000 --- a/java/google/registry/tools/server/javascrap/BackfillAutorenewBillingFlagAction.java +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2016 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.tools.server.javascrap; - -import static google.registry.mapreduce.MapreduceRunner.PARAM_DRY_RUN; -import static google.registry.mapreduce.inputs.EppResourceInputs.createChildEntityInput; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.util.PipelineUtils.createJobPath; - -import com.google.appengine.tools.mapreduce.Input; -import com.google.appengine.tools.mapreduce.Mapper; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import com.googlecode.objectify.VoidWork; -import google.registry.mapreduce.MapreduceRunner; -import google.registry.model.billing.BillingEvent.Flag; -import google.registry.model.billing.BillingEvent.Recurring; -import google.registry.model.domain.DomainResource; -import google.registry.request.Action; -import google.registry.request.Parameter; -import google.registry.request.Response; -import google.registry.util.FormattingLogger; -import javax.inject.Inject; - -/** A mapreduce that backfills new {@link Flag#AUTO_RENEW} flag on recurring billing events. */ -@Action(path = "/_dr/task/backfillAutorenewBillingFlag") -public class BackfillAutorenewBillingFlagAction implements Runnable { - - private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass(); - - @Inject MapreduceRunner mrRunner; - @Inject @Parameter(PARAM_DRY_RUN) boolean isDryRun; - @Inject Response response; - @Inject BackfillAutorenewBillingFlagAction() {} - - @Override - public void run() { - response.sendJavaScriptRedirect(createJobPath(mrRunner - .setJobName("Backfill AUTO_RENEW flag on Recurring billing events") - .setModuleName("tools") - .runMapOnly( - new BackfillAutorenewBillingFlagMapper(isDryRun), - ImmutableList.of(createRecurringInput())))); - } - - private Input createRecurringInput() { - return createChildEntityInput( - ImmutableSet.>of(DomainResource.class), - ImmutableSet.>of(Recurring.class)); - } - - /** Mapper to count BillingEvent.Recurring resources. */ - public static class BackfillAutorenewBillingFlagMapper extends Mapper { - - private static final long serialVersionUID = -6576637759905280988L; - - private final boolean isDryRun; - - public BackfillAutorenewBillingFlagMapper(boolean isDryRun) { - this.isDryRun = isDryRun; - } - - @Override - public final void map(final Recurring recurring) { - try { - // A note on how this works: Since OnLoad makes the backfill change for us, all we need to - // do is check that this condition exists on the loaded entity, and just re-save to persist - // the new data to datastore. - if (!isDryRun) { - ofy().transactNew(new VoidWork() { - @Override - public void vrun() { - ofy().save().entity(ofy().load().entity(recurring).now()); - } - }); - getContext().incrementCounter("Saved Recurring billing events"); - } - getContext().incrementCounter("Recurring billing events encountered"); - } catch (Throwable t) { - logger.severe(t, "Error while backfilling AUTO_RENEW flags."); - getContext().incrementCounter("error: " + t.getClass().getSimpleName()); - } - } - } -} diff --git a/java/google/registry/tools/server/javascrap/CountRecurringBillingEventsAction.java b/java/google/registry/tools/server/javascrap/CountRecurringBillingEventsAction.java deleted file mode 100644 index ac3e40117..000000000 --- a/java/google/registry/tools/server/javascrap/CountRecurringBillingEventsAction.java +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2016 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.tools.server.javascrap; - -import static google.registry.mapreduce.inputs.EppResourceInputs.createChildEntityInput; -import static google.registry.util.PipelineUtils.createJobPath; - -import com.google.appengine.tools.mapreduce.Input; -import com.google.appengine.tools.mapreduce.Mapper; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import google.registry.mapreduce.MapreduceRunner; -import google.registry.model.EppResource; -import google.registry.model.billing.BillingEvent.Recurring; -import google.registry.request.Action; -import google.registry.request.Response; -import javax.inject.Inject; - -/** - * A mapreduce that counts all BillingEvent.Recurring entities. - * - *

This is a test of the ChildEntityInput/ChildEntityReader classes. - */ -@Action(path = "/_dr/task/countRecurringBillingEvents") -public class CountRecurringBillingEventsAction implements Runnable { - - // TODO(b/27562876): Delete this mapreduce once tested in production. - - @Inject MapreduceRunner mrRunner; - @Inject Response response; - @Inject CountRecurringBillingEventsAction() {} - - @Override - public void run() { - response.sendJavaScriptRedirect(createJobPath(mrRunner - .setJobName("Count recurring billing events") - .setModuleName("tools") - .runMapOnly( - new CountRecurringBillingEventsMapper(), - ImmutableList.of(createRecurringInput())))); - } - - private Input createRecurringInput() { - return createChildEntityInput( - ImmutableSet.>of(EppResource.class), - ImmutableSet.>of(Recurring.class)); - } - - /** Mapper to count BillingEvent.Recurring resources. */ - public static class CountRecurringBillingEventsMapper extends Mapper { - - private static final long serialVersionUID = -8547238315947793512L; - - public CountRecurringBillingEventsMapper() {} - - @Override - public final void map(final Recurring recurring) { - getContext().incrementCounter("recurring billing events"); - } - } -} diff --git a/javatests/google/registry/batch/BUILD b/javatests/google/registry/batch/BUILD index 46f62df63..5f73456b1 100644 --- a/javatests/google/registry/batch/BUILD +++ b/javatests/google/registry/batch/BUILD @@ -12,6 +12,7 @@ java_library( name = "batch", srcs = glob(["*.java"]), deps = [ + "//java/com/google/common/annotations", "//java/com/google/common/base", "//java/com/google/common/collect", "//java/com/google/common/io", @@ -30,12 +31,7 @@ java_library( "//third_party/java/servlet/servlet_api", "//third_party/java/truth", "//java/google/registry/batch", - "//java/google/registry/config", - "//java/google/registry/gcs", - "//java/google/registry/groups", - "//java/google/registry/mapreduce", "//java/google/registry/model", - "//java/google/registry/request", "//java/google/registry/util", "//javatests/google/registry/testing", "//javatests/google/registry/testing/mapreduce",