# Buggy code
def check_tag_status(self):
    """
    Check if tag exists or not
    Returns: 'present' if tag found, else 'absent'

    """
    ret = "present" if self.tag_name in self.global_tags else "absent"
    return ret


# Traceback (nTypeError)
<localhost> Attempting python interpreter discovery
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: dpelliccia
<localhost> EXEC /bin/sh -c 'echo PLATFORM; uname; echo FOUND; command -v '"'"'/usr/bin/python'"'"'; command -v '"'"'python3.7'"'"';                      command -v '"'"'python3.6'"'"'; command -v '"'"'python3.5'"'"'; command -v '"'"'python2.7'"'"'; command -v '"'"'python2.6'"'"'; comma                     nd -v '"'"'/usr/libexec/platform-python'"'"'; command -v '"'"'/usr/bin/python3'"'"'; command -v '"'"'python'"'"'; echo ENDFOUND &amp;&amp; sl                     eep 0'
<localhost> EXEC /bin/sh -c '/usr/bin/python &amp;&amp; sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/cloud/vmware/_vmware_vm_facts.py
Pipelining is enabled.
<localhost> EXEC /bin/sh -c '/usr/bin/python &amp;&amp; sleep 0'
fatal: [localhost -> localhost]: FAILED! => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"module_stderr": "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS reques                     t is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.ht                     ml#ssl-warnings\n  InsecureRequestWarning)\nTraceback (most recent call last):\n  File \"<stdin>\", line 102, in <module>\n  File \"<                     stdin>\", line 94, in _ansiballz_main\n  File \"<stdin>\", line 40, in invoke_module\n  File \"/usr/lib64/python2.7/runpy.py\", line                      180, in run_module\n    fname, loader, pkg_name)\n  File \"/usr/lib64/python2.7/runpy.py\", line 72, in _run_code\n    exec code in r                     un_globals\n  File \"/tmp/ansible_vmware_vm_facts_payload_x51H8H/ansible_vmware_vm_facts_payload.zip/ansible/modules/cloud/vmware/_vm                     ware_vm_facts.py\", line 322, in <module>\n  File \"/tmp/ansible_vmware_vm_facts_payload_x51H8H/ansible_vmware_vm_facts_payload.zip/a                     nsible/modules/cloud/vmware/_vmware_vm_facts.py\", line 316, in main\n  File \"/tmp/ansible_vmware_vm_facts_payload_x51H8H/ansible_vm                     ware_vm_facts_payload.zip/ansible/modules/cloud/vmware/_vmware_vm_facts.py\", line 272, in get_all_virtual_machines\n  File \"/tmp/an                     sible_vmware_vm_facts_payload_x51H8H/ansible_vmware_vm_facts_payload.zip/ansible/modules/cloud/vmware/_vmware_vm_facts.py\", line 208                     , in get_tag_info\nTypeError: get_tags_for_vm() got an unexpected keyword argument 'vm_id'\n/usr/lib/python2.7/site-packages/urllib3/                     connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly ad                     vised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n  InsecureRequestWarning)\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}

# Fixed code
def check_tag_status(self):
    """
    Check if tag exists or not
    Returns: 'present' if tag found, else 'absent'

    """
    if "category_id" in self.params:
        if (
            self.tag_name in self.global_tags
            and self.params["category_id"]
            == self.global_tags[self.tag_name]["tag_category_id"]
        ):
            ret = "present"
        else:
            ret = "absent"
    else:
        ret = "present" if self.tag_name in self.global_tags else "absent"
    return ret