##### SUMMARY
In current `devel`, using the openstack inventory plugin with the parameter `clouds_yaml_path` no longer works.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
lib/ansible/cli/config.py
lib/ansible/plugins/inventory/openstack.py

##### ANSIBLE VERSION
```paste below
$ ansible --version
ansible 2.9.0.dev0
  config file = None
  configured module search path = ['/Users/alancoding/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/alancoding/Documents/repos/ansible/lib/ansible
  executable location = /Users/alancoding/.virtualenvs/ansible3/bin/ansible
  python version = 3.6.5 (default, Apr 25 2018, 14:23:58) [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)]
```

##### CONFIGURATION
```paste below
$ ansible-config dump --only-changed
ANSIBLE_NOCOWS(env: ANSIBLE_NOCOWS) = True
```

##### OS / ENVIRONMENT
CentOS / Mac OS / control machine


##### STEPS TO REPRODUCE
Use inventory file `openstack.yml` as follows:

(1)
```yaml
plugin: openstack
clouds_yaml_path:
  - private/openstack/clouds.yml
```

that format is the one which has historically worked. It is not the documented expected format.

----

The documentation suggests this would work, but it never has:

(2)
```yaml
plugin: openstack
clouds_yaml_path: private/openstack/clouds.yml
```

##### EXPECTED RESULTS
Generally, I would expect one of those 2 files to be successfully parsed.

Specifically, right now, I would like the 1st of those 2 to be parsed, because that is the only format that works in Ansible 2.8.


##### ACTUAL RESULTS
For inventory file (1)

```
$ ansible-inventory -i private/openstack/openstack.yml --list --export
 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with auto plugin: Invalid type for configuration
option plugin_type: inventory plugin: openstack setting: clouds_yaml_path : Invalid type provided for "string": ['private/openstack/clouds.yml']

 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with yaml plugin: Plugin configuration YAML file,
not YAML inventory

 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with ini plugin: Invalid host pattern 'plugin:'
supplied, ending in ':' is not allowed, this character is reserved to provide a port.

 [WARNING]: Unable to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml as an inventory source

 [WARNING]: No inventory was parsed, only implicit localhost is available

{
    "_meta": {
        "hostvars": {}
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    }
}

```

This case errors because of validation introduced in https://github.com/ansible/ansible/pull/58530, ping @bcoca 

From verbose output:

```
 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with auto plugin: Invalid type for configuration
option plugin_type: inventory plugin: openstack setting: clouds_yaml_path : Invalid type provided for "string": ['private/openstack/clouds.yml']

  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/inventory/manager.py", line 277, in parse_source
    plugin.parse(self._inventory, self._loader, source, cache=cache)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/auto.py", line 58, in parse
    plugin.parse(inventory, loader, path, cache=cache)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/openstack.py", line 141, in parse
    self._config_data = self._read_config_data(path)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/__init__.py", line 229, in _read_config_data
    self.set_options(direct=config)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/__init__.py", line 75, in set_options
    self._options = C.config.get_plugin_options(get_plugin_class(self), self._load_name, keys=task_keys, variables=var_options, direct=direct)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/config/manager.py", line 348, in get_plugin_options
    options[option] = self.get_config_value(option, plugin_type=plugin_type, plugin_name=name, keys=keys, variables=variables, direct=direct)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/config/manager.py", line 409, in get_config_value
    keys=keys, variables=variables, direct=direct)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/config/manager.py", line 502, in get_config_value_and_origin
    (to_native(_get_entry(plugin_type, plugin_name, config)), to_native(e)))
```

----

For inventory file (2)

```
$ ansible-inventory -i private/openstack/openstack.yml --list --export
 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with auto plugin: must be str, not list

 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with yaml plugin: Plugin configuration YAML file,
not YAML inventory

 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with ini plugin: Invalid host pattern 'plugin:'
supplied, ending in ':' is not allowed, this character is reserved to provide a port.

 [WARNING]: Unable to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml as an inventory source

 [WARNING]: No inventory was parsed, only implicit localhost is available

{
    "_meta": {
        "hostvars": {}
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    }
}
```

This fails because the openstack inventory plugin code depends on the input being a list. See:

https://github.com/ansible/ansible/blob/333953117c9e2ff62ebccdbcbb5947271b88ce73/lib/ansible/plugins/inventory/openstack.py#L178-L179

I can confirm that `client_config.CONFIG_FILES` is a list. Thus, the source of this error is trying to add the input value to this list. That requires both to be a list, thus, the error.

From verbose output:

```
 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with auto plugin: must be str, not list

  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/inventory/manager.py", line 268, in parse_source
    plugin.parse(self._inventory, self._loader, source, cache=cache)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/auto.py", line 58, in parse
    plugin.parse(inventory, loader, path, cache=cache)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/openstack.py", line 183, in parse
    client_config.CONFIG_FILES)

```
groups = []
        region = server_vars['region']
        cloud = server_vars['cloud']
        metadata = server_vars.get('metadata', {})
        
        groups.append(cloud)
        
        if region:
            groups.append(region)
        
        groups.append("%s_%s" % (cloud, region))
        
        if 'group' in metadata:
            groups.append(metadata['group'])
        for extra_group in metadata.get('groups', '').split(','):
            if extra_group:
                groups.append(extra_group.strip())
        groups.append('instance-%s' % server_vars['id'])
        if namegroup:
            groups.append(server_vars['name'])