Add a -- migrate option in subcloud add CLI
This commit adds a "--migrate" to the "dcmanager subcloud add" command for migrating a subcloud from another distributed cloud. Tests see: https://review.opendev.org/c/starlingx/distcloud/+/779567 Depends-On: https://review.opendev.org/c/starlingx/distcloud/+/779567 Story: 2008774 Task: 42151 Change-Id: I0c5c9f954e7dd902ce40e90657a2031919b5e813 Signed-off-by: Yuxing Jiang <yuxing.jiang@windriver.com>
This commit is contained in:
parent
51f38c896c
commit
91ce260bff
|
@ -185,6 +185,13 @@ class AddSubcloud(base.DCManagerShowOne):
|
|||
required=False,
|
||||
help='Name or ID of subcloud group.'
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--migrate',
|
||||
required=False,
|
||||
action='store_true',
|
||||
help='Migrate a subcloud from another distributed cloud.'
|
||||
)
|
||||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
|
@ -237,6 +244,9 @@ class AddSubcloud(base.DCManagerShowOne):
|
|||
if parsed_args.group is not None:
|
||||
data['group_id'] = parsed_args.group
|
||||
|
||||
if parsed_args.migrate:
|
||||
data['migrate'] = 'true'
|
||||
|
||||
return dcmanager_client.subcloud_manager.add_subcloud(files=files,
|
||||
data=data)
|
||||
|
||||
|
|
|
@ -215,6 +215,42 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
|
|||
DEFAULT_SUBCLOUD_GROUP_ID,
|
||||
TIME_NOW, TIME_NOW), actual_call[1])
|
||||
|
||||
@mock.patch('getpass.getpass', return_value='testpassword')
|
||||
def test_add_migrate_subcloud(self, getpass):
|
||||
self.client.subcloud_manager.add_subcloud.\
|
||||
return_value = [SUBCLOUD]
|
||||
|
||||
values = {
|
||||
"system_mode": SYSTEM_MODE,
|
||||
"name": NAME,
|
||||
"description": DESCRIPTION,
|
||||
"location": LOCATION,
|
||||
"management_subnet": MANAGEMENT_SUBNET,
|
||||
"management_start_address": MANAGEMENT_START_IP,
|
||||
"management_end_address": MANAGEMENT_END_IP,
|
||||
"management_gateway_address": MANAGEMENT_GATEWAY_IP,
|
||||
"external_oam_subnet": EXTERNAL_OAM_SUBNET,
|
||||
"external_oam_gateway_address": EXTERNAL_OAM_GATEWAY_ADDRESS,
|
||||
"external_oam_floating_address": EXTERNAL_OAM_FLOATING_ADDRESS,
|
||||
}
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='w') as f:
|
||||
yaml.dump(values, f)
|
||||
file_path = os.path.abspath(f.name)
|
||||
actual_call = self.call(
|
||||
subcloud_cmd.AddSubcloud, app_args=[
|
||||
'--bootstrap-address', BOOTSTRAP_ADDRESS,
|
||||
'--bootstrap-values', file_path,
|
||||
'--migrate',
|
||||
])
|
||||
self.assertEqual((ID, NAME, DESCRIPTION, LOCATION, SOFTWARE_VERSION,
|
||||
MANAGEMENT_STATE, AVAILABILITY_STATUS, DEPLOY_STATUS,
|
||||
MANAGEMENT_SUBNET, MANAGEMENT_START_IP,
|
||||
MANAGEMENT_END_IP, MANAGEMENT_GATEWAY_IP,
|
||||
SYSTEMCONTROLLER_GATEWAY_IP,
|
||||
DEFAULT_SUBCLOUD_GROUP_ID,
|
||||
TIME_NOW, TIME_NOW), actual_call[1])
|
||||
|
||||
def test_unmanage_subcloud(self):
|
||||
self.client.subcloud_manager.update_subcloud.\
|
||||
return_value = [SUBCLOUD]
|
||||
|
|
Loading…
Reference in New Issue