distcloud/distributedcloud/dcmanager/api/policies
twang4 24a825848c Add subcloud secondary status support and migration
Definition of "Day-2": User can perform the operation post
the initial deployment.

Definition of "secondary": A secondary subcloud is just in the
DB, will not do any other operations like management/sync.

Update DB of subclouds add rehome_data column.

Update "dcmanager subcloud add --secondary" to save data for
day-2's rehome/migrate purpose.

Update "dcmanager subcloud update --bootstrap-address
--bootstrap-values" to save data for day-2's
rehome/migrate purpose.

Add "dcmanager subcloud migrate" for day-2's rehome/migrate

Example of usage:
dcmanager subcloud add --secondary --bootstrap-address \
128.224.115.15 --bootstrap-values ./sub1-bootsrapvalues.yml
dcmanager subcloud migrate sub1 --sysadmin-password PASSWORD
EQUALS TO:
dcmanager subcloud add --migrate --bootstrap-address \
123.123.123.123 --bootstrap-values ./sub1-bootsrapvalues.yml \
--sysadmin-password password

This commit updates the 'subcloud add' implementation to use
the 'secondary' subcloud deployment operations.
It saves rehome necessary data as JSON format into the
'subclouds' table's 'rehome_data' column in the DB.
Additionally, it adds the 'migrate' subcommand for
subcloud day-2's migration abilities.

Test Plan:
1. PASS - Verify that 'secondary' option works for 'subcloud add'
              successfully.
2. PASS - Verify that 'bootstrap-values' could update
               subclouds' rehome_data through api.
               successfully.
3. PASS - Verify that 'bootstrap-address' could update
               subclouds' rehome_data through api.
               successfully.
4. PASS - Verify that 'migrate' command can migrate a 'secondary'
               subclouds successfully.
5. PASS - Verify original subcloud add/update functionalities
               successfully.
6. PASS - Verify 'subcloud add --secondary' can handle error
              And set secondary-failed successfully.
7. PASS - Verify delete a 'secondary-failed' subcloud
              successfully

CLI example:
dcmanager subcloud add --secondary --bootstrap-address 128.224.119.55 \
--bootstrap-values ./testsub.yml

dcmanager subcloud update testsub --bootstrap-address 128.224.119.55 \
--bootstrap-values ./testsub.yml

dcmanager subcloud migrate testsub --sysadmin-password PASSWORD
API use case:
PATCH /v1.0/subclouds/testsub/migrate

Story: 2010852
Task: 48503
Task: 48484
Change-Id: I9a308a4e2cc5057091ba195c4d05e9d1eb4a950c
Signed-off-by: Wang Tao <tao.wang@windriver.com>
2023-08-25 11:03:17 +08:00
..
__init__.py Add 'subcloud deploy create' command to dcmanager 2023-06-20 09:13:41 -03:00
alarm_manager.py Implement access control for DC API 2022-09-22 18:26:35 -03:00
base.py Implement access control for DC API 2022-09-22 18:26:35 -03:00
phased_subcloud_deploy.py Add 'subcloud deploy complete' command to dcmanager 2023-07-31 16:59:16 +00:00
subcloud_backup.py Create subcloud-backup restore command 2022-11-04 16:00:58 -03:00
subcloud_deploy.py Add release optionality to subcloud-deploy upload/show 2023-03-16 21:31:07 -04:00
subcloud_group.py Implement access control for DC API 2022-09-22 18:26:35 -03:00
subclouds.py Add subcloud secondary status support and migration 2023-08-25 11:03:17 +08:00
sw_update_options.py Implement access control for DC API 2022-09-22 18:26:35 -03:00
sw_update_strategy.py Implement access control for DC API 2022-09-22 18:26:35 -03:00