![]() 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> |
||
---|---|---|
.. | ||
controllers | ||
policies | ||
README.rst | ||
__init__.py | ||
api_config.py | ||
app.py | ||
policy.py |
README.rst
api
DC Manager API is Web Server Gateway Interface (WSGI) application to receive and process API calls, including keystonemiddleware to do the authentication, parameter check and validation, convert API calls to job rpc message, and then send the job to DC Manager Manager through the queue. If the job will be processed by DC Manager Manager in synchronous way, the DC Manager API will wait for the response from the DC Manager Manager. Otherwise, the DC Manager API will send response to the API caller first, and then send the job to DC Manager Manager in asynchronous way.
Multiple DC Manager API could run in parallel, and also can work in multi-worker mode.
Multiple DC Manager API will be designed and run in stateless mode, persistent data will be accessed (read and write) from the DC Manager Database through the DAL module.
Setup and encapsulate the API WSGI app
- app.py:
-
Setup and encapsulate the API WSGI app, including integrate the keystonemiddleware app
- api_config.py:
-
API configuration loading and init
- enforcer.py
-
Enforces policies on the version2 APIs