Skip to content

Introspection Design

Sam Hartman edited this page May 11, 2022 · 2 revisions

Use cases

  • Know which injection keys are being instantiated

  • Track which asynchronous instantiations are in progress and what triggered them.

  • Track any running setup tasks and which instantiation (if any) triggered them.

  • Track any instantiations triggered by setup tasks

  • Ask a SetupTaskMixin which setup tasks it would run and what their dependencies are.

Examples of resulting UIs

  • tree of enclave->machine->setup_tasks

  • List of running instantiations->setup_tasks showing blockages

  • Tree of injectors showing dependencies

Other event system use cases

It's likely that a solution here will involve the Carthage event interface (or a redesign of that interface). Let's take a look at existing and desired use cases of that system

  • start/stop notification for Machines
  • public IP available for AwsVm
  • The other side of the NetworkConfig has finished resolving so that ModelGroup.resolve_networking can know that it has converged

Clone this wiki locally