ViewsDriver

class ViewsDriver(args: List<String>, concurrency: Int)

The view store's part of the rehearsal (driver views …), against the 9.x view store the example-server embeds or the V10 view store service:

driver views seed     --base=<9.x url> --book=<file> --settings=<file> --views=N [--tenants=T] [--users=U]
driver views traffic --version=9x|v10 --base=<url> --book=<file> --seconds=S [--touched=<file>] [--create=K]
driver views await --base=<v10 url> --touched=<file> [--timeout=S]
driver views states --version=9x|v10 --base=<url> --book=<file> --out=<file> [--sample=N]
driver views verify --base=<9.x url> --touched=<file>
driver views settings --version=9x|v10 --base=<url> --settings=<file>
  • seed creates N views in 9.x, each taken through what its index draws: saved, renamed, shared (its owner becomes (shared)) and claimed by another user (a 9.x ViewAudienceChanged, an owner transfer), or deleted; each user's preferences for a definition; each tenant's wording of three datasets, one of them cleared again.

  • traffic renames personal views for S seconds; with --create, it creates K views instead (on V10 a ViewCreated at revision 2, which 9.x cannot read), and nothing else.

  • await waits until V10 holds every touched view at its version; states reads every N-th view that is not deleted, its version and its state without what one version derives (id, V10's kind), for driver compare. 9.x is read from its snapshots, the only state its view store serves. 9.x saves one after each command and acknowledges the command's state event whether the save succeeds or not, so a save that fails (a MongoDB connection reset, say) is dropped, and the view's snapshot stays at the version before until its next command: 9.x's events still hold the version, and loading the view reads them. So a 9.x view whose snapshot is older than its booked version is read again for a while; one that stays older is printed STALE and left out of the file, listed under $stale with its snapshot's version and its booked one, and compare leaves it out on both sides and counts it. The migration's own check of that snapshot is migrate-data compare's, at the snapshot's version.

  • verify renames, in 9.x after the rollback, every view V10 touched, and checks that 9.x applies it on the version V10 left: 9.x reads what export wrote back.

  • settings sets again every booked preferences and every wording not cleared, and checks that each lands on the version after the booked one: on V10 after the cut-over, that its derived ids find what was imported (an id derived otherwise starts an empty aggregate at version 1); on 9.x after the rollback, that 9.x reads what export wrote back.

Constructors

Link copied to clipboard
constructor(args: List<String>, concurrency: Int)

Functions

Link copied to clipboard
fun run(): Int