diff --git a/cloud/quantum_floating_ip b/cloud/quantum_floating_ip index 79d21d1915e..d7b4bfafa14 100644 --- a/cloud/quantum_floating_ip +++ b/cloud/quantum_floating_ip @@ -160,8 +160,8 @@ def _create_floating_ip(quantum, module, port_id, net_id): try: result = quantum.create_floatingip({'floatingip': kwargs}) except Exception as e: - module.fail_json(msg = "There was an error in updating the floating ip address: %s" % e.message) - module.exit_json(changed = True, result = result, public_ip=result['floatingip']['floating_ip_address'] ) + module.fail_json(msg="There was an error in updating the floating ip address: %s" % e.message) + module.exit_json(changed=True, result=result, public_ip=result['floatingip']['floating_ip_address'] ) def _get_net_id(quantum, module): kwargs = { @@ -177,44 +177,47 @@ def _get_net_id(quantum, module): def _update_floating_ip(quantum, module, port_id, floating_ip_id): kwargs = { - 'port_id': port_id + 'port_id': port_id } try: - result = quantum.update_floatingip(floating_ip_id, {'floatingip': kwargs}) + result = quantum.update_floatingip(floating_ip_id, {'floatingip': kwargs}) except Exception as e: - module.fail_json( msg = "There was an error in updating the floating ip address: %s" % e.message) - module.exit_json( changed = True, result = result) + module.fail_json(msg="There was an error in updating the floating ip address: %s" % e.message) + module.exit_json(changed=True, result=result) def main(): module = AnsibleModule( - argument_spec = dict( - login_username = dict(default='admin'), - login_password = dict(required=True), - login_tenant_name = dict(required='True'), - auth_url = dict(default='http://127.0.0.1:35357/v2.0/'), - region_name = dict(default=None), - network_name = dict(required=True), - instance_name = dict(required=True), - state = dict(default='present', choices=['absent', 'present']) + argument_spec = dict( + login_username = dict(default='admin'), + login_password = dict(required=True), + login_tenant_name = dict(required='True'), + auth_url = dict(default='http://127.0.0.1:35357/v2.0/'), + region_name = dict(default=None), + network_name = dict(required=True), + instance_name = dict(required=True), + state = dict(default='present', choices=['absent', 'present']) ), ) try: nova = nova_client.Client(module.params['login_username'], module.params['login_password'], - module.params['login_tenant_name'], module.params['auth_url'], service_type='compute') + module.params['login_tenant_name'], module.params['auth_url'], service_type='compute') quantum = _get_quantum_client(module, module.params) except Exception as e: - module.fail_json( msg = " Error in authenticating to nova: %s" % e.message) + module.fail_json(msg="Error in authenticating to nova: %s" % e.message) server_info, server_obj = _get_server_state(module, nova) if not server_info: - module.fail_json( msg = " The instance name provided cannot be found") + module.fail_json(msg="The instance name provided cannot be found") + fixed_ip, port_id = _get_port_info(quantum, module, server_info['id']) if not port_id: - module.fail_json(msg = "Cannot find a port for this instance, maybe fixed ip is not assigned") + module.fail_json(msg="Cannot find a port for this instance, maybe fixed ip is not assigned") + floating_id, floating_ip = _get_floating_ip(module, quantum, fixed_ip) + if module.params['state'] == 'present': if floating_ip: module.exit_json(changed = False, public_ip=floating_ip) @@ -227,6 +230,7 @@ def main(): if floating_ip: _update_floating_ip(quantum, module, None, floating_id) module.exit_json(changed=False) + # this is magic, see lib/ansible/module.params['common.py #<> main()