6b7b012992
This commit adds the command "subcloud deploy config" to dcmanager. It provides similar options as dcmanager subcloud reconfig. However, the --deploy-config file is optional if it has been provided previously via subcloud deploy config or subcloud deploy create command. Test Plan: Success cases: - PASS: Bootstrap a subcloud then issue "dcmanager subcloud deploy config" command with --deploy-config option to apply initial config. Verify that the subcloud is successfully configured. - PASS: Create a deploy config using dcmanager subcloud deploy create with --deploy-config option. Install and bootstrap the subcloud then config the subcloud using dcmanger subcloud deploy config with --deploy-config option. Verify that the subcloud is successfully configured with config options provided last. - PASS: Bootstrap a subcloud then issue "dcmanager subcloud deploy config" command with --deploy-config option to apply an erroneous config. Verify that the subcloud fails to be configured. Repeat the command this time with a good config file and verify that the subcloud is successfully configured. - PASS: Apply config passing deploy_config file for a subcloud running a previous release (21.12) and verify that the subcloud was successfully configured. - PASS: Create a subcloud deploy with --deploy-config option, install and bootstrap the subcloud then issue "dcmanager subcloud deploy config" command without --deploy-config option. Verify that the subcloud is successfully configured. - 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 run the config if deploy state is not 'complete', 'pre-config-failed', 'config-failed', 'deploy-failed', 'bootstrapped' or in a prestaging state. ('deploy-failed' will be removed once 'subcloud reconfig' is deprecated) - PASS: Verify that it's not possible to run "dcmanager subcloud deploy config" command without providing a deploy config file if this has never been provided before. - PASS: Verify that it's not possible to run the config without previously uploading deploy files. - PASS: Verify that it's not possible to configure without passing the 'sysadmin-password' parameter (using CURL, since the CLI will prompt for the password if it's omited) - PASS: Call the API directly, passing sysadmin-password as plain text as opposed to b64encoded and verify that the response contains the correct error code and message. Story: 2010756 Task: 48022 Signed-off-by: Victor Romano <victor.gluzromano@windriver.com> Change-Id: I65e1cbea1879d49066c2add69cabd04e64216b8f |
||
---|---|---|
.. | ||
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