Merge "Update parameter names in network reconfiguration"

This commit is contained in:
Zuul 2023-04-04 22:51:49 +00:00 committed by Gerrit Code Review
commit 0bb69a4c76
2 changed files with 37 additions and 52 deletions

View File

@ -445,27 +445,27 @@ class UpdateSubcloud(base.DCManagerShowOne):
)
parser.add_argument(
'--admin-subnet',
'--management-subnet',
required=False,
help='Admin subnet of subcloud.'
help='Network subnet of subcloud.'
)
parser.add_argument(
'--admin-gateway-ip',
'--management-gateway-ip',
required=False,
help='Admin gateway ip of subcloud.'
help='Network gateway IP of subcloud.'
)
parser.add_argument(
'--admin-start-address',
'--management-start-ip',
required=False,
help='Admin start address of subcloud.'
help='Network start IP of subcloud.'
)
parser.add_argument(
'--admin-end-address',
'--management-end-ip',
required=False,
help='Admin end address of subcloud.'
help='Network end IP of subcloud.'
)
parser.add_argument(
@ -478,7 +478,7 @@ class UpdateSubcloud(base.DCManagerShowOne):
parser.add_argument(
'--bootstrap-address',
required=False,
help='bootstrap address of the subcloud to be updated, '
help='bootstrap address of the subcloud to be updated.'
)
parser.add_argument(
@ -502,7 +502,6 @@ class UpdateSubcloud(base.DCManagerShowOne):
dcmanager_client = self.app.client_manager.subcloud_manager
files = dict()
data = dict()
update_admin_network = False
if parsed_args.description:
data['description'] = parsed_args.description
@ -510,48 +509,26 @@ class UpdateSubcloud(base.DCManagerShowOne):
data['location'] = parsed_args.location
if parsed_args.group:
data['group_id'] = parsed_args.group
if parsed_args.admin_subnet:
data['admin_subnet'] = parsed_args.admin_subnet
update_admin_network = True
if parsed_args.admin_gateway_ip:
data['admin_gateway_ip'] = parsed_args.admin_gateway_ip
update_admin_network = True
if parsed_args.admin_start_address:
data['admin_start_address'] = parsed_args.admin_start_address
update_admin_network = True
if parsed_args.admin_end_address:
data['admin_end_address'] = parsed_args.admin_end_address
update_admin_network = True
if parsed_args.management_subnet:
data['management_subnet'] = parsed_args.management_subnet
if parsed_args.management_gateway_ip:
data['management_gateway_ip'] = parsed_args.management_gateway_ip
if parsed_args.management_start_ip:
data['management_start_ip'] = parsed_args.management_start_ip
if parsed_args.management_end_ip:
data['management_end_ip'] = parsed_args.management_end_ip
if parsed_args.bootstrap_address:
data['bootstrap_address'] = parsed_args.bootstrap_address
subcloud_network_values = [
data.get('management_subnet'),
data.get('management_gateway_ip'),
data.get('management_start_ip'),
data.get('management_end_ip'),
data.get('bootstrap_address')
]
# Semantic check if the required arguments for updating admin network
if update_admin_network:
if not parsed_args.admin_subnet:
error_msg = ("Argument --admin-subnet is required for admin "
"network reconfiguration request.")
raise exceptions.DCManagerClientException(error_msg)
if not parsed_args.admin_gateway_ip:
error_msg = ("Argument --admin-gateway-ip is required for "
"admin network reconfiguration request.")
raise exceptions.DCManagerClientException(error_msg)
if not parsed_args.admin_start_address:
error_msg = ("Argument --admin-start-address is required for "
"admin network reconfiguration request.")
raise exceptions.DCManagerClientException(error_msg)
if not parsed_args.admin_end_address:
error_msg = ("Argument --admin-end-address is required for "
"admin network reconfiguration request.")
raise exceptions.DCManagerClientException(error_msg)
if not parsed_args.bootstrap_address:
error_msg = ("Argument --bootstrap-address is required for "
"admin network reconfiguration request.")
raise exceptions.DCManagerClientException(error_msg)
if all(value is not None for value in subcloud_network_values):
# Prompt the user for the subcloud's password if it isn't provided
if parsed_args.sysadmin_password is not None:
data['sysadmin_password'] = base64.b64encode(
@ -560,6 +537,14 @@ class UpdateSubcloud(base.DCManagerShowOne):
password = utils.prompt_for_password()
data["sysadmin_password"] = base64.b64encode(
password.encode("utf-8"))
# Not all network values exist
elif any(value is not None for value in subcloud_network_values):
error_msg = (
"For subcloud network reconfiguration request all the "
"following parameters are necessary: --management-subnet, "
"--management-gateway-ip, --management-start-ip, "
"--management-end-ip and --bootstrap-address")
raise exceptions.DCManagerClientException(error_msg)
if parsed_args.install_values:
if not os.path.isfile(parsed_args.install_values):

View File

@ -355,10 +355,10 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
'--description', 'subcloud description',
'--location', 'subcloud location',
'--sysadmin-password', 'testpassword',
'--admin-subnet', 'subcloud admin subnet',
'--admin-gateway-ip', 'subcloud admin gateway ip',
'--admin-start-address', 'subcloud admin start addr',
'--admin-end-address', 'subcloud admin end addr',
'--management-subnet', 'subcloud network subnet',
'--management-gateway-ip', 'subcloud network gateway ip',
'--management-start-ip', 'sc network start ip',
'--management-end-ip', 'subcloud network end ip',
'--bootstrap-address', 'subcloud bootstrap address'])
self.assertEqual((ID, NAME,
DESCRIPTION, LOCATION,