f081453b3c
This commit adds the command "subcloud deploy abort" to dcmanager. It allows the user to abort the on-going execution of a playbook against the subcloud. Any task will be aborted immediately if the unabortable flag is not set by the playbook [1]. If current operation is install, a shutdown command will also be issued. Test Plan: Success cases: - PASS: Trigger an abort during installation and verify that the playbook execution was aborted immediately, the subcloud was shut dows after it and the RVMC pod and job were terminated. - PASS: Trigger an abort during config and verify that the playbook execution was aborted immediately. - PASS: Trigger an abort during bootstrap without the presence of unabortable flag and verify that the playbook execution was aborted immidiately. - PASS: Trigger an abort during bootstrap with the presence of unabortable flag and verify that the playbook execution was aborted only after the flag was deleted. - PASS: Trigger an abort directly calling the API (using CURL instead of using the CLI. Failure cases: - PASS: Verify that the abort request is rejected if deploy state is not 'installing', 'bootstrapping' or 'configuring'. - PASS: Abort when an unabortable task is running and then force an external error during this task restarting dcmanager-manager service, verify that deploy state is set to a failed state e.g. bootstrap-failed. - PASS: Abort when an unabortable task is running and then force an internal error during this task using ansible.builtin.fail module, verify that deploy state is set to a failed state e.g. bootstrap-failed. - PASS: Abort when an unabortable task is running and then force the playbook to halt the execution during this task using ansible.builtin.pause module, verify that deploy state is set to a failed state after 10 minutes e.g. bootstrap-failed. Story: 2010756 Task: 48102 Co-Authored-By: Gustavo Herzmann <gustavo.herzmann@windriver.com> Signed-off-by: Victor Romano <victor.gluzromano@windriver.com> Change-Id: Ic5311324a76bf7ce1215692e934d5577ff82868e |
||
---|---|---|
.. | ||
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