diff --git a/java/google/registry/beam/spec11/Spec11Pipeline.java b/java/google/registry/beam/spec11/Spec11Pipeline.java index de58ab8b6..83fdeb63d 100644 --- a/java/google/registry/beam/spec11/Spec11Pipeline.java +++ b/java/google/registry/beam/spec11/Spec11Pipeline.java @@ -73,7 +73,7 @@ public class Spec11Pipeline implements Serializable { /** The JSON object field into which we put the registrar's e-mail address for Spec11 reports. */ public static final String REGISTRAR_EMAIL_FIELD = "registrarEmailAddress"; /** The JSON object field into which we put the registrar's name for Spec11 reports. */ - public static final String REGISTRAR_NAME_FIELD = "registrarName"; + public static final String REGISTRAR_CLIENT_ID_FIELD = "registrarClientId"; /** The JSON object field we put the threat match array for Spec11 reports. */ public static final String THREAT_MATCHES_FIELD = "threatMatches"; @@ -172,31 +172,31 @@ public class Spec11Pipeline implements Serializable { domains.apply("Run through SafeBrowsingAPI", ParDo.of(evaluateSafeBrowsingFn)); subdomains .apply( - "Map registrar name to email/ThreatMatch pair", + "Map registrar client ID to email/ThreatMatch pair", MapElements.into( TypeDescriptors.kvs( TypeDescriptors.strings(), TypeDescriptor.of(EmailAndThreatMatch.class))) .via( (KV kv) -> KV.of( - kv.getKey().registrarName(), + kv.getKey().registrarClientId(), EmailAndThreatMatch.create( kv.getKey().registrarEmailAddress(), kv.getValue())))) - .apply("Group by registrar name", GroupByKey.create()) + .apply("Group by registrar client ID", GroupByKey.create()) .apply( "Convert results to JSON format", MapElements.into(TypeDescriptors.strings()) .via( (KV> kv) -> { - String registrarName = kv.getKey(); + String clientId = kv.getKey(); checkArgument( kv.getValue().iterator().hasNext(), String.format( - "Registrar named %s had no corresponding threats", registrarName)); + "Registrar with ID %s had no corresponding threats", clientId)); String email = kv.getValue().iterator().next().email(); JSONObject output = new JSONObject(); try { - output.put(REGISTRAR_NAME_FIELD, registrarName); + output.put(REGISTRAR_CLIENT_ID_FIELD, clientId); output.put(REGISTRAR_EMAIL_FIELD, email); JSONArray threatMatchArray = new JSONArray(); for (EmailAndThreatMatch emailAndThreatMatch : kv.getValue()) { diff --git a/java/google/registry/beam/spec11/Subdomain.java b/java/google/registry/beam/spec11/Subdomain.java index faadc7fa5..e01f7bf91 100644 --- a/java/google/registry/beam/spec11/Subdomain.java +++ b/java/google/registry/beam/spec11/Subdomain.java @@ -36,12 +36,12 @@ import org.apache.beam.sdk.io.gcp.bigquery.SchemaAndRecord; public abstract class Subdomain implements Serializable { private static final ImmutableList FIELD_NAMES = - ImmutableList.of("fullyQualifiedDomainName", "registrarName", "registrarEmailAddress"); + ImmutableList.of("fullyQualifiedDomainName", "registrarClientId", "registrarEmailAddress"); /** Returns the fully qualified domain name. */ abstract String fullyQualifiedDomainName(); - /** Returns the name of the associated registrar for this domain. */ - abstract String registrarName(); + /** Returns the client ID of the associated registrar for this domain. */ + abstract String registrarClientId(); /** Returns the email address of the registrar associated with this domain. */ abstract String registrarEmailAddress(); @@ -57,7 +57,7 @@ public abstract class Subdomain implements Serializable { GenericRecord record = schemaAndRecord.getRecord(); return create( extractField(record, "fullyQualifiedDomainName"), - extractField(record, "registrarName"), + extractField(record, "registrarClientId"), extractField(record, "registrarEmailAddress")); } @@ -69,8 +69,9 @@ public abstract class Subdomain implements Serializable { */ @VisibleForTesting static Subdomain create( - String fullyQualifiedDomainName, String registrarName, String registrarEmailAddress) { - return new AutoValue_Subdomain(fullyQualifiedDomainName, registrarName, registrarEmailAddress); + String fullyQualifiedDomainName, String registrarClientId, String registrarEmailAddress) { + return new AutoValue_Subdomain( + fullyQualifiedDomainName, registrarClientId, registrarEmailAddress); } } diff --git a/java/google/registry/beam/spec11/sql/subdomains.sql b/java/google/registry/beam/spec11/sql/subdomains.sql index 2df1cf74c..5b7535bd3 100644 --- a/java/google/registry/beam/spec11/sql/subdomains.sql +++ b/java/google/registry/beam/spec11/sql/subdomains.sql @@ -20,7 +20,7 @@ SELECT domain.fullyQualifiedDomainName AS fullyQualifiedDomainName, - registrar.name AS registrarName, + registrar.clientId AS registrarClientId, COALESCE(registrar.emailAddress, '') AS registrarEmailAddress FROM ( ( SELECT @@ -37,13 +37,13 @@ FROM ( ( OR deletionTime > CURRENT_TIMESTAMP)) AS domain JOIN ( SELECT - __key__.name AS name, + __key__.name AS clientId, emailAddress FROM `%PROJECT_ID%.%DATASTORE_EXPORT_DATASET%.%REGISTRAR_TABLE%` WHERE type = 'REAL') AS registrar ON - domain.currentSponsorClientId = registrar.name) + domain.currentSponsorClientId = registrar.clientId) ORDER BY creationTime DESC diff --git a/javatests/google/registry/beam/spec11/Spec11PipelineTest.java b/javatests/google/registry/beam/spec11/Spec11PipelineTest.java index 9382e8d2a..b639c59d0 100644 --- a/javatests/google/registry/beam/spec11/Spec11PipelineTest.java +++ b/javatests/google/registry/beam/spec11/Spec11PipelineTest.java @@ -151,7 +151,7 @@ public class Spec11PipelineTest { JSONObject noEmailRegistrarJSON = new JSONObject(sortedLines.get(0)); assertThat(noEmailRegistrarJSON.get("registrarEmailAddress")).isEqualTo(""); - assertThat(noEmailRegistrarJSON.get("registrarName")).isEqualTo("noEmailRegistrar"); + assertThat(noEmailRegistrarJSON.get("registrarClientId")).isEqualTo("noEmailRegistrar"); assertThat(noEmailRegistrarJSON.has("threatMatches")).isTrue(); JSONArray noEmailThreatMatch = noEmailRegistrarJSON.getJSONArray("threatMatches"); assertThat(noEmailThreatMatch.length()).isEqualTo(1); @@ -162,7 +162,7 @@ public class Spec11PipelineTest { JSONObject someRegistrarJSON = new JSONObject(sortedLines.get(1)); assertThat(someRegistrarJSON.get("registrarEmailAddress")).isEqualTo("fake@someRegistrar.com"); - assertThat(someRegistrarJSON.get("registrarName")).isEqualTo("someRegistrar"); + assertThat(someRegistrarJSON.get("registrarClientId")).isEqualTo("someRegistrar"); assertThat(someRegistrarJSON.has("threatMatches")).isTrue(); JSONArray someThreatMatch = someRegistrarJSON.getJSONArray("threatMatches"); assertThat(someThreatMatch.length()).isEqualTo(1); @@ -174,7 +174,7 @@ public class Spec11PipelineTest { // theRegistrar has two ThreatMatches, we have to parse it explicitly JSONObject theRegistrarJSON = new JSONObject(sortedLines.get(2)); assertThat(theRegistrarJSON.get("registrarEmailAddress")).isEqualTo("fake@theRegistrar.com"); - assertThat(theRegistrarJSON.get("registrarName")).isEqualTo("theRegistrar"); + assertThat(theRegistrarJSON.get("registrarClientId")).isEqualTo("theRegistrar"); assertThat(theRegistrarJSON.has("threatMatches")).isTrue(); JSONArray theThreatMatches = theRegistrarJSON.getJSONArray("threatMatches"); assertThat(theThreatMatches.length()).isEqualTo(2);