<!--- 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?
if node_info['ManagerStatus'].get('Leader'):
                
                
                count_colons = node_info['ManagerStatus']['Addr'].count(":")
                if count_colons == 1:
                    swarm_leader_ip = node_info['ManagerStatus']['Addr'].split(":", 1)[0] or node_info['Status']['Addr']
                else:
                    swarm_leader_ip = node_info['Status']['Addr']
                node_info['Status']['Addr'] = swarm_leader_ip
        return node_info
    def get_all_nodes_inspect(self):
        """
        Returns Swarm node info as in 'docker node inspect' command about all registered nodes
        :return:
            Structure with information about all nodes
        """
        try:
            node_info = self.nodes()
        except APIError as exc:
            if exc.status_code == 503:
                self.fail("Cannot inspect node: To inspect node execute module on Swarm Manager")
            self.fail("Error while reading from Swarm manager: %s" % to_native(exc))
        except Exception as exc:
            self.fail("Error inspecting swarm node: %s" % exc)
        json_str = json.dumps(node_info, ensure_ascii=False)
        node_info = json.loads(json_str)
        return node_info
    def get_all_nodes_list(self, output='short'):
        """
        Returns list of nodes registered in Swarm