Merge pull request #3237 from rcarrillocruz/os_subnet_by_project

Create subnet by project
reviewable/pr18780/r1
David Shrewsbury 9 years ago
commit cea5ceb644

@ -105,6 +105,11 @@ options:
choices: ['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac'] choices: ['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac']
required: false required: false
default: None default: None
project:
description:
- Project name or ID containing the subnet (name admin-only)
required: false
default: None
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "shade" - "shade"
@ -233,6 +238,7 @@ def main():
ipv6_ra_mode=dict(default=None, choice=ipv6_mode_choices), ipv6_ra_mode=dict(default=None, choice=ipv6_mode_choices),
ipv6_address_mode=dict(default=None, choice=ipv6_mode_choices), ipv6_address_mode=dict(default=None, choice=ipv6_mode_choices),
state=dict(default='present', choices=['absent', 'present']), state=dict(default='present', choices=['absent', 'present']),
project=dict(default=None)
) )
module_kwargs = openstack_module_kwargs() module_kwargs = openstack_module_kwargs()
@ -256,6 +262,7 @@ def main():
host_routes = module.params['host_routes'] host_routes = module.params['host_routes']
ipv6_ra_mode = module.params['ipv6_ra_mode'] ipv6_ra_mode = module.params['ipv6_ra_mode']
ipv6_a_mode = module.params['ipv6_address_mode'] ipv6_a_mode = module.params['ipv6_address_mode']
project = module.params.pop('project')
# Check for required parameters when state == 'present' # Check for required parameters when state == 'present'
if state == 'present': if state == 'present':
@ -272,7 +279,17 @@ def main():
try: try:
cloud = shade.openstack_cloud(**module.params) cloud = shade.openstack_cloud(**module.params)
subnet = cloud.get_subnet(subnet_name) if project is not None:
proj = cloud.get_project(project)
if proj is None:
module.fail_json(msg='Project %s could not be found' % project)
project_id = proj['id']
filters = {'tenant_id': project_id}
else:
project_id = None
filters = None
subnet = cloud.get_subnet(subnet_name, filters=filters)
if module.check_mode: if module.check_mode:
module.exit_json(changed=_system_state_change(module, subnet, module.exit_json(changed=_system_state_change(module, subnet,
@ -289,7 +306,8 @@ def main():
allocation_pools=pool, allocation_pools=pool,
host_routes=host_routes, host_routes=host_routes,
ipv6_ra_mode=ipv6_ra_mode, ipv6_ra_mode=ipv6_ra_mode,
ipv6_address_mode=ipv6_a_mode) ipv6_address_mode=ipv6_a_mode,
tenant_id=project_id)
changed = True changed = True
else: else:
if _needs_update(subnet, module, cloud): if _needs_update(subnet, module, cloud):

Loading…
Cancel
Save