HomePhabricator

When dirtying repository cluster routing caches after an Almanac edit, discover…

Description

When dirtying repository cluster routing caches after an Almanac edit, discover linked bindings from devices

Summary:
See PHI1030. When you edit an Almanac object, we attempt to discover all the related objects so we can dirty the repository cluster routing cache: if you modify a Device or Service that's part of a clustered repository, we need to blow away our cached view of the layout.

Currently, we don't correctly find linked Bindings when editing a Device, so we may miss Services which have keys that need to be disabled. Instead, discover these linked objects.

See D17000 for the original implementation and more context.

Test Plan:

  • Used var_dump() to dump out the discovered objects and dirtied cache keys.
  • Before change: editing a Service dirties repository routing keys (this is correct), but editing a Device does not.
  • After change: editing a Device now correctly dirties repository routing keys.

Reviewers: amckinley

Reviewed By: amckinley

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