*** Reason for rollback ***
This code is fine, and I will be resurrecting it unaltered next week. It's only being rolled back for operational reasons related to the timing of our internal pushes.
*** Original change description ***
Switch over to non-ReferenceUnion fields on DomainBase
This is the second phase of a three phase migration to remove
ReferenceUnions. As of the end of this phase, ReferenceUnions are no longer read
from in any active code paths, but are still written to in case a rollback to
the previous version is necessary. The third and final phase will remove the
ReferenceUnions entirely.
***
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136642759
It's provided in ToolsRequestComponent, so it absolutely should be running on
the tools service. This was just a flat-out bug.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136630743
Compile-time constant inlining may interfere with JCommander's processing if a field is made final - @ParametersDelegate fields are particularly misleading. Remove the one instance of that and add warning comments elsewhere. See
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136469351
This doesn't change the end result of a successful run, though this is what a typical flow looks like prior to this fix:
Consider a sheet with 10 data rows (+ 1 header row = 11). A 10-row data set will call worksheet.setRowCount(10), which truncates the last row of the existing sheet. This row will eventually be added again in the last for loop, but if the synchronizer fails mid-sync, this last row will remain dropped. This fix will prevent this last row from being dropped.
This doesn't fix the broader issue of SheetSynchronizer not behaving transactionally -- that's a different can of worms.
See the linked bug for an instance where the synchronizer failed mid-run and dropped a data row as a result.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136398109
This is the second phase of a three phase migration to remove
ReferenceUnions. As of the end of this phase, ReferenceUnions are no longer read
from in any active code paths, but are still written to in case a rollback to
the previous version is necessary. The third and final phase will remove the
ReferenceUnions entirely.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136388057
Use bundled params instead of passing individual arguments through
epp_session.js.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136384801
There's no reason not to allow a one-character search string when there are no wildcards. And the ROID validity pattern did not allow underscores, which was causing problems with our ROIDs.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136256605
It is important to get at least this one commit in before the public Nomulus
release so that none of our public users will have to go through this data
migration (although we will have to).
The migration strategy is as follows:
1. Dual-write to non-ReferenceUnion fields in addition to the current
ReferenceUnion fields in use, and add new indexes (this commit). Deploy.
2. Run the ResaveAllEppResourcesAction backfill [].
3. Switch all code over to using the new fields. Dual-write is still in effect,
except it is now copying over the values of the new fields to the old
fields. Switch over all BigQuery reporting scripts to use the new
fields. Deploy.
4. Remove all of the old code and indexes. Deploy.
5. (Optional, at our leisure) Re-run the ResaveAllEppResourcesAction backfill
[] to delete the old obsolete fields.
Note that this migration strategy is rollback-safe at every step -- new data is
not read until it has already been written out in the previous step, and old
data is not removed immediately following a step in which it was still being
read, so the previous step is safe to roll back to.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136196988
Parameterize integration, support and announcement email addresses and contact
phone number, make static parameters flow through the system in a consistent
manner.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136183813
These are used to test our open-source build under the Kokoro Jenkins
environment ([]
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136182927
This makes the usage of DnsQueue.create() safer, since we're no longer
forced to hardcode a copy of the @Config("dnsWriteLockTimeout") value
within that method. That value is only needed for leaseTasks(), which
is only called in one place (ReadDnsQueueAction), so we can just pass
it in from that callsite.
Also removes an unused overload of leaseTasks() that allowed specifying
a tag, which is a feature we no longer need.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136162491
ICANN clarified some errors in the operational profile. Luckily, we had already guessed that that's how things should be.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136081694
There are no applications extant that predate the creationTrid field.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136047561
This is to better distinguish between an LRP "token" (the string passed along in EPP) and the datastore entity that contains the token and all metadata.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135943480
It is no longer needed since we don't do log-replay and it's
annoying to support in the flat flows.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135805088
There was a circular reference when hydrating a domain with a
subordinate host, since the host references the domain. To fix
this, I redid @DoNotHydrate to be the way it should have been,
rather than the hack I had originally submitted. I also beefed
up the unit tests of the epp resource types to check for cycles.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135792416
This eliminates the transactional load of ForeignKeyIndexes and
EppResourceIndexes, the latter of which was problematic because it is parented
on the EppResourceIndexBucket entity group, and can cause concurrent
modification exceptions on live code paths. By removing the transactional load
and only touching that entity group on the delete, the number of potential
concurrent modification exceptions is significantly reduced.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135706974
This CL implements the TLD-specific extra flow logic for updates, with tests, based on the static helper classes of the previous CL.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135683537
The ICAAN Operational Profile dictates that a notice be added to the RDAP search results response when there are more objects than the server's chosen result set size. This CL (hopefully the last one) handles the fixes for entity (contact and registrar) searches.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135494283
Very few flows actually check the phase. Push the checks down to the leaf
flows so that we can remove the inherited code from ResourceFlow and replace
it with utility methods. In the process, document and test two places that
throw the exception but did not previously test it.
This introduces a temporary hack in BaseDomainCreateFlow that does something
specific for DomainApplicationCreateFlow. It will go away literally tomorrow
when I flatten that flow.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135480538
The ICAAN Operational Profile dictates that a notice be added to the RDAP search results response when there are more objects than the server's chosen result set size. This CL handles the fixes for nameserver searches.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135411617