diff options
author | Lorin Hochstein <lorinh@gmail.com> | 2015-05-14 17:16:12 -0400 |
---|---|---|
committer | Lorin Hochstein <lorinh@gmail.com> | 2015-05-14 17:16:12 -0400 |
commit | dbde7e6062aebcb9fb172c0b996ad6569f1d4640 (patch) | |
tree | 6854ba03b02ebc85dad520e8e7aa4099d065562e | |
parent | 01bb3c3d31ce53be576cc2f21ceed2af2495b5cc (diff) | |
parent | b932e5e7d1b95dfac77132d97d16c9fa76289b43 (diff) | |
download | openstack-ansible-modules-dbde7e6062aebcb9fb172c0b996ad6569f1d4640.tar.gz |
Merge pull request #46 from dlundquist/neutron-router-gateway-snat
Add enable_snat option to neutron_router_gateway
-rw-r--r-- | neutron_router_gateway | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/neutron_router_gateway b/neutron_router_gateway index 3a9b7ce..300bab8 100644 --- a/neutron_router_gateway +++ b/neutron_router_gateway @@ -69,6 +69,11 @@ options: - Name of the external network which should be attached to the router. required: true default: None + enable_snat: + description: + - Enable SNAT on traffic using this gateway (may require admin role). + required: false + default: true requirements: ["neutronclient", "keystoneclient"] ''' @@ -143,8 +148,10 @@ def _get_net_id(neutron, module): def _add_gateway_router(neutron, module, router_id, network_id): kwargs = { - 'network_id': network_id + 'network_id': network_id, + 'enable_snat': module.params['enable_snat'] } + try: neutron.add_gateway_router(router_id, kwargs) except Exception as e: @@ -169,6 +176,7 @@ def main(): region_name = dict(default=None), router_name = dict(required=True), network_name = dict(required=True), + enable_snat = dict(default=True, type='bool'), state = dict(default='present', choices=['absent', 'present']), ), ) @@ -188,8 +196,13 @@ def main(): _add_gateway_router(neutron, module, router['id'], network_id) module.exit_json(changed=True, updated=False, result="created") else: - if router['external_gateway_info']['network_id'] == network_id: + if router['external_gateway_info']['network_id'] == network_id \ + and router['external_gateway_info']['enable_snat'] == \ + module.params['enable_snat']: module.exit_json(changed=False, updated=False, result="success") + elif router['external_gateway_info']['network_id'] == network_id: + _add_gateway_router(neutron, module, router['id'], network_id) + module.exit_json(changed=True, updated=True, result="updated") else: _remove_gateway_router(neutron, module, router['id']) _add_gateway_router(neutron, module, router['id'], network_id) |