mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
Add Spec11 registrar emailing mechanism
This adds the terminal step of the Spec11 pipeline- processing the output of the Beam pipeline to send an e-mail to each registrar informing them of identified 'bad urls.' This also factors out methods common between invoicing (which uses similar beam pipeline tools) and spec11 to the common superpackage ReportingModule + ReportingUtils classes. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=210932496
This commit is contained in:
parent
e4bb1c281c
commit
c5e6eae555
26 changed files with 816 additions and 93 deletions
|
@ -15,22 +15,14 @@
|
|||
package google.registry.reporting.billing;
|
||||
|
||||
import static google.registry.request.RequestParameters.extractOptionalBooleanParameter;
|
||||
import static google.registry.request.RequestParameters.extractRequiredParameter;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
import com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential;
|
||||
import com.google.api.client.http.HttpTransport;
|
||||
import com.google.api.client.json.JsonFactory;
|
||||
import com.google.api.services.dataflow.Dataflow;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import google.registry.config.RegistryConfig.Config;
|
||||
import google.registry.request.Parameter;
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import javax.inject.Qualifier;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import org.joda.time.YearMonth;
|
||||
|
@ -43,20 +35,9 @@ public final class BillingModule {
|
|||
public static final String OVERALL_INVOICE_PREFIX = "CRR-INV";
|
||||
public static final String INVOICES_DIRECTORY = "invoices";
|
||||
|
||||
static final String PARAM_JOB_ID = "jobId";
|
||||
static final String PARAM_SHOULD_PUBLISH = "shouldPublish";
|
||||
static final String BILLING_QUEUE = "billing";
|
||||
static final String CRON_QUEUE = "retryable-cron-tasks";
|
||||
|
||||
private static final String CLOUD_PLATFORM_SCOPE =
|
||||
"https://www.googleapis.com/auth/cloud-platform";
|
||||
|
||||
/** Provides the invoicing Dataflow jobId enqueued by {@link GenerateInvoicesAction}. */
|
||||
@Provides
|
||||
@Parameter(PARAM_JOB_ID)
|
||||
static String provideJobId(HttpServletRequest req) {
|
||||
return extractRequiredParameter(req, PARAM_JOB_ID);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Parameter(PARAM_SHOULD_PUBLISH)
|
||||
|
@ -73,23 +54,7 @@ public final class BillingModule {
|
|||
return String.format("%s/%s/", INVOICES_DIRECTORY, yearMonth.toString());
|
||||
}
|
||||
|
||||
/** Constructs a {@link Dataflow} API client with default settings. */
|
||||
@Provides
|
||||
static Dataflow provideDataflow(
|
||||
@Config("projectId") String projectId,
|
||||
HttpTransport transport,
|
||||
JsonFactory jsonFactory,
|
||||
Function<Set<String>, AppIdentityCredential> appIdentityCredentialFunc) {
|
||||
|
||||
return new Dataflow.Builder(
|
||||
transport,
|
||||
jsonFactory,
|
||||
appIdentityCredentialFunc.apply(ImmutableSet.of(CLOUD_PLATFORM_SCOPE)))
|
||||
.setApplicationName(String.format("%s billing", projectId))
|
||||
.build();
|
||||
}
|
||||
|
||||
/** Dagger qualifier for the subdirectory we stage to/upload from. */
|
||||
/** Dagger qualifier for the subdirectory we stage to/upload from for invoices. */
|
||||
@Qualifier
|
||||
@Documented
|
||||
@Retention(RUNTIME)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue