# Buggy code
def add_host_to_vcenter(self):
    host_connect_spec = self.get_host_connect_spec()
    as_connected = self.params.get("add_connected")
    esxi_license = None
    resource_pool = None

    for count in range(0, 2):
        try:
            task = None
            if self.folder:
                task = self.folder.AddStandaloneHost(
                    spec=host_connect_spec, addConnected=as_connected
                )
            elif self.cluster:
                task = self.cluster.AddHost_Task(
                    host_connect_spec, as_connected, resource_pool, esxi_license
                )
            success, result = wait_for_task(task)
            return success, result
        except TaskError as task_error_exception:
            task_error = task_error_exception.args[0]
            if self.esxi_ssl_thumbprint == "" and isinstance(
                task_error, vim.fault.SSLVerifyFault
            ):
                # User has not specified SSL Thumbprint for ESXi host,
                # try to grab it using SSLVerifyFault exception
                host_connect_spec.sslThumbprint = task_error.thumbprint
            else:
                self.module.fail_json(
                    msg="Failed to add host %s to vCenter: %s"
                    % (self.esxi_hostname, to_native(task_error.msg))
                )
        except vmodl.fault.NotSupported:
            self.module.fail_json(
                msg="Failed to add host %s to vCenter as host is"
                " being added to a folder %s whose childType"
                " property does not contain"
                ' "ComputeResource".' % (self.esxi_hostname, self.folder_name)
            )
        except Exception as generic_exc:
            self.module.fail_json(
                msg="Failed to add host %s to vCenter: %s"
                % (self.esxi_hostname, to_native(generic_exc))
            )

    self.module.fail_json(msg="Failed to add host %s to vCenter" % self.esxi_hostname)


# Traceback (TypeError)
TASK [azure_load_balancer : Get lbs] *********************************************************************************************
task path: /home/vmadmin/cluster_build/roles/azure_load_balancer/tasks/main.yaml:15
Using module file /home/vmadmin/.local/lib/python2.7/site-packages/ansible/modules/cloud/azure/azure_rm_loadbalancer_facts.py
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: vmadmin
<localhost> EXEC /bin/sh -c 'echo ~ &amp;&amp; sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 &amp;&amp; mkdir -p "` echo /home/vmadmin/.ansible/tmp/ansible-tmp-1504708358.3-41710485333814 `" &amp;&amp; echo ansible-tmp-1504708358.3-41710485333814="` echo /home/vmadmin/.ansible/tmp/ansible-tmp-1504708358.3-41710485333814 `" ) &amp;&amp; sleep 0'
<localhost> PUT /tmp/tmpy_CiqC TO /home/vmadmin/.ansible/tmp/ansible-tmp-1504708358.3-41710485333814/azure_rm_loadbalancer_facts.py
<localhost> EXEC /bin/sh -c 'chmod u+x /home/vmadmin/.ansible/tmp/ansible-tmp-1504708358.3-41710485333814/ /home/vmadmin/.ansible/tmp/ansible-tmp-1504708358.3-41710485333814/azure_rm_loadbalancer_facts.py &amp;&amp; sleep 0'
<localhost> EXEC /bin/sh -c '/usr/bin/python /home/vmadmin/.ansible/tmp/ansible-tmp-1504708358.3-41710485333814/azure_rm_loadbalancer_facts.py; rm -rf "/home/vmadmin/.ansible/tmp/ansible-tmp-1504708358.3-41710485333814/" > /dev/null 2>&amp;1 &amp;&amp; sleep 0'
The full traceback is:
Traceback (most recent call last):
File "/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py", line 180, in <module>
main()
File "/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py", line 177, in main
AzureRMLoadBalancerFacts()
File "/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py", line 123, in __init__
facts_module=True
File "/tmp/ansible_VTaHxN/ansible_modlib.zip/ansible/module_utils/azure_rm_common.py", line 255, in __init__
File "/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py", line 133, in exec_module
else self.list_items()
File "/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py", line 162, in list_items
response = self.network_client.load_balancers.list()
TypeError: list() takes at least 2 arguments (1 given)

fatal: [localhost]: FAILED! => {
"changed": false,
"failed": true,
"module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py\", line 180, in <module>\n    main()\n  File \"/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py\", line 177, in main\n    AzureRMLoadBalancerFacts()\n  File \"/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py\", line 123, in __init__\n    facts_module=True\n  File \"/tmp/ansible_VTaHxN/ansible_modlib.zip/ansible/module_utils/azure_rm_common.py\", line 255, in __init__\n  File \"/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py\", line 133, in exec_module\n    else self.list_items()\n  File \"/tmp/ansible_VTaHxN/ansible_module_azure_rm_loadbalancer_facts.py\", line 162, in list_items\n    response = self.network_client.load_balancers.list()\nTypeError: list() takes at least 2 arguments (1 given)\n",
"module_stdout": "",
"msg": "MODULE FAILURE",
"rc": 0
}

# Fixed code
def add_host_to_vcenter(self):
    host_connect_spec = self.get_host_connect_spec()
    as_connected = self.params.get("add_connected")
    esxi_license = None
    resource_pool = None

    for count in range(0, 2):
        try:
            task = None
            if self.folder:
                task = self.folder.AddStandaloneHost(
                    spec=host_connect_spec, addConnected=as_connected
                )
            elif self.cluster:
                task = self.cluster.AddHost_Task(
                    host_connect_spec, as_connected, resource_pool, esxi_license
                )
            success, result = wait_for_task(task)
            return success, result
        except TaskError as task_error_exception:
            task_error = task_error_exception.args[0]
            if self.esxi_ssl_thumbprint == "" and isinstance(
                task_error, vim.fault.SSLVerifyFault
            ):
                # User has not specified SSL Thumbprint for ESXi host,
                # try to grab it using SSLVerifyFault exception
                host_connect_spec.sslThumbprint = task_error.thumbprint
            else:
                self.module.fail_json(
                    msg="Failed to add host %s to vCenter: %s"
                    % (self.esxi_hostname, to_native(task_error))
                )
        except vmodl.fault.NotSupported:
            self.module.fail_json(
                msg="Failed to add host %s to vCenter as host is"
                " being added to a folder %s whose childType"
                " property does not contain"
                ' "ComputeResource".' % (self.esxi_hostname, self.folder_name)
            )
        except Exception as generic_exc:
            self.module.fail_json(
                msg="Failed to add host %s to vCenter: %s"
                % (self.esxi_hostname, to_native(generic_exc))
            )

    self.module.fail_json(msg="Failed to add host %s to vCenter" % self.esxi_hostname)