<!--- 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
Ansible throws an AttributeError exception. If I do not specify a network section, it will create the vm but complain about mismatched number of NICs

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
vmware_guest

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.8.3
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ansible/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible
  python version = 2.7.5 (default, Jun 11 2019, 12:19:05) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
ANSIBLE_PIPELINING(/etc/ansible/ansible.cfg) = True
DEFAULT_PRIVATE_KEY_FILE(/etc/ansible/ansible.cfg) = /home/ansible/.ssh/id_rsa
HOST_KEY_CHECKING(/etc/ansible/ansible.cfg) = False
PARAMIKO_HOST_KEY_AUTO_ADD(/etc/ansible/ansible.cfg) = True
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
vSphere 6.7.0
RHEL 7.6 kernel 3.10.0-957.21.3.el7.x86_64
pyvmomi 6.7.1.2018.12
##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
Run the following playbook
<!--- Paste example playbooks or commands between quotes below -->
```yaml
---
# tasks file for vmware-setup
- name: Create or update VM
  vmware_guest:
    hostname: "{{ vCenter.ip }}"
    username: "{{ vCenter.username }}"
    password: "{{ vCenter.password }}"
    annotation: Provisioned and managed by Ansible
    cluster: "{{ cluster_name }}"
    datacenter: "{{ datacenter_name }}"
    name: "{{ inventory_hostname }}"
    folder: "{{ folder_name }}"
    state: poweredon
    template: "{{ template_name }}"
    networks:
      - name: "{{ network_name }}"
        vlan: 400
        ip: "{{ ansible_host }}"
        netmask: "{{ network_netmask }}"
    customization:
      dns_servers: 10.22.148.45
      domain: "{{ vCenter.domain }}"
      hostname: "{{ inventory_hostname|lower }}"
    validate_certs: no
  delegate_to: localhost

```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
New vm to be created and started

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
AttributeError thrown
<!--- Paste verbatim command output between quotes -->
```paste below
TASK [vmware-setup : Create or update VM] *********************************************************************************************************************************************************************
task path: /workspace/ansible-fusion/roles/vmware-setup/tasks/main.yml:3
Using module file /usr/lib/python2.7/site-packages/ansible/modules/cloud/vmware/vmware_guest.py
Pipelining is enabled.
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: ansible
<localhost> EXEC /bin/sh -c 'sudo -H -S -n  -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-swmzlhdjmcuoqfuzomgxoopqvglmlgub ;  /usr/bin/python2'"'"' && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "<stdin>", line 114, in <module>
  File "<stdin>", line 106, in _ansiballz_main
  File "<stdin>", line 49, in invoke_module
  File "/tmp/ansible_vmware_guest_payload_frCA55/__main__.py", line 2669, in <module>
  File "/tmp/ansible_vmware_guest_payload_frCA55/__main__.py", line 2658, in main
  File "/tmp/ansible_vmware_guest_payload_frCA55/__main__.py", line 2175, in deploy_vm
  File "/tmp/ansible_vmware_guest_payload_frCA55/__main__.py", line 1355, in configure_network
AttributeError: 'NoneType' object has no attribute 'uuid'

fatal: [FUSION-jenkins-slave-1 -> localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 114, in <module>\n  File \"<stdin>\", line 106, in _ansiballz_main\n  File \"<stdin>\", line 49, in invoke_module\n  File \"/tmp/ansible_vmware_guest_payload_frCA55/__main__.py\", line 2669, in <module>\n  File \"/tmp/ansible_vmware_guest_payload_frCA55/__main__.py\", line 2658, in main\n  File \"/tmp/ansible_vmware_guest_payload_frCA55/__main__.py\", line 2175, in deploy_vm\n  File \"/tmp/ansible_vmware_guest_payload_frCA55/__main__.py\", line 1355, in configure_network\nAttributeError: 'NoneType' object has no attribute 'uuid'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}
```

- If the C(state) is set to C(shutdownguest), by default the module will return immediately after sending the shutdown signal.
    - If this argument is set to a positive integer, the module will instead wait for the virtual machine to reach the poweredoff state.
    - The value sets a timeout in seconds for the module to wait for the state change.
    default: 0
    version_added: '2.6'
  snapshot_src:
    description:
    - Name of the existing snapshot to use to create a clone of a virtual machine.
    - This parameter is case sensitive.
    - While creating linked clone using C(linked_clone) parameter, this parameter is required.
    version_added: '2.4'
  linked_clone:
    description:
    - Whether to create a linked clone from the snapshot specified.
    - If specified, then C(snapshot_src) is required parameter.
    default: 'no'
    type: bool
    version_added: '2.4'
  force:
    description:
    - Ignore warnings and complete the actions.
    - This parameter is useful while removing virtual machine which is powered on state.
    - 'This module reflects the VMware vCenter API and UI workflow, as such, in some cases the `force` flag will
       be mandatory to perform the action to ensure you are certain the action has to be taken, no matter what the consequence.
       This is specifically the case for removing a powered on the virtual machine when C(state) is set to C(absent).'
    default: 'no'
    type: bool
  datacenter:
    description:
    - Destination datacenter for the deploy operation.