Merge pull request #2345 from larsks/bug/port-allow-secgroup-list
allow os_port to accept a list of security groups
This commit is contained in:
commit
30951e2811
1 changed files with 8 additions and 11 deletions
|
@ -61,8 +61,7 @@ options:
|
|||
security_groups:
|
||||
description:
|
||||
- Security group(s) ID(s) or name(s) associated with the port (comma
|
||||
separated for multiple security groups - no spaces between comma(s)
|
||||
or YAML list).
|
||||
separated string or YAML list)
|
||||
required: false
|
||||
default: None
|
||||
no_security_groups:
|
||||
|
@ -220,7 +219,7 @@ def _needs_update(module, port, cloud):
|
|||
'device_id']
|
||||
compare_dict = ['allowed_address_pairs',
|
||||
'extra_dhcp_opt']
|
||||
compare_comma_separated_list = ['security_groups']
|
||||
compare_list = ['security_groups']
|
||||
|
||||
for key in compare_simple:
|
||||
if module.params[key] is not None and module.params[key] != port[key]:
|
||||
|
@ -229,7 +228,7 @@ def _needs_update(module, port, cloud):
|
|||
if module.params[key] is not None and cmp(module.params[key],
|
||||
port[key]) != 0:
|
||||
return True
|
||||
for key in compare_comma_separated_list:
|
||||
for key in compare_list:
|
||||
if module.params[key] is not None and (set(module.params[key]) !=
|
||||
set(port[key])):
|
||||
return True
|
||||
|
@ -309,7 +308,7 @@ def main():
|
|||
fixed_ips=dict(default=None),
|
||||
admin_state_up=dict(default=None),
|
||||
mac_address=dict(default=None),
|
||||
security_groups=dict(default=None),
|
||||
security_groups=dict(default=None, type='list'),
|
||||
no_security_groups=dict(default=False, type='bool'),
|
||||
allowed_address_pairs=dict(default=None),
|
||||
extra_dhcp_opt=dict(default=None),
|
||||
|
@ -336,13 +335,11 @@ def main():
|
|||
try:
|
||||
cloud = shade.openstack_cloud(**module.params)
|
||||
if module.params['security_groups']:
|
||||
if type(module.params['security_groups']) == str:
|
||||
module.params['security_groups'] = module.params[
|
||||
'security_groups'].split(',')
|
||||
# translate security_groups to UUID's if names where provided
|
||||
module.params['security_groups'] = map(
|
||||
lambda v: get_security_group_id(module, cloud, v),
|
||||
module.params['security_groups'])
|
||||
module.params['security_groups'] = [
|
||||
get_security_group_id(module, cloud, v)
|
||||
for v in module.params['security_groups']
|
||||
]
|
||||
|
||||
port = None
|
||||
network_id = None
|
||||
|
|
Loading…
Reference in a new issue