<!--- 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
<!--- Explain the problem briefly below -->
When passing in a `datastore_cluster` name to the `vmware_guest_disk` or `vmware_guest` modules, returning a datastore recommendation is failing and falling back on the default behavior (iterating through available datastores). This breaks Storage DRS behavior such as "Keep VMDKs Together"

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
vmware_guest_disk
vmware_guest


##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.10.0.dev0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/export/home/rr86949e/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /tech/home/rr86949e/debug/ansible/lib/ansible
  executable location = /tech/home/rr86949e/debug/ansible/bin/ansible
  python version = 3.6.8 (default, Jun 11 2019, 15:15:01) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
DEFAULT_ROLES_PATH(/etc/ansible/ansible.cfg) = ['/etc/ansible/roles', '/usr/share/ansible/roles']
HOST_KEY_CHECKING(/etc/ansible/ansible.cfg) = False
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
RedHat Linux Enterprise Server 7.6
vSphere Client version 6.5.0.23000
pyvmomi 6.7.3

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
- name: Add disks to virtual machine, extend existing disk or remove disk
  vmware_guest_disk:
    hostname: "{{ lookup('env', 'VMWARE_HOST') }}"
    username: "{{ lookup('env', 'VMWARE_USER') }}"
    password: "{{ lookup('env', 'VMWARE_PASSWORD') }}"
    datacenter: "{{ datacenter_name }}"
    validate_certs: no
    name: "{{ vm_hostname }}"
    disk: "{{ disk_params }}"
```

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

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
With Storage DRS enabled and "Keep VMDKs together" checked in vSphere, the recommended datastore for the disk should be the same as the datastore used for the VM's OS disk. If you follow the manual steps through the vSphere UI, you can see the storage recommendation to place any new hard disks on the same datastore in the datastore cluster as the VM's OS disk.

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
The new disk is on a separate datastore in the datastore cluster from that of the VM's OS disk. This does not match behavior through the vSphere UI with the same settings enabled.

##### ADDITIONAL

Using the steps from https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html I was able
to debug this using `pdb` and see the following error messages from executing the line below: https://github.com/ansible/ansible/blob/fe454d27a1aa5386801563ffe8dde44064f84302/lib/ansible/modules/cloud/vmware/vmware_guest_disk.py#L765:

```
-> rec = self.content.storageResourceManager.RecommendDatastores(storageSpec=storage_spec)
(Pdb) n
pyVmomi.VmomiSupport.vmodl.fault.InvalidArgument: (vmodl.fault.InvalidArgument) {
   dynamicType = <unset>,
   dynamicProperty = (vmodl.DynamicProperty) [],
   msg = 'A specified parameter was not correct: configSpec',
   faultCause = <unset>,
   faultMessage = (vmodl.LocalizableMessage) [],
   invalidProperty = 'configSpec'
}
```

I was able to fix it by adding the following lines before the `try` block to update the `storage_spec` object:

```python
        if sdrs_status:
            # We can get storage recommendation only if SDRS is enabled on given datastorage cluster
            pod_sel_spec = vim.storageDrs.PodSelectionSpec()
            pod_sel_spec.storagePod = datastore_cluster_obj
            storage_spec = vim.storageDrs.StoragePlacementSpec()
            storage_spec.podSelectionSpec = pod_sel_spec
            storage_spec.type = 'create'

            # my changes here
            storage_spec.configSpec = self.config_spec
            storage_spec.resourcePool = self.vm.resourcePool
            # end of my changes


            try:
```

It is no longer failing and falling back to default behavior here, but I am still seeing a different recommendation returned from what I would get via the UI. At the very least, I would like to fix this initial issue and have the actual return recommendation looked into as well.
"""
        Reconfigure virtual machine after modifying device spec
        Args:
            config_spec: Config Spec
            device_type: Type of device being modified
        Returns: Boolean status 'changed' and actual task result
        """
        changed, results = (False, '')
        try:
            
            task = self.vm.ReconfigVM_Task(spec=config_spec)
            changed, results = wait_for_task(task)
        except vim.fault.InvalidDeviceSpec as invalid_device_spec:
            self.module.fail_json(msg="Failed to manage %s on given virtual machine due to invalid"
                                      " device spec : %s" % (device_type, to_native(invalid_device_spec.msg)),
                                  details="Please check ESXi server logs for more details.")
        except vim.fault.RestrictedVersion as e:
            self.module.fail_json(msg="Failed to reconfigure virtual machine due to"
                                      " product versioning restrictions: %s" % to_native(e.msg))
        return changed, results
    def get_ioandshares_diskconfig(self, disk_spec, disk):