VM creation was nested and using redundant APIs to get the same information.
VM creation had some complex logic around multi-VM creation and power-on. Those were added by me and the intern a long time ago, but they are not relevant now. They also hinder readability and ability to maintain and add new code.
ExtraConfig update updates one config at a time and each update is slow. They can be batched. (For a single-config update, one can use a single-element map).
There were some functions that were blocking with the task. Now these functions are essentially asynchronous with the task being returned to the caller. It is a simple pattern to block in the caller.
Some basic decomposition into functions to help readability.
All of the changes are in the common core. They affect caller codepaths on CSE and CAPVCD. Those will be handled by commits in those projects separately.
All of the above are tested by a small test written in the PR.
All of the changes are in the common core. They affect caller codepaths on CSE and CAPVCD. Those will be handled by commits in those projects separately.
All of the above are tested by a small test written in the PR.
This change is