Create ICANN report upload action

This is the first step in moving the current []cron-Python reporting scripts
into App Engine, as an official part of the Nomulus package. This copies the
structure of RDE uploads, with a few changes specific to monthly reporting.

I've left some TODOs related to actually testing it on the ICANN endpoint, as we're still not sure how files to be uploaded will be staged, and whether we can actually ping their endpoint on valid ports (80 or 443).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160408703
This commit is contained in:
larryruili 2017-06-28 08:03:14 -07:00 committed by Ben McIlwain
parent f721bda16d
commit 4130a8a75e
18 changed files with 775 additions and 1 deletions

View file

@ -451,6 +451,40 @@ public final class RegistryConfig {
return config.gSuite.outgoingEmailDisplayName;
}
/**
* Returns the Google Cloud Storage bucket for ICANN transaction and activity reports to
* be uploaded.
*
* @see google.registry.reporting.IcannReportingUploadAction
*/
@Provides
@Config("icannReportingBucket")
public static String provideIcannReportingBucket(@Config("projectId") String projectId) {
return projectId + "-reporting";
}
/**
* Returns the URL we send HTTP PUT requests for ICANN monthly transactions reports.
*
* @see google.registry.reporting.IcannHttpReporter
*/
@Provides
@Config("icannTransactionsReportingUploadUrl")
public static String provideIcannTransactionsReportingUploadUrl(RegistryConfigSettings config) {
return config.icannReporting.icannTransactionsReportingUploadUrl;
}
/**
* Returns the URL we send HTTP PUT requests for ICANN monthly activity reports.
*
* @see google.registry.reporting.IcannHttpReporter
*/
@Provides
@Config("icannActivityReportingUploadUrl")
public static String provideIcannActivityReportingUploadUrl(RegistryConfigSettings config) {
return config.icannReporting.icannActivityReportingUploadUrl;
}
/**
* Returns the Google Cloud Storage bucket for staging escrow deposits pending upload.
*

View file

@ -26,6 +26,7 @@ public class RegistryConfigSettings {
public RegistryPolicy registryPolicy;
public Datastore datastore;
public Caching caching;
public IcannReporting icannReporting;
public Rde rde;
public RegistrarConsole registrarConsole;
public Monitoring monitoring;
@ -102,6 +103,12 @@ public class RegistryConfigSettings {
public int staticPremiumListMaxCachedEntries;
}
/** Configuration for ICANN monthly reporting. */
public static class IcannReporting {
public String icannTransactionsReportingUploadUrl;
public String icannActivityReportingUploadUrl;
}
/** Configuration for Registry Data Escrow (RDE). */
public static class Rde {
public String reportUrlPrefix;

View file

@ -136,6 +136,13 @@ oAuth:
# backend services, e. g. nomulus tool, EPP proxy, etc.
allowedOauthClientIds: []
icannReporting:
# URL we PUT monthly ICANN transactions reports to.
icannTransactionsReportingUploadUrl: https://ry-api.example.org/report/registrar-transactions
# URL we PUT monthly ICANN activity reports to.
icannActivityReportingUploadUrl: https://ry-api.example.org/report/registry-functions-activity
rde:
# URL prefix of ICANN's server to upload RDE reports to. Nomulus adds /TLD/ID
# to the end of this to construct the full URL.

View file

@ -35,6 +35,10 @@ registryPolicy:
multi-line
placeholder
icannReporting:
icannTransactionsReportingUploadUrl: https://ry-api.icann.org/report/registrar-transactions
icannActivityReportingUploadUrl: https://ry-api.icann.org/report/registry-functions-activity
rde:
reportUrlPrefix: https://ry-api.icann.org/report/registry-escrow-report
uploadUrl: sftp://placeholder@sftpipm2.ironmountain.com/Outbox