summaryrefslogtreecommitdiff
path: root/neutron_router
diff options
context:
space:
mode:
Diffstat (limited to 'neutron_router')
-rw-r--r--neutron_router38
1 files changed, 21 insertions, 17 deletions
diff --git a/neutron_router b/neutron_router
index 56d384d..6baa65f 100644
--- a/neutron_router
+++ b/neutron_router
@@ -92,16 +92,18 @@ _os_tenant_id = None
def _get_ksclient(module, kwargs):
try:
- kclient = ksclient.Client(username=kwargs.get('login_username'),
- password=kwargs.get('login_password'),
- tenant_name=kwargs.get('login_tenant_name'),
- auth_url=kwargs.get('auth_url'))
+ kclient = ksclient.Client(
+ username=module.params.get('login_username'),
+ password=module.params.get('login_password'),
+ tenant_name=module.params.get('login_tenant_name'),
+ auth_url=module.params.get('auth_url'),
+ region_name=module.params.get('region_name'))
except Exception as e:
module.fail_json(msg = "Error authenticating to the keystone: %s " % e.message)
global _os_keystone
_os_keystone = kclient
return kclient
-
+
def _get_endpoint(module, ksclient):
try:
@@ -126,18 +128,20 @@ def _get_neutron_client(module, kwargs):
def _set_tenant_id(module):
global _os_tenant_id
- if not module.params['tenant_name']:
- login_tenant_name = module.params['login_tenant_name']
+ if module.params['tenant_name']:
+ # We need admin power in order retrieve the tenant_id of a given
+ # tenant name and to create/delete networks for a tenant that is not
+ # the one used to authenticate the user.
+ tenant_name = module.params['tenant_name']
+ for tenant in _os_keystone.tenants.list():
+ if tenant.name == tenant_name:
+ _os_tenant_id = tenant.id
+ break
else:
- login_tenant_name = module.params['tenant_name']
+ _os_tenant_id = _os_keystone.tenant_id
- for tenant in _os_keystone.tenants.list():
- if tenant.name == login_tenant_name:
- _os_tenant_id = tenant.id
- break
if not _os_tenant_id:
- module.fail_json(msg = "The tenant id cannot be found, please check the paramters")
-
+ module.fail_json(msg = "The tenant id cannot be found, please check the paramters")
def _get_router_id(module, neutron):
kwargs = {
@@ -170,7 +174,7 @@ def _delete_router(module, neutron, router_id):
except:
module.fail_json("Error in deleting the router")
return True
-
+
def main():
module = AnsibleModule(
argument_spec = dict(
@@ -185,7 +189,7 @@ def main():
admin_state_up = dict(type='bool', default=True),
),
)
-
+
neutron = _get_neutron_client(module, module.params)
_set_tenant_id(module)
@@ -204,7 +208,7 @@ def main():
else:
_delete_router(module, neutron, router_id)
module.exit_json(changed=True, result="deleted")
-
+
# this is magic, see lib/ansible/module.params['common.py
from ansible.module_utils.basic import *
main()