google-nomulus/java/google/registry
jianglai 1227046bcb Fix in-baliwick nameserver check bug in CloudDnsWriter
In publishDomain, we load the subordinate hosts of the domain from datastore and compare its nameservers to them. For any nameserver that is in-baliwick, we call publishSubordinateHost on it and stage the A/AAAA records of the host for publication.

This is superior to the old approach where we use hostName.endsWith(domainName) to check if a nameserver is in-baliwick because it will mistake ns.another-example.tld as a subordinate host of example.tld. It is also better than checking hostName.endsWith("." + domainName), which will catch false positives as above, but falls short in a corner case where the nameserver has been deleted before its superordinate domain's record is updated. In that case, subordinateHosts.cotains(hostName) will be false but hostName.endsWith("." + domainName) will still be true.

Note that we still use the suffix check in filterGlueRecords because it is filtering on existing records from Cloud DNS. It is even advantageous to do so because if there were (and there shouldn't be if everything is consistent) any orphaned glue records (suffix matches to the domain, but not actually in its subordinate host list), they would be retained by the filter and therefore be deleted when the staged changes are committed.

Also fixed a few tests that should have failed had we checked subrodinate hosts....

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=184732005
2018-02-20 15:15:57 -05:00
..
backup Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
batch Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
beam Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
bigquery Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
braintree Switch from Guava Optionals to Java 8 Optionals 2017-10-24 16:53:47 -04:00
builddefs Rename set to depset in .bzl and BUILD files 2017-08-29 16:53:21 -04:00
config Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
cron Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
dns Fix in-baliwick nameserver check bug in CloudDnsWriter 2018-02-20 15:15:57 -05:00
eclipse Switch from Guava Optionals to Java 8 Optionals 2017-10-24 16:53:47 -04:00
env Update sandbox / alpha cron.xml to be in line with production 2018-02-01 21:57:39 -05:00
export Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
flows Remove leniency on poll message ID format without years in them 2018-02-20 15:12:43 -05:00
gcs Add publish functionality to billing pipeline 2018-01-04 17:17:59 -05:00
groups Clean up some code quality issues 2017-12-01 22:14:06 -05:00
idn Update IDN tables to comply with https://www.iana.org/help/idn-repository-procedure 2018-02-01 21:59:14 -05:00
keyring Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
loadtest Replace com.google.common.base.Function with java.util.function.Function 2017-12-27 11:08:55 -05:00
mapreduce Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
model Remove leniency on poll message ID format without years in them 2018-02-20 15:12:43 -05:00
module Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
monitoring/whitebox Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
pricing Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
proxy Add TokenStore and QuotaManager to manage proxy quota requests 2018-01-19 14:46:44 -05:00
rdap Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
rde Add //third_party/java/jaxb dependency to targets using javax.xml.bind 2018-01-23 16:18:35 -05:00
reporting Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
request Refactor ICANN reporting and billing into common package 2018-02-01 21:56:06 -05:00
security Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
storage/drive Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
tldconfig/idn Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
tmch Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
tools Rename Soy map to legacy_object_map (first step of migration) 2018-02-20 15:14:30 -05:00
ui Rename Soy map to legacy_object_map (first step of migration) 2018-02-20 15:14:30 -05:00
util Add //third_party/java/jaxb dependency to targets using javax.xml.bind 2018-01-23 16:18:35 -05:00
whois Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
xjc Add //third_party/java/jaxb dependency to targets using javax.xml.bind 2018-01-23 16:18:35 -05:00
xml Add //third_party/java/jaxb dependency to targets using javax.xml.bind 2018-01-23 16:18:35 -05:00
BUILD Add nocron ear and deployer rules for the crash environment 2017-10-04 16:16:45 -04:00
repositories.bzl Update FOSS bazel version to 0.10.0 2018-02-05 23:54:49 -05:00