From ee72221527b96155426da413235a47469e3b4fbd Mon Sep 17 00:00:00 2001 From: Davide Guerri Date: Tue, 21 Apr 2015 14:52:35 +0100 Subject: Use region name for keystone authentication --- neutron_router | 18 ++++++++++-------- neutron_router_gateway | 10 ++++++---- neutron_router_interface | 25 +++++++++++++------------ 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/neutron_router b/neutron_router index a724c45..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: @@ -172,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( @@ -187,7 +189,7 @@ def main(): admin_state_up = dict(type='bool', default=True), ), ) - + neutron = _get_neutron_client(module, module.params) _set_tenant_id(module) @@ -206,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() diff --git a/neutron_router_gateway b/neutron_router_gateway index 93235b8..fec2e1b 100644 --- a/neutron_router_gateway +++ b/neutron_router_gateway @@ -82,10 +82,12 @@ EXAMPLES = ''' _os_keystone = 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 diff --git a/neutron_router_interface b/neutron_router_interface index 1d6648a..a3060ff 100644 --- a/neutron_router_interface +++ b/neutron_router_interface @@ -93,16 +93,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: @@ -142,7 +144,6 @@ def _set_tenant_id(module): if not _os_tenant_id: module.fail_json(msg = "The tenant id cannot be found, please check the paramters") - def _get_router_id(module, neutron): kwargs = { 'name': module.params['router_name'], @@ -169,7 +170,7 @@ def _get_subnet_id(module, neutron): if not subnets['subnets']: return None return subnets['subnets'][0]['id'] - + def _get_port_id(neutron, module, router_id, subnet_id): kwargs = { 'tenant_id': _os_tenant_id, @@ -196,7 +197,7 @@ def _add_interface_router(neutron, module, router_id, subnet_id): except Exception as e: module.fail_json(msg = "Error in adding interface to router: %s" % e.message) return True - + def _remove_interface_router(neutron, module, router_id, subnet_id): kwargs = { 'subnet_id': subnet_id @@ -206,7 +207,7 @@ def _remove_interface_router(neutron, module, router_id, subnet_id): except Exception as e: module.fail_json(msg="Error in removing interface from router: %s" % e.message) return True - + def main(): module = AnsibleModule( argument_spec = dict( @@ -221,7 +222,7 @@ def main(): state = dict(default='present', choices=['absent', 'present']), ), ) - + neutron = _get_neutron_client(module, module.params) _set_tenant_id(module) @@ -232,7 +233,7 @@ def main(): subnet_id = _get_subnet_id(module, neutron) if not subnet_id: module.fail_json(msg="failed to get the subnet id, please check the subnet name") - + if module.params['state'] == 'present': port_id = _get_port_id(neutron, module, router_id, subnet_id) if not port_id: @@ -246,7 +247,7 @@ def main(): module.exit_json(changed = False, result = "Success") _remove_interface_router(neutron, module, router_id, subnet_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() -- cgit v1.2.1