distcloud/distributedcloud/dcmanager/api
Hugo Brito 3d7cb75e22 Generalize subcloud network reconfiguration
This commit refactors the subcloud network reconfiguration,
allowing for a more flexible and generalized approach, adding
the option to fallback to the management network as well.

Test Plan:
PASS: Run dcmanager subcloud update with network paramaters
(dcmanager subcloud update --sysadmin-password <password>
--management-subnet <network-subnet>
--management-gateway-ip <network-gateway-ip>
--management-start-ip <network-start-ip>
--management-end-ip <network-end-ip>
--bootstrap-address <bootstrap-address> <subcloud_name>)
- The update_playbook will be called and update the subcloud
(subcloud route to systemcontroller and admin endpoints)
- A new route to the subcloud is created on the system controller.
- Subcloud service endpoint URLs are updated in keystone
(openstack endpoint list|grep <subcloud-name>) on the system controller.
PASS: verify successful deployment of a new subcloud
PASS: verify successful reconfiguration of a subcloud from mgmt to
admin network

Depends-On: https://review.opendev.org/c/starlingx/ansible-playbooks/+/878504

Story: 2010319
Task: 47706

Signed-off-by: Hugo Brito <hugo.brito@windriver.com>
Change-Id: I1df57a206e21fa2444bd645c456c4d5d1b539066
2023-04-04 13:00:03 -03:00
..
controllers Generalize subcloud network reconfiguration 2023-04-04 13:00:03 -03:00
policies Add release optionality to subcloud-deploy upload/show 2023-03-16 21:31:07 -04: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