HomePhabricator

Modernize Drydock Query + Attach code

Description

Modernize Drydock Query + Attach code

Summary:
Ref T9253. Some of the Drydock code is pretty old. This applies standard modernizations to it:

  • Modernize Query classes to use stuff like buildWhereClauseParts() and loadStandardPage().
  • Modernize all the getX() / attachX() stuff. In particular:
    • Require and attach implementations to Blueprints.
    • Require and attach Blueprints to Resources.
    • BlueprintImplementations are now always unique per-Blueprint so they can store/cache state if they want without running over one another.
    • BlueprintImplementations are now passed a $blueprint, like other similar APIs (this could go various ways but I generally like this as a balance of concerns).
NOTE: This probably doesn't run on its own, I'm just trying to split the next diff (core allocator stuff) up a bit and these pieces are all pretty standard.

Test Plan:

  • Not much; see next revision or two.
  • Clicked around Resource and Blueprint lists.

Reviewers: chad, hach-que

Reviewed By: chad, hach-que

Maniphest Tasks: T9253

Differential Revision: https://secure.phabricator.com/D14113