google-nomulus/javatests/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 Migrate final try/catch test assertions to use assert/expectThrows 2018-01-19 14:43:12 -05:00
beam Move invoice generation to billing bucket and improve emailing 2018-01-19 14:34:14 -05:00
bigquery Automatically refactor more exception testing to use new JUnit rules 2017-12-27 10:42:36 -05:00
builddefs Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
config Remove more unused Truth8.assertThat() static imports in tests 2017-11-07 17:22:56 -05:00
cron Automatically refactor more exception testing to use new JUnit rules 2017-12-27 10:42:36 -05:00
dns Fix in-baliwick nameserver check bug in CloudDnsWriter 2018-02-20 15:15:57 -05:00
export Migrate final try/catch test assertions to use assert/expectThrows 2018-01-19 14:43:12 -05:00
flows Remove leniency on poll message ID format without years in them 2018-02-20 15:12:43 -05:00
groups Use method references when possible 2017-12-27 11:25:02 -05:00
keyring Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
mapreduce/inputs Migrate final try/catch test assertions to use assert/expectThrows 2018-01-19 14:43:12 -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 Add dependencies on classes that are not in the default modules in JDK 9 2018-02-01 22:00:49 -05:00
pricing Automatically refactor more exception testing to use new JUnit rules 2017-12-27 10:42:36 -05:00
proxy Add TokenStore and QuotaManager to manage proxy quota requests 2018-01-19 14:46:44 -05:00
rdap Add dependencies on classes that are not in the default modules in JDK 9 2018-02-01 22:00:49 -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 Remove unnecessary type specifications 2017-12-27 11:23:03 -05:00
security Remove more unused Truth8.assertThat() static imports in tests 2017-11-07 17:22:56 -05:00
server Move backported JUnit file to third_party (part 2) 2017-12-02 11:37:46 -05:00
storage/drive Remove unnecessary type specifications 2017-12-27 11:23:03 -05:00
testing Rationalize logging statements across codebase 2018-01-19 14:56:45 -05:00
tldconfig/idn Remove unnecessary type specifications 2017-12-27 11:23:03 -05:00
tmch Use method references instead of lambdas when possible 2017-12-27 10:55:03 -05:00
tools Delete obsolete billing code 2018-02-20 15:09:45 -05:00
ui Replace uses of @code in Javascript documentation with Markdown backticks 2018-02-05 23:51:49 -05:00
util Replace com.google.common.base.Function with java.util.function.Function 2017-12-27 11:08:55 -05:00
whois Migrate final try/catch test assertions to use assert/expectThrows 2018-01-19 14:43:12 -05:00
xjc Automatically refactor more exception testing to use new JUnit rules 2017-12-27 10:42:36 -05:00
xml Add basic AllocationToken validation/redemption for domain creates 2018-01-19 14:28:26 -05:00