prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Missing all_content param in ovirt_hosts_facts
  ##### SUMMARY
  ovirt_hosts_facts misses the all_content param and so it's not possible to get back the whole host details. ovirt_vms_facts list, for instance, has it.
  
  ##### ISSUE TYPE
   - Bug Report
  
  ##### COMPONENT NAME
  ovirt_hosts_facts
  
  ##### ANSIBLE VERSION
  ```
  ansible 2.6.1
    config file = /etc/ansible/ansible.cfg
    configured module search path = [u'/home/stirabos/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/lib/python2.7/site-packages/ansible
    executable location = /usr/bin/ansible
    python version = 2.7.15 (default, May 16 2018, 17:50:09) [GCC 8.1.1 20180502 (Red Hat 8.1.1-1)]
  ```
  
  ##### CONFIGURATION
  
  
  ##### OS / ENVIRONMENT
  N/A
  
  ##### STEPS TO REPRODUCE
  <!--- For bugs, show exactly how to reproduce the problem, using a minimal test-case.
  For new features, show how the feature would be used. -->
  
  <!--- Paste example playbooks or commands between quotes below -->
  ```yaml
      - ovirt_vms_facts:
          auth: "{{ ovirt_auth }}"
          all_content: true
      - debug: var=ovirt_vms
      - ovirt_hosts_facts:
          auth: "{{ ovirt_auth }}"
          all_content: true
      - debug: var=ovirt_hosts
  ```
  
  ##### EXPECTED RESULTS
  a list of hosts with full detail for each of them
  
  ##### ACTUAL RESULTS
  ```
  TASK [ovirt_hosts_facts] ******************************************************************************************************************************************************************************************
  fatal: [localhost]: FAILED! => {"changed": false, "msg": "Unsupported parameters for (ovirt_hosts_facts) module: all_content Supported parameters include: auth, fetch_nested, nested_attributes, pattern"}
  	to retry, use: --limit @/root/test.retry
  ```
  
  
  </issue>
  <code>
  [start of lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py]
  1 #!/usr/bin/python
  2 # -*- coding: utf-8 -*-
  3 #
  4 # Copyright (c) 2016 Red Hat, Inc.
  5 #
  6 # This file is part of Ansible
  7 #
  8 # Ansible is free software: you can redistribute it and/or modify
  9 # it under the terms of the GNU General Public License as published by
  10 # the Free Software Foundation, either version 3 of the License, or
  11 # (at your option) any later version.
  12 #
  13 # Ansible is distributed in the hope that it will be useful,
  14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16 # GNU General Public License for more details.
  17 #
  18 # You should have received a copy of the GNU General Public License
  19 # along with Ansible.  If not, see <http://www.gnu.org/licenses/>.
  20 #
  21 
  22 ANSIBLE_METADATA = {'metadata_version': '1.1',
  23                     'status': ['preview'],
  24                     'supported_by': 'community'}
  25 
  26 
  27 DOCUMENTATION = '''
  28 ---
  29 module: ovirt_hosts_facts
  30 short_description: Retrieve facts about one or more oVirt/RHV hosts
  31 author: "Ondra Machacek (@machacekondra)"
  32 version_added: "2.3"
  33 description:
  34     - "Retrieve facts about one or more oVirt/RHV hosts."
  35 notes:
  36     - "This module creates a new top-level C(ovirt_hosts) fact, which
  37        contains a list of hosts."
  38 options:
  39     pattern:
  40       description:
  41         - "Search term which is accepted by oVirt/RHV search backend."
  42         - "For example to search host X from datacenter Y use following pattern:
  43            name=X and datacenter=Y"
  44 extends_documentation_fragment: ovirt_facts
  45 '''
  46 
  47 EXAMPLES = '''
  48 # Examples don't contain auth parameter for simplicity,
  49 # look at ovirt_auth module to see how to reuse authentication:
  50 
  51 # Gather facts about all hosts which names start with C(host) and
  52 # belong to data center C(west):
  53 - ovirt_hosts_facts:
  54     pattern: name=host* and datacenter=west
  55 - debug:
  56     var: ovirt_hosts
  57 '''
  58 
  59 RETURN = '''
  60 ovirt_hosts:
  61     description: "List of dictionaries describing the hosts. Host attribues are mapped to dictionary keys,
  62                   all hosts attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/host."
  63     returned: On success.
  64     type: list
  65 '''
  66 
  67 import traceback
  68 
  69 from ansible.module_utils.basic import AnsibleModule
  70 from ansible.module_utils.ovirt import (
  71     check_sdk,
  72     create_connection,
  73     get_dict_of_struct,
  74     ovirt_facts_full_argument_spec,
  75 )
  76 
  77 
  78 def main():
  79     argument_spec = ovirt_facts_full_argument_spec(
  80         pattern=dict(default='', required=False),
  81     )
  82     module = AnsibleModule(argument_spec)
  83     check_sdk(module)
  84 
  85     try:
  86         auth = module.params.pop('auth')
  87         connection = create_connection(auth)
  88         hosts_service = connection.system_service().hosts_service()
  89         hosts = hosts_service.list(search=module.params['pattern'])
  90         module.exit_json(
  91             changed=False,
  92             ansible_facts=dict(
  93                 ovirt_hosts=[
  94                     get_dict_of_struct(
  95                         struct=c,
  96                         connection=connection,
  97                         fetch_nested=module.params.get('fetch_nested'),
  98                         attributes=module.params.get('nested_attributes'),
  99                     ) for c in hosts
  100                 ],
  101             ),
  102         )
  103     except Exception as e:
  104         module.fail_json(msg=str(e), exception=traceback.format_exc())
  105     finally:
  106         connection.close(logout=auth.get('token') is None)
  107 
  108 
  109 if __name__ == '__main__':
  110     main()
  111
  [end of lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py b/lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py
  --- a/lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py
  +++ b/lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py
  @@ -41,6 +41,12 @@
           - "Search term which is accepted by oVirt/RHV search backend."
           - "For example to search host X from datacenter Y use following pattern:
              name=X and datacenter=Y"
  +    all_content:
  +      description:
  +        - "If I(true) all the attributes of the hosts should be
  +           included in the response."
  +      default: False
  +      version_added: "2.7"
   extends_documentation_fragment: ovirt_facts
   '''
   
  @@ -78,6 +84,7 @@
   def main():
       argument_spec = ovirt_facts_full_argument_spec(
           pattern=dict(default='', required=False),
  +        all_content=dict(default=False, type='bool'),
       )
       module = AnsibleModule(argument_spec)
       check_sdk(module)
  @@ -86,7 +93,10 @@
           auth = module.params.pop('auth')
           connection = create_connection(auth)
           hosts_service = connection.system_service().hosts_service()
  -        hosts = hosts_service.list(search=module.params['pattern'])
  +        hosts = hosts_service.list(
  +            search=module.params['pattern'],
  +            all_content=module.params['all_content'],
  +        )
           module.exit_json(
               changed=False,
               ansible_facts=dict(
  
verification_info: {"golden_diff": "diff --git a/lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py b/lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py\n--- a/lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py\n+++ b/lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py\n@@ -41,6 +41,12 @@\n         - \"Search term which is accepted by oVirt/RHV search backend.\"\n         - \"For example to search host X from datacenter Y use following pattern:\n            name=X and datacenter=Y\"\n+    all_content:\n+      description:\n+        - \"If I(true) all the attributes of the hosts should be\n+           included in the response.\"\n+      default: False\n+      version_added: \"2.7\"\n extends_documentation_fragment: ovirt_facts\n '''\n \n@@ -78,6 +84,7 @@\n def main():\n     argument_spec = ovirt_facts_full_argument_spec(\n         pattern=dict(default='', required=False),\n+        all_content=dict(default=False, type='bool'),\n     )\n     module = AnsibleModule(argument_spec)\n     check_sdk(module)\n@@ -86,7 +93,10 @@\n         auth = module.params.pop('auth')\n         connection = create_connection(auth)\n         hosts_service = connection.system_service().hosts_service()\n-        hosts = hosts_service.list(search=module.params['pattern'])\n+        hosts = hosts_service.list(\n+            search=module.params['pattern'],\n+            all_content=module.params['all_content'],\n+        )\n         module.exit_json(\n             changed=False,\n             ansible_facts=dict(\n", "issue": "Missing all_content param in ovirt_hosts_facts\n##### SUMMARY\r\novirt_hosts_facts misses the all_content param and so it's not possible to get back the whole host details. ovirt_vms_facts list, for instance, has it.\r\n\r\n##### ISSUE TYPE\r\n - Bug Report\r\n\r\n##### COMPONENT NAME\r\novirt_hosts_facts\r\n\r\n##### ANSIBLE VERSION\r\n```\r\nansible 2.6.1\r\n  config file = /etc/ansible/ansible.cfg\r\n  configured module search path = [u'/home/stirabos/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']\r\n  ansible python module location = /usr/lib/python2.7/site-packages/ansible\r\n  executable location = /usr/bin/ansible\r\n  python version = 2.7.15 (default, May 16 2018, 17:50:09) [GCC 8.1.1 20180502 (Red Hat 8.1.1-1)]\r\n```\r\n\r\n##### CONFIGURATION\r\n\r\n\r\n##### OS / ENVIRONMENT\r\nN/A\r\n\r\n##### STEPS TO REPRODUCE\r\n<!--- For bugs, show exactly how to reproduce the problem, using a minimal test-case.\r\nFor new features, show how the feature would be used. -->\r\n\r\n<!--- Paste example playbooks or commands between quotes below -->\r\n```yaml\r\n    - ovirt_vms_facts:\r\n        auth: \"{{ ovirt_auth }}\"\r\n        all_content: true\r\n    - debug: var=ovirt_vms\r\n    - ovirt_hosts_facts:\r\n        auth: \"{{ ovirt_auth }}\"\r\n        all_content: true\r\n    - debug: var=ovirt_hosts\r\n```\r\n\r\n##### EXPECTED RESULTS\r\na list of hosts with full detail for each of them\r\n\r\n##### ACTUAL RESULTS\r\n```\r\nTASK [ovirt_hosts_facts] ******************************************************************************************************************************************************************************************\r\nfatal: [localhost]: FAILED! => {\"changed\": false, \"msg\": \"Unsupported parameters for (ovirt_hosts_facts) module: all_content Supported parameters include: auth, fetch_nested, nested_attributes, pattern\"}\r\n\tto retry, use: --limit @/root/test.retry\r\n```\r\n\n", "before_files": [{"content": "#!/usr/bin/python\n# -*- coding: utf-8 -*-\n#\n# Copyright (c) 2016 Red Hat, Inc.\n#\n# This file is part of Ansible\n#\n# Ansible 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# Ansible 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 Ansible.  If not, see <http://www.gnu.org/licenses/>.\n#\n\nANSIBLE_METADATA = {'metadata_version': '1.1',\n                    'status': ['preview'],\n                    'supported_by': 'community'}\n\n\nDOCUMENTATION = '''\n---\nmodule: ovirt_hosts_facts\nshort_description: Retrieve facts about one or more oVirt/RHV hosts\nauthor: \"Ondra Machacek (@machacekondra)\"\nversion_added: \"2.3\"\ndescription:\n    - \"Retrieve facts about one or more oVirt/RHV hosts.\"\nnotes:\n    - \"This module creates a new top-level C(ovirt_hosts) fact, which\n       contains a list of hosts.\"\noptions:\n    pattern:\n      description:\n        - \"Search term which is accepted by oVirt/RHV search backend.\"\n        - \"For example to search host X from datacenter Y use following pattern:\n           name=X and datacenter=Y\"\nextends_documentation_fragment: ovirt_facts\n'''\n\nEXAMPLES = '''\n# Examples don't contain auth parameter for simplicity,\n# look at ovirt_auth module to see how to reuse authentication:\n\n# Gather facts about all hosts which names start with C(host) and\n# belong to data center C(west):\n- ovirt_hosts_facts:\n    pattern: name=host* and datacenter=west\n- debug:\n    var: ovirt_hosts\n'''\n\nRETURN = '''\novirt_hosts:\n    description: \"List of dictionaries describing the hosts. Host attribues are mapped to dictionary keys,\n                  all hosts attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/host.\"\n    returned: On success.\n    type: list\n'''\n\nimport traceback\n\nfrom ansible.module_utils.basic import AnsibleModule\nfrom ansible.module_utils.ovirt import (\n    check_sdk,\n    create_connection,\n    get_dict_of_struct,\n    ovirt_facts_full_argument_spec,\n)\n\n\ndef main():\n    argument_spec = ovirt_facts_full_argument_spec(\n        pattern=dict(default='', required=False),\n    )\n    module = AnsibleModule(argument_spec)\n    check_sdk(module)\n\n    try:\n        auth = module.params.pop('auth')\n        connection = create_connection(auth)\n        hosts_service = connection.system_service().hosts_service()\n        hosts = hosts_service.list(search=module.params['pattern'])\n        module.exit_json(\n            changed=False,\n            ansible_facts=dict(\n                ovirt_hosts=[\n                    get_dict_of_struct(\n                        struct=c,\n                        connection=connection,\n                        fetch_nested=module.params.get('fetch_nested'),\n                        attributes=module.params.get('nested_attributes'),\n                    ) for c in hosts\n                ],\n            ),\n        )\n    except Exception as e:\n        module.fail_json(msg=str(e), exception=traceback.format_exc())\n    finally:\n        connection.close(logout=auth.get('token') is None)\n\n\nif __name__ == '__main__':\n    main()\n", "path": "lib/ansible/modules/cloud/ovirt/ovirt_hosts_facts.py"}]}