Adds the subcloud deploy bootstrap command to dcmanager. It only
performs the bootstrap phase, where all parameters are validated and
the bootstrap playbook is executed.
The bootstrap values can be updated using the bootstrap-values
parameter, otherwise the system will use the boostrap values from the
subcloud deploy create command.
Test Plan:
The following tests were run twice, once using the CLI, and once
using CURL to request the API directly.
The subcloud was created using the follwing command:
dcmanager subcloud deploy create
--bootstrap-address <bootstrap-address>
--bootstrap-values <bootstrap-values>
Except for the different release test, where the --release 21.12
parameter was also used.
The following commands were used to test the bootstrap (changing the
parameters accordingly for each test):
CLI: dcmanager subcloud deploy bootstrap
--bootstrap-address <bootstrap-address>
--bootstrap-values <bootstrap-values>
--sysadmin-password <password>
<subcloud name or id>
CURL: curl -X PATCH -H "X-Auth-Token: ${TOKEN//[$'\t\r\n']}"
"http://$MGMT_IP:8119/v1.0/phased-subcloud-deploy/
<subcloud name or id>/bootstrap"
-F bootstrap_values=@<bootstrap-values>
-F bootstrap-address=<bootstrap-address>
-F sysadmin_password=<b64 encoded password>
Success cases:
1. PASS - Bootstrap a subcloud without the bootstrap-values and
bootstrap-address parameters (omit them from the CLI/CURL
command) and verify that it uses the existing values
(from the deploy create command);
2. PASS - Bootstrap a subcloud with the same bootstrap-values and
bootstrap-address parameters used during deploy create
(include the parameters in the CLI/CURL command, using
the same values used during deploy create);
3. PASS - Bootstrap a subcloud with bootstrap-values containing a
new value for management_subnet, verifying that the
routes and endpoints are updated accordingly;
4. PASS - Verify that if a new bootstrap-address is used, the
subcloud inventory file is updated accordingly;
5. PASS - Verify subcloud bootstrap with previous release version
(tested with 21.12);
Failure cases:
6. PASS - Verify that it's not possible to bootstrap with a
management_subnet that conflicts with the subnet of an
existing subcloud;
7. PASS - Verify that it's not possible to bootstrap when the
deploy status is not in one of the following states:
'install-complete', 'bootstrap-failed',
'bootstrap-aborted', 'bootstrap-complete' and
'create-complete';
8. PASS - Verify that it's not possible to bootstrap when the
'name' parameter from bootstrap-values doesn't match the
subcloud name;
9. PASS - Verify that it's not possible to bootstrap without
passing the 'sysadmin-password' parameter (using CURL,
since the CLI will prompt for the password if it's
omited);
10. PASS - Verify that it's not possible to bootstrap with a
'sysadmin-password' that's not b64encoded (using CURL,
since the CLI automatically encodes the password).
Story: 2010756
Task: 48114
Change-Id: Ic987406bbcc154a8edbaa008c40ccabe1766d03d
Signed-off-by: Gustavo Herzmann <gustavo.herzmann@windriver.com>