This commit adds the command "subcloud deploy resume" to dcmanager.
It will resume subcloud deployment based on current subcloud deploy
state. All parameters except sysadmin-password are optional if they
were already provided in previous phases. Since install and config
are both optional phases, they will only be executed if respective
parameters are/have been provided.
Test Plan:
These options will be referenced on the test cases as the values
already present on the system controller before the resume operation
or the values passed to it's command:
[1] All values (install_values, bootstrap_values, deploy_config)
[2] Only install_values and bootstrap_values
[3] Only bootstrap_values
[4] Only deploy_config
Success cases:
- PASS: Resume from create-complete previously having [1] without
passing any new parameter and verify that the subcloud's
deploy state is 'complete'.
- PASS: Resume from create-complete previously having [2] without
passing any new parameter and verify that the subcloud's
deploy state is 'bootstrap-complete'.
- PASS: Resume from create-complete previously having [3] without
passing any new parameter and manually installing the
subcloud and verify that it's deploy state is
'bootstrap-complete'.
- PASS: Resume from create-complete previously having [1] passing
a previous release (21.12) and verify that the subcloud's
deploy state is 'complete' and the installed load is
correct.
- PASS: Resume from install-complete previously having [1] without
passing any new parameter and verify that the subcloud's
deploy state is 'complete'.
- PASS: Resume from install-complete previously having [2] without
passing any new parameter and verify that the subcloud's
deploy state is 'bootstrap-complete'.
- PASS: Resume from install-complete previously having [3] without
passing any new parameter and verify that it's deploy state
is 'bootstrap-complete'.
- PASS: Resume from install-failed previously having [1] passing
new install_values and verify that the subcloud's deploy
state is 'complete' and the installation used new values.
- PASS: Resume from install-failed previously having [1] without
passing any new parameter and verify that the subcloud's
deploy state is 'complete'.
- PASS: Resume from install-aborted previously having [1] without
passing any new parameter and verify that the subcloud's
deploy state is 'complete'.
- PASS: Resume from bootstrap-complete previously having [1] without
passing any new parameter and verify that the subcloud's
deploy state is 'complete'.
- PASS: Resume from bootstrap-complete previously having [3] and
passing [4] and verify that the subcloud's deploy state
is 'complete'.
- PASS: Resume from bootstrap-failed previously having [1] passing
new bootstrap_values and verify that the subcloud's deploy
state is 'complete' and the bootstrap used new values.
- PASS: Resume from bootstrap-failed previously having [1] without
passing any new parameter and verify that the subcloud's
deploy state is 'complete'.
- PASS: Resume from bootstrap-aborted previously having [1] without
passing any new parameter and verify that the subcloud's
deploy state is 'complete'.
- PASS: Resume from config-failed previously having [1] passing
new deploy_config file and verify that the subcloud's deploy
state is 'complete' and the config used new values.
- PASS: Resume from config-failed previously having [1] without
passing any new parameter and verify that the subcloud's
deploy state is 'complete'.
- PASS: Resume from config-aborted previously having [1] without
passing any new parameter and verify that the subcloud's
deploy state is 'complete'.
- PASS: Repeat previous tests but directly call the API (using
CURL) instead of using the CLI.
Failure cases:
- PASS: Verify that it's not possible to resume deployment if the
deploy state is not one of the following:
- create-complete
- install-complete
- pre-install-failed
- install-failed
- install-aborted
- bootstrap-complete
- pre-bootstrap-failed
- bootstrap-failed
- bootstrap-aborted
- pre-config-failed
- config-failed
- config-aborted
- PASS: Call the API directly, passing bmc-password and/or
sysadmin-password as plain text as opposed to b64encoded and
verify that the response contains the correct error code
and message.
- PASS: Resume from bootstrap-complete previously having [2] and
verify that the system alerts that the only remaining phase
is config and there's no deploy-config file available
Story: 2010756
Task: 48316
Change-Id: I81c0a226b3ede56628e21372b02748013c3f6b35
Signed-off-by: Victor Romano <victor.gluzromano@windriver.com>