distcloud/distributedcloud/dcmanager/api
Yuxing Jiang bff2f0aa2f Check vim strategy before updating network
It is risky to update a subcloud's network if there is an existing
vim strategy: the on-going vim strategy triggers lock/unlock/swact
can interrupt the ansible-playbook, leaving the subcloud in an
un-recoverable state.

To prevent this issue, this commit checks the on-going vim strategy,
and blocks the further operation if it exists.

Test plan:
1. Passed - deploy a DC with this change.
2. Passed - create a kube-rootca-update orchestration against a
subcloud, verify the subcloud update with network reconfiguration is
blocked by the ongoing strategy, verify the network reconfiguration is
not blocked after the strategy applied.
3. Passed - create a system-config-update strategy by updating the
addresspool on the subcloud, verify the subcloud update with network
reconfiguration is blocked when applying this strategy, verify this
operation is not blocked after the strategy applied.

Story: 2010722
Task: 49414
Signed-off-by: Yuxing Jiang <Yuxing.Jiang@windriver.com>
Change-Id: I2c3b824ebbd6766996f3422c681f16d03b6063fa
2024-02-08 16:48:12 -05:00
..
controllers Check vim strategy before updating network 2024-02-08 16:48:12 -05:00
policies Update tox pylint/pep8 for dcmanager 2024-01-18 21:51:25 +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 Update tox pylint/pep8 for dcmanager 2024-01-18 21:51:25 +00:00
policy.py Update tox pylint/pep8 for dcmanager 2024-01-18 21:51:25 +00: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