Description of problem: Current implementation of throttling, based on Automate, and should be done in backend, because: - Automate sandbox execution of each step and so is expensive - Limited access to Automate model attributes - Current throttling mechanism is very clumsy - Have to ensure its singleton instance - Have to manage its life-cycle - Have to invoke the throttling logic in every state machine transitions and onEntry/onExit method - And only have chance to run when state changes - Automate isn’t intuitive in describing migration flow - The logic is littered across a bunch of various yaml and ruby files - Hard to understand the logic - Hard to maintain and enhance
In total 3 PRs are merged and they need to be back ported to hammer. https://github.com/ManageIQ/manageiq-content/pull/504 https://github.com/ManageIQ/manageiq/pull/18415 https://github.com/ManageIQ/manageiq/pull/18521
Also need: https://github.com/ManageIQ/manageiq/pull/18570
Verified, checked on 5.11.0.14.20190710225033_cb17ff0