# Buggy code
def edit_config(
    self, candidate=None, commit=True, replace=None, diff=False, comment=None
):
    """Loads the candidate configuration into the network device

    This method will load the specified candidate config into the device
    and merge with the current configuration unless replace is set to
    True.  If the device does not support config replace an errors
    is returned.

    :param candidate: The configuration to load into the device and merge
        with the current running configuration

    :param commit: Boolean value that indicates if the device candidate
        configuration should be  pushed in the running configuration or discarded.

    :param replace: If the value is True/False it indicates if running configuration should be completely
                    replace by candidate configuration. If can also take configuration file path as value,
                    the file in this case should be present on the remote host in the mentioned path as a
                    prerequisite.
    :param comment: Commit comment provided it is supported by remote host
    :return: Returns a json string with contains configuration applied on remote host, the returned
             response on executing configuration commands and platform relevant data.
           {
               "diff": "",
               "response": []
           }

    """
    pass


# 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 edit_config(
    self, candidate=None, commit=True, replace=None, diff=False, comment=None
):
    """Loads the candidate configuration into the network device

    This method will load the specified candidate config into the device
    and merge with the current configuration unless replace is set to
    True.  If the device does not support config replace an errors
    is returned.

    :param candidate: The configuration to load into the device and merge
        with the current running configuration

    :param commit: Boolean value that indicates if the device candidate
        configuration should be  pushed in the running configuration or discarded.

    :param replace: If the value is True/False it indicates if running configuration should be completely
                    replace by candidate configuration. If can also take configuration file path as value,
                    the file in this case should be present on the remote host in the mentioned path as a
                    prerequisite.
    :param comment: Commit comment provided it is supported by remote host
    :return: Returns a json string with contains configuration applied on remote host, the returned
             response on executing configuration commands and platform relevant data.
           {
               "diff": "",
               "response": [],
               "request": []
           }

    """
    pass