We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
os_floating_ip errors if an ip is attached.
##### Issue Type:

Regression (so inevitably a feature idea).
##### Ansible Version:

ansible 2.0.0
##### Ansible Configuration:

```
< lookup_plugins = ./lookup_plugins:~/.ansible/plugins/lookup_plugins/:/usr/share/ansible_plugins/
< timeout = 120

---
> timeout = 10
```
##### Environment:

OSX -> Ubuntu
##### Summary:

If you add an ip with os_floating_ip to a server, when you rerun your play, it errors.
##### Steps To Reproduce:

```
- os_floating_ip:
    cloud: envvars
    state: present
    reuse: yes
    server: cwp-goserver-1
    network: vlan3320
    fixed_address: "{{ lookup('os_private_ip', 'cwp-goserver-1') }}"
    wait: true
    timeout: 180
```
##### Expected Results:

If the server already has a floating ip from the network, expect the task to pass, as unchanged.
##### Actual Results:

```
unable to bind a floating ip to server f23ce73c-82ad-490a-bf0e-7e3d23dce449: Cannot associate floating IP 10.12.71.112 (57a5b6e0-2843-4ec5-9388-408a098cdcc7) with port f2c6e8bb-b500-4ea0-abc8-980b34fc200f using fixed IP 192.168.101.36, as that fixed IP already has a floating IP on external network 8b3e1a76-f16c-461b-a5b5-f5987936426d
```


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `cloud/openstack/os_floating_ip.py`
Content:
```
1 #!/usr/bin/python
2 # Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
3 # Author: Davide Guerri <davide.guerri@hp.com>
4 #
5 # This module is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # This software is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this software.  If not, see <http://www.gnu.org/licenses/>.
17 
18 try:
19     import shade
20     from shade import meta
21 
22     HAS_SHADE = True
23 except ImportError:
24     HAS_SHADE = False
25 
26 DOCUMENTATION = '''
27 ---
28 module: os_floating_ip
29 version_added: "2.0"
30 short_description: Add/Remove floating IP from an instance
31 extends_documentation_fragment: openstack
32 description:
33    - Add or Remove a floating IP to an instance
34 options:
35    server:
36      description:
37         - The name or ID of the instance to which the IP address
38           should be assigned.
39      required: true
40    network:
41      description:
42         - The name or ID of a neutron external network or a nova pool name.
43      required: false
44    floating_ip_address:
45      description:
46         - A floating IP address to attach or to detach. Required only if I(state)
47           is absent. When I(state) is present can be used to specify a IP address
48           to attach.
49      required: false
50    reuse:
51      description:
52         - When I(state) is present, and I(floating_ip_address) is not present,
53           this parameter can be used to specify whether we should try to reuse
54           a floating IP address already allocated to the project.
55      required: false
56      default: false
57    fixed_address:
58      description:
59         - To which fixed IP of server the floating IP address should be
60           attached to.
61      required: false
62    wait:
63      description:
64         - When attaching a floating IP address, specify whether we should
65           wait for it to appear as attached.
66      required: false
67      default: false
68    timeout:
69      description:
70         - Time to wait for an IP address to appear as attached. See wait.
71      required: false
72      default: 60
73    state:
74      description:
75        - Should the resource be present or absent.
76      choices: [present, absent]
77      required: false
78      default: present
79    purge:
80      description:
81         - When I(state) is absent, indicates whether or not to delete the floating
82           IP completely, or only detach it from the server. Default is to detach only.
83      required: false
84      default: false
85      version_added: "2.1"
86 requirements: ["shade"]
87 '''
88 
89 EXAMPLES = '''
90 # Assign a floating IP to the fist interface of `cattle001` from an exiting
91 # external network or nova pool. A new floating IP from the first available
92 # external network is allocated to the project.
93 - os_floating_ip:
94      cloud: dguerri
95      server: cattle001
96 
97 # Assign a new floating IP to the instance fixed ip `192.0.2.3` of
98 # `cattle001`. If a free floating IP is already allocated to the project, it is
99 # reused; if not, a new one is created.
100 - os_floating_ip:
101      cloud: dguerri
102      state: present
103      reuse: yes
104      server: cattle001
105      network: ext_net
106      fixed_address: 192.0.2.3
107      wait: true
108      timeout: 180
109 
110 # Detach a floating IP address from a server
111 - os_floating_ip:
112      cloud: dguerri
113      state: absent
114      floating_ip_address: 203.0.113.2
115      server: cattle001
116 '''
117 
118 
119 def _get_floating_ip(cloud, floating_ip_address):
120     f_ips = cloud.search_floating_ips(
121         filters={'floating_ip_address': floating_ip_address})
122     if not f_ips:
123         return None
124 
125     return f_ips[0]
126 
127 
128 def main():
129     argument_spec = openstack_full_argument_spec(
130         server=dict(required=True),
131         state=dict(default='present', choices=['absent', 'present']),
132         network=dict(required=False, default=None),
133         floating_ip_address=dict(required=False, default=None),
134         reuse=dict(required=False, type='bool', default=False),
135         fixed_address=dict(required=False, default=None),
136         wait=dict(required=False, type='bool', default=False),
137         timeout=dict(required=False, type='int', default=60),
138         purge=dict(required=False, type='bool', default=False),
139     )
140 
141     module_kwargs = openstack_module_kwargs()
142     module = AnsibleModule(argument_spec, **module_kwargs)
143 
144     if not HAS_SHADE:
145         module.fail_json(msg='shade is required for this module')
146 
147     server_name_or_id = module.params['server']
148     state = module.params['state']
149     network = module.params['network']
150     floating_ip_address = module.params['floating_ip_address']
151     reuse = module.params['reuse']
152     fixed_address = module.params['fixed_address']
153     wait = module.params['wait']
154     timeout = module.params['timeout']
155     purge = module.params['purge']
156 
157     cloud = shade.openstack_cloud(**module.params)
158 
159     try:
160         server = cloud.get_server(server_name_or_id)
161         if server is None:
162             module.fail_json(
163                 msg="server {0} not found".format(server_name_or_id))
164 
165         if state == 'present':
166             server = cloud.add_ips_to_server(
167                 server=server, ips=floating_ip_address, ip_pool=network,
168                 reuse=reuse, fixed_address=fixed_address, wait=wait,
169                 timeout=timeout)
170             fip_address = cloud.get_server_public_ip(server)
171             # Update the floating IP status
172             f_ip = _get_floating_ip(cloud, fip_address)
173             module.exit_json(changed=True, floating_ip=f_ip)
174 
175         elif state == 'absent':
176             if floating_ip_address is None:
177                 module.fail_json(msg="floating_ip_address is required")
178 
179             f_ip = _get_floating_ip(cloud, floating_ip_address)
180 
181             if not f_ip:
182                 # Nothing to detach
183                 module.exit_json(changed=False)
184 
185             cloud.detach_ip_from_server(
186                 server_id=server['id'], floating_ip_id=f_ip['id'])
187             # Update the floating IP status
188             f_ip = cloud.get_floating_ip(id=f_ip['id'])
189             if purge:
190                 cloud.delete_floating_ip(f_ip['id'])
191                 module.exit_json(changed=True)
192             module.exit_json(changed=True, floating_ip=f_ip)
193 
194     except shade.OpenStackCloudException as e:
195         module.fail_json(msg=str(e), extra_data=e.extra_data)
196 
197 
198 # this is magic, see lib/ansible/module_common.py
199 from ansible.module_utils.basic import *
200 from ansible.module_utils.openstack import *
201 
202 
203 if __name__ == '__main__':
204     main()
205
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/cloud/openstack/os_floating_ip.py b/cloud/openstack/os_floating_ip.py
--- a/cloud/openstack/os_floating_ip.py
+++ b/cloud/openstack/os_floating_ip.py
@@ -163,6 +163,10 @@
                 msg="server {0} not found".format(server_name_or_id))
 
         if state == 'present':
+            fip_address = cloud.get_server_public_ip(server)
+            f_ip = _get_floating_ip(cloud, fip_address)
+            if f_ip:
+                module.exit_json(changed=False, floating_ip=f_ip)
             server = cloud.add_ips_to_server(
                 server=server, ips=floating_ip_address, ip_pool=network,
                 reuse=reuse, fixed_address=fixed_address, wait=wait,

{"golden_diff": "diff --git a/cloud/openstack/os_floating_ip.py b/cloud/openstack/os_floating_ip.py\n--- a/cloud/openstack/os_floating_ip.py\n+++ b/cloud/openstack/os_floating_ip.py\n@@ -163,6 +163,10 @@\n                 msg=\"server {0} not found\".format(server_name_or_id))\n \n         if state == 'present':\n+            fip_address = cloud.get_server_public_ip(server)\n+            f_ip = _get_floating_ip(cloud, fip_address)\n+            if f_ip:\n+                module.exit_json(changed=False, floating_ip=f_ip)\n             server = cloud.add_ips_to_server(\n                 server=server, ips=floating_ip_address, ip_pool=network,\n                 reuse=reuse, fixed_address=fixed_address, wait=wait,\n", "issue": "os_floating_ip errors if an ip is attached.\n##### Issue Type:\n\nRegression (so inevitably a feature idea).\n##### Ansible Version:\n\nansible 2.0.0\n##### Ansible Configuration:\n\n```\n< lookup_plugins = ./lookup_plugins:~/.ansible/plugins/lookup_plugins/:/usr/share/ansible_plugins/\n< timeout = 120\n\n---\n> timeout = 10\n```\n##### Environment:\n\nOSX -> Ubuntu\n##### Summary:\n\nIf you add an ip with os_floating_ip to a server, when you rerun your play, it errors.\n##### Steps To Reproduce:\n\n```\n- os_floating_ip:\n    cloud: envvars\n    state: present\n    reuse: yes\n    server: cwp-goserver-1\n    network: vlan3320\n    fixed_address: \"{{ lookup('os_private_ip', 'cwp-goserver-1') }}\"\n    wait: true\n    timeout: 180\n```\n##### Expected Results:\n\nIf the server already has a floating ip from the network, expect the task to pass, as unchanged.\n##### Actual Results:\n\n```\nunable to bind a floating ip to server f23ce73c-82ad-490a-bf0e-7e3d23dce449: Cannot associate floating IP 10.12.71.112 (57a5b6e0-2843-4ec5-9388-408a098cdcc7) with port f2c6e8bb-b500-4ea0-abc8-980b34fc200f using fixed IP 192.168.101.36, as that fixed IP already has a floating IP on external network 8b3e1a76-f16c-461b-a5b5-f5987936426d\n```\n\n", "before_files": [{"content": "#!/usr/bin/python\n# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.\n# Author: Davide Guerri <davide.guerri@hp.com>\n#\n# This module is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This software is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this software.  If not, see <http://www.gnu.org/licenses/>.\n\ntry:\n    import shade\n    from shade import meta\n\n    HAS_SHADE = True\nexcept ImportError:\n    HAS_SHADE = False\n\nDOCUMENTATION = '''\n---\nmodule: os_floating_ip\nversion_added: \"2.0\"\nshort_description: Add/Remove floating IP from an instance\nextends_documentation_fragment: openstack\ndescription:\n   - Add or Remove a floating IP to an instance\noptions:\n   server:\n     description:\n        - The name or ID of the instance to which the IP address\n          should be assigned.\n     required: true\n   network:\n     description:\n        - The name or ID of a neutron external network or a nova pool name.\n     required: false\n   floating_ip_address:\n     description:\n        - A floating IP address to attach or to detach. Required only if I(state)\n          is absent. When I(state) is present can be used to specify a IP address\n          to attach.\n     required: false\n   reuse:\n     description:\n        - When I(state) is present, and I(floating_ip_address) is not present,\n          this parameter can be used to specify whether we should try to reuse\n          a floating IP address already allocated to the project.\n     required: false\n     default: false\n   fixed_address:\n     description:\n        - To which fixed IP of server the floating IP address should be\n          attached to.\n     required: false\n   wait:\n     description:\n        - When attaching a floating IP address, specify whether we should\n          wait for it to appear as attached.\n     required: false\n     default: false\n   timeout:\n     description:\n        - Time to wait for an IP address to appear as attached. See wait.\n     required: false\n     default: 60\n   state:\n     description:\n       - Should the resource be present or absent.\n     choices: [present, absent]\n     required: false\n     default: present\n   purge:\n     description:\n        - When I(state) is absent, indicates whether or not to delete the floating\n          IP completely, or only detach it from the server. Default is to detach only.\n     required: false\n     default: false\n     version_added: \"2.1\"\nrequirements: [\"shade\"]\n'''\n\nEXAMPLES = '''\n# Assign a floating IP to the fist interface of `cattle001` from an exiting\n# external network or nova pool. A new floating IP from the first available\n# external network is allocated to the project.\n- os_floating_ip:\n     cloud: dguerri\n     server: cattle001\n\n# Assign a new floating IP to the instance fixed ip `192.0.2.3` of\n# `cattle001`. If a free floating IP is already allocated to the project, it is\n# reused; if not, a new one is created.\n- os_floating_ip:\n     cloud: dguerri\n     state: present\n     reuse: yes\n     server: cattle001\n     network: ext_net\n     fixed_address: 192.0.2.3\n     wait: true\n     timeout: 180\n\n# Detach a floating IP address from a server\n- os_floating_ip:\n     cloud: dguerri\n     state: absent\n     floating_ip_address: 203.0.113.2\n     server: cattle001\n'''\n\n\ndef _get_floating_ip(cloud, floating_ip_address):\n    f_ips = cloud.search_floating_ips(\n        filters={'floating_ip_address': floating_ip_address})\n    if not f_ips:\n        return None\n\n    return f_ips[0]\n\n\ndef main():\n    argument_spec = openstack_full_argument_spec(\n        server=dict(required=True),\n        state=dict(default='present', choices=['absent', 'present']),\n        network=dict(required=False, default=None),\n        floating_ip_address=dict(required=False, default=None),\n        reuse=dict(required=False, type='bool', default=False),\n        fixed_address=dict(required=False, default=None),\n        wait=dict(required=False, type='bool', default=False),\n        timeout=dict(required=False, type='int', default=60),\n        purge=dict(required=False, type='bool', default=False),\n    )\n\n    module_kwargs = openstack_module_kwargs()\n    module = AnsibleModule(argument_spec, **module_kwargs)\n\n    if not HAS_SHADE:\n        module.fail_json(msg='shade is required for this module')\n\n    server_name_or_id = module.params['server']\n    state = module.params['state']\n    network = module.params['network']\n    floating_ip_address = module.params['floating_ip_address']\n    reuse = module.params['reuse']\n    fixed_address = module.params['fixed_address']\n    wait = module.params['wait']\n    timeout = module.params['timeout']\n    purge = module.params['purge']\n\n    cloud = shade.openstack_cloud(**module.params)\n\n    try:\n        server = cloud.get_server(server_name_or_id)\n        if server is None:\n            module.fail_json(\n                msg=\"server {0} not found\".format(server_name_or_id))\n\n        if state == 'present':\n            server = cloud.add_ips_to_server(\n                server=server, ips=floating_ip_address, ip_pool=network,\n                reuse=reuse, fixed_address=fixed_address, wait=wait,\n                timeout=timeout)\n            fip_address = cloud.get_server_public_ip(server)\n            # Update the floating IP status\n            f_ip = _get_floating_ip(cloud, fip_address)\n            module.exit_json(changed=True, floating_ip=f_ip)\n\n        elif state == 'absent':\n            if floating_ip_address is None:\n                module.fail_json(msg=\"floating_ip_address is required\")\n\n            f_ip = _get_floating_ip(cloud, floating_ip_address)\n\n            if not f_ip:\n                # Nothing to detach\n                module.exit_json(changed=False)\n\n            cloud.detach_ip_from_server(\n                server_id=server['id'], floating_ip_id=f_ip['id'])\n            # Update the floating IP status\n            f_ip = cloud.get_floating_ip(id=f_ip['id'])\n            if purge:\n                cloud.delete_floating_ip(f_ip['id'])\n                module.exit_json(changed=True)\n            module.exit_json(changed=True, floating_ip=f_ip)\n\n    except shade.OpenStackCloudException as e:\n        module.fail_json(msg=str(e), extra_data=e.extra_data)\n\n\n# this is magic, see lib/ansible/module_common.py\nfrom ansible.module_utils.basic import *\nfrom ansible.module_utils.openstack import *\n\n\nif __name__ == '__main__':\n    main()\n", "path": "cloud/openstack/os_floating_ip.py"}], "after_files": [{"content": "#!/usr/bin/python\n# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.\n# Author: Davide Guerri <davide.guerri@hp.com>\n#\n# This module is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# This software is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this software.  If not, see <http://www.gnu.org/licenses/>.\n\ntry:\n    import shade\n    from shade import meta\n\n    HAS_SHADE = True\nexcept ImportError:\n    HAS_SHADE = False\n\nDOCUMENTATION = '''\n---\nmodule: os_floating_ip\nversion_added: \"2.0\"\nshort_description: Add/Remove floating IP from an instance\nextends_documentation_fragment: openstack\ndescription:\n   - Add or Remove a floating IP to an instance\noptions:\n   server:\n     description:\n        - The name or ID of the instance to which the IP address\n          should be assigned.\n     required: true\n   network:\n     description:\n        - The name or ID of a neutron external network or a nova pool name.\n     required: false\n   floating_ip_address:\n     description:\n        - A floating IP address to attach or to detach. Required only if I(state)\n          is absent. When I(state) is present can be used to specify a IP address\n          to attach.\n     required: false\n   reuse:\n     description:\n        - When I(state) is present, and I(floating_ip_address) is not present,\n          this parameter can be used to specify whether we should try to reuse\n          a floating IP address already allocated to the project.\n     required: false\n     default: false\n   fixed_address:\n     description:\n        - To which fixed IP of server the floating IP address should be\n          attached to.\n     required: false\n   wait:\n     description:\n        - When attaching a floating IP address, specify whether we should\n          wait for it to appear as attached.\n     required: false\n     default: false\n   timeout:\n     description:\n        - Time to wait for an IP address to appear as attached. See wait.\n     required: false\n     default: 60\n   state:\n     description:\n       - Should the resource be present or absent.\n     choices: [present, absent]\n     required: false\n     default: present\n   purge:\n     description:\n        - When I(state) is absent, indicates whether or not to delete the floating\n          IP completely, or only detach it from the server. Default is to detach only.\n     required: false\n     default: false\n     version_added: \"2.1\"\nrequirements: [\"shade\"]\n'''\n\nEXAMPLES = '''\n# Assign a floating IP to the fist interface of `cattle001` from an exiting\n# external network or nova pool. A new floating IP from the first available\n# external network is allocated to the project.\n- os_floating_ip:\n     cloud: dguerri\n     server: cattle001\n\n# Assign a new floating IP to the instance fixed ip `192.0.2.3` of\n# `cattle001`. If a free floating IP is already allocated to the project, it is\n# reused; if not, a new one is created.\n- os_floating_ip:\n     cloud: dguerri\n     state: present\n     reuse: yes\n     server: cattle001\n     network: ext_net\n     fixed_address: 192.0.2.3\n     wait: true\n     timeout: 180\n\n# Detach a floating IP address from a server\n- os_floating_ip:\n     cloud: dguerri\n     state: absent\n     floating_ip_address: 203.0.113.2\n     server: cattle001\n'''\n\n\ndef _get_floating_ip(cloud, floating_ip_address):\n    f_ips = cloud.search_floating_ips(\n        filters={'floating_ip_address': floating_ip_address})\n    if not f_ips:\n        return None\n\n    return f_ips[0]\n\n\ndef main():\n    argument_spec = openstack_full_argument_spec(\n        server=dict(required=True),\n        state=dict(default='present', choices=['absent', 'present']),\n        network=dict(required=False, default=None),\n        floating_ip_address=dict(required=False, default=None),\n        reuse=dict(required=False, type='bool', default=False),\n        fixed_address=dict(required=False, default=None),\n        wait=dict(required=False, type='bool', default=False),\n        timeout=dict(required=False, type='int', default=60),\n        purge=dict(required=False, type='bool', default=False),\n    )\n\n    module_kwargs = openstack_module_kwargs()\n    module = AnsibleModule(argument_spec, **module_kwargs)\n\n    if not HAS_SHADE:\n        module.fail_json(msg='shade is required for this module')\n\n    server_name_or_id = module.params['server']\n    state = module.params['state']\n    network = module.params['network']\n    floating_ip_address = module.params['floating_ip_address']\n    reuse = module.params['reuse']\n    fixed_address = module.params['fixed_address']\n    wait = module.params['wait']\n    timeout = module.params['timeout']\n    purge = module.params['purge']\n\n    cloud = shade.openstack_cloud(**module.params)\n\n    try:\n        server = cloud.get_server(server_name_or_id)\n        if server is None:\n            module.fail_json(\n                msg=\"server {0} not found\".format(server_name_or_id))\n\n        if state == 'present':\n            fip_address = cloud.get_server_public_ip(server)\n            f_ip = _get_floating_ip(cloud, fip_address)\n            if f_ip:\n                module.exit_json(changed=False, floating_ip=f_ip)\n            server = cloud.add_ips_to_server(\n                server=server, ips=floating_ip_address, ip_pool=network,\n                reuse=reuse, fixed_address=fixed_address, wait=wait,\n                timeout=timeout)\n            fip_address = cloud.get_server_public_ip(server)\n            # Update the floating IP status\n            f_ip = _get_floating_ip(cloud, fip_address)\n            module.exit_json(changed=True, floating_ip=f_ip)\n\n        elif state == 'absent':\n            if floating_ip_address is None:\n                module.fail_json(msg=\"floating_ip_address is required\")\n\n            f_ip = _get_floating_ip(cloud, floating_ip_address)\n\n            if not f_ip:\n                # Nothing to detach\n                module.exit_json(changed=False)\n\n            cloud.detach_ip_from_server(\n                server_id=server['id'], floating_ip_id=f_ip['id'])\n            # Update the floating IP status\n            f_ip = cloud.get_floating_ip(id=f_ip['id'])\n            if purge:\n                cloud.delete_floating_ip(f_ip['id'])\n                module.exit_json(changed=True)\n            module.exit_json(changed=True, floating_ip=f_ip)\n\n    except shade.OpenStackCloudException as e:\n        module.fail_json(msg=str(e), extra_data=e.extra_data)\n\n\n# this is magic, see lib/ansible/module_common.py\nfrom ansible.module_utils.basic import *\nfrom ansible.module_utils.openstack import *\n\n\nif __name__ == '__main__':\n    main()\n", "path": "cloud/openstack/os_floating_ip.py"}]}