distcloud/distributedcloud/dcmanager/api
Gustavo Herzmann 2050cf7ceb Add 'subcloud deploy complete' command to dcmanager
This commit adds the subcloud deploy complete command to dcmanager.
It's used to mark the subcloud deployment as 'complete'. This is
useful when the user manually configures the subcloud and wants to finalize the deployment without running 'dcmanager subcloud deploy config'.

To run the 'deploy complete' operation deploy status of the subcloud
must be 'bootstrap-complete'.

This commit also fixes an issue with the value returned from the
subcloud_deploy_create function. It was returning the database model
object to the RCP call when it should be returning a dictionary.

Test Plan:
1. PASS - Bootstrap a subcloud, manually configuring it and then run
          the deploy complete command (by CLI and directly through the
          API). Verify that the deploy status updates from
          'bootstrap-complete' to 'complete';
2. PASS - Verify that the command is rejected when the deploy status
          is not 'bootstrap-complete'.

Story: 2010756
Task: 48453

Change-Id: Ie2eca930e4b13a50cc12e8b9eef79bcb5e7c671f
Signed-off-by: Gustavo Herzmann <gustavo.herzmann@windriver.com>
2023-07-31 16:59:16 +00:00
..
controllers Add 'subcloud deploy complete' command to dcmanager 2023-07-31 16:59:16 +00:00
policies Add 'subcloud deploy complete' command to dcmanager 2023-07-31 16:59:16 +00:00
README.rst Move content to subdir to support relocated packaging 2019-11-04 13:57:02 -05:00
__init__.py Move content to subdir to support relocated packaging 2019-11-04 13:57:02 -05:00
api_config.py Implement access control for DC API 2022-09-22 18:26:35 -03:00
app.py DC Manager API request audit logging 2022-02-24 21:01:00 +00:00
policy.py Implement access control for DC API 2022-09-22 18:26:35 -03:00

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