<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
When using the docker_node_info with a node name that would be ambiguous, the module fails with an exception about an undefined variable.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
docker_node_info

##### ANSIBLE VERSION

```
ansible 2.8.5
  config file = /home/vagrant/code/ansible-playbooks/ansible.cfg
  configured module search path = [u'/home/vagrant/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
```

##### CONFIGURATION

```
DEFAULT_LOAD_CALLBACK_PLUGINS(/home/vagrant/code/ansible-playbooks/ansible.cfg) = True
DEFAULT_STDOUT_CALLBACK(/home/vagrant/code/ansible-playbooks/ansible.cfg) = yaml
HOST_KEY_CHECKING(/home/vagrant/code/ansible-playbooks/ansible.cfg) = False
```

##### OS / ENVIRONMENT
Running on Ubuntu, targeting Ubuntu


##### STEPS TO REPRODUCE
Create a minimal docker swarm setup, with 2 nodes, one manager and one worker. Add the worker to the swarm, then leave the swarm then re-join the swarm. This will lead to an output similar to:
```
azureuser@pgelinas-dev-ln0:~$ docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
0oqo20dyohnfm0d2itjvnlt0x     pgelinas-d-wn0      Down                Active                                  18.09.9
ikqtd942969nc3d9j0k68isfi     pgelinas-d-wn0      Ready               Active                                  18.09.9
wf1mmy7zbuhsfu4vstvl06t2y *   pgelinas-dev-ln0    Ready               Active              Leader              19.03.3
```

And docker node inspect output gives the following:

```
azureuser@pgelinas-dev-ln0:~$ docker node inspect pgelinas-d-wn0
[]
Status: Error response from daemon: node pgelinas-d-wn0 is ambiguous (2 matches found), Code: 1
```
Sample task definition:
```yaml
- name: Ensure worker has joined the swarm
  delegate_to: "pgelinas-dev-ln0"
  docker_node_info:
    name: "{{ ansible_hostname }}"
  register: result
  failed_when: result.nodes is not defined
```

##### EXPECTED RESULTS
The module should handle the error gracefully and provide the error message/status in the result


##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
```
TASK [swarm-worker : Ensure worker has joined the swarm] **********************************************************************************************************************************************************

fatal: [pgelinas-dev-ww0 -> pgelinas-dev-lm0.centralus.cloudapp.azure.com]: FAILED! => changed=false
  attempts: 1
  failed_when_result: true
  module_stderr: |-
    Shared connection to pgelinas-dev-lm0.centralus.cloudapp.azure.com closed.
  module_stdout: |-
    Traceback (most recent call last):
      File "/home/azureuser/.ansible/tmp/ansible-tmp-1570731617.12-46436432626554/AnsiballZ_docker_node_info.py", line 114, in <module>
        _ansiballz_main()
      File "/home/azureuser/.ansible/tmp/ansible-tmp-1570731617.12-46436432626554/AnsiballZ_docker_node_info.py", line 106, in _ansiballz_main
        invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
      File "/home/azureuser/.ansible/tmp/ansible-tmp-1570731617.12-46436432626554/AnsiballZ_docker_node_info.py", line 49, in invoke_module
        imp.load_module('__main__', mod, module, MOD_DESC)
      File "/tmp/ansible_docker_node_info_payload_nJH7PJ/__main__.py", line 158, in <module>
      File "/tmp/ansible_docker_node_info_payload_nJH7PJ/__main__.py", line 145, in main
      File "/tmp/ansible_docker_node_info_payload_nJH7PJ/__main__.py", line 123, in get_node_facts
      File "/tmp/ansible_docker_node_info_payload_nJH7PJ/ansible_docker_node_info_payload.zip/ansible/module_utils/docker/swarm.py", line 170, in get_node_inspect
    UnboundLocalError: local variable 'node_info' referenced before assignment
  msg: |-
    MODULE FAILURE
    See stdout/stderr for the exact error
  rc: 1
```
I've poked a bit at the code in github regarding this; I think this might be in lib/ansible/module_utils/docker/swarm.py around line 162. Probably an unhandled status_code?
"""
        Checks if node role is set as Worker in Swarm. The node is the docker host on which module action
        is performed. Will fail if run on host that is not part of Swarm via check_if_swarm_node()
        :return: True if node is Swarm Worker, False otherwise
        """
        if self.check_if_swarm_node() and not self.check_if_swarm_manager():
            return True
        return False
    def check_if_swarm_node_is_down(self, node_id=None, repeat_check=1):
        """
        Checks if node status on Swarm manager is 'down'. If node_id is provided it query manager about
        node specified in parameter, otherwise it query manager itself. If run on Swarm Worker node or
        host that is not part of Swarm it will fail the playbook
        :param repeat_check: number of check attempts with 5 seconds delay between them, by default check only once
        :param node_id: node ID or name, if None then method will try to get node_id of host module run on
        :return:
            True if node is part of swarm but its state is down, False otherwise
        """
        if repeat_check < 1:
            repeat_check = 1
        if node_id is None:
            node_id = self.get_swarm_node_id()
        for retry in range(0, repeat_check):
            if retry > 0:
                sleep(5)
            node_info = self.get_node_inspect(node_id=node_id)
            if node_info['Status']['State'] == 'down':
                return True
        return False
    def get_node_inspect(self, node_id=None, skip_missing=False):