summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorin Hochstein <lorinh@gmail.com>2015-05-14 17:16:12 -0400
committerLorin Hochstein <lorinh@gmail.com>2015-05-14 17:16:12 -0400
commitdbde7e6062aebcb9fb172c0b996ad6569f1d4640 (patch)
tree6854ba03b02ebc85dad520e8e7aa4099d065562e
parent01bb3c3d31ce53be576cc2f21ceed2af2495b5cc (diff)
parentb932e5e7d1b95dfac77132d97d16c9fa76289b43 (diff)
downloadopenstack-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_gateway17
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)