'Select datastore that can accommodate the given volume\'s backing.
Returns the selected datastore summary along with a compute host and
its resource pool and folder where the volume can be created
:return: (host, resource_pool, folder, summary)'

def _select_ds_for_volume(self, volume, host=None, create_params=None):

    create_params = (create_params or {})
    size = create_params.get(CREATE_PARAM_DISK_SIZE, volume['size'])
    req = {}
    req[hub.DatastoreSelector.SIZE_BYTES] = (size * units.Gi)
    req[hub.DatastoreSelector.PROFILE_NAME] = self._get_storage_profile(volume)
    (host_ref, resource_pool, summary) = self._select_datastore(req, host)
    dc = self._get_dc(resource_pool)
    folder = self._get_volume_group_folder(dc, volume['project_id'])
    return (host_ref, resource_pool, folder, summary)
