Merge "Prevent the unexpected with nova-manage network modify."
This commit is contained in:
@@ -561,14 +561,31 @@ class NetworkCommands(object):
|
|||||||
#1) Associate (set not None value given by project/host parameter)
|
#1) Associate (set not None value given by project/host parameter)
|
||||||
#2) Disassociate (set None by disassociate parameter)
|
#2) Disassociate (set None by disassociate parameter)
|
||||||
#3) Keep unchanged (project/host key is not added to 'net')
|
#3) Keep unchanged (project/host key is not added to 'net')
|
||||||
|
if dis_project:
|
||||||
|
net['project_id'] = None
|
||||||
|
if dis_host:
|
||||||
|
net['host'] = None
|
||||||
|
|
||||||
|
# The --disassociate-X are boolean options, but if they user
|
||||||
|
# mistakenly provides a value, it will be used as a positional argument
|
||||||
|
# and be erroneously interepreted as some other parameter (e.g.
|
||||||
|
# a project instead of host value). The safest thing to do is error-out
|
||||||
|
# with a message indicating that there is probably a problem with
|
||||||
|
# how the disassociate modifications are being used.
|
||||||
|
if dis_project or dis_host:
|
||||||
|
if project or host:
|
||||||
|
error_msg = "ERROR: Unexpected arguments provided. Please " \
|
||||||
|
"use separate commands."
|
||||||
|
print(error_msg)
|
||||||
|
sys.exit(1)
|
||||||
|
db.network_update(admin_context, network['id'], net)
|
||||||
|
return
|
||||||
|
|
||||||
if project:
|
if project:
|
||||||
net['project_id'] = project
|
net['project_id'] = project
|
||||||
elif dis_project:
|
|
||||||
net['project_id'] = None
|
|
||||||
if host:
|
if host:
|
||||||
net['host'] = host
|
net['host'] = host
|
||||||
elif dis_host:
|
|
||||||
net['host'] = None
|
|
||||||
db.network_update(admin_context, network['id'], net)
|
db.network_update(admin_context, network['id'], net)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user