##### SUMMARY
<!--- Explain the problem briefly below -->

The inventory cache is not flushed when using `--flush-cache`

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME

cli and/or inventory manager

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.16
  config file = /home/ioguix/git/support/ansible/ansible.cfg
  configured module search path = ['/home/ioguix/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
DEFAULT_HOST_LIST(/tmp/prov/ansible/ansible.cfg) = ['/tmp/prov/ansible/bug_report.yml']
DEFAULT_INVENTORY_PLUGIN_PATH(/tmp/prov/ansible/ansible.cfg) = ['/tmp/prov/ansible']
INVENTORY_CACHE_ENABLED(/tmp/prov/ansible/ansible.cfg) = True
INVENTORY_CACHE_PLUGIN(/tmp/prov/ansible/ansible.cfg) = jsonfile
INVENTORY_CACHE_PLUGIN_CONNECTION(/tmp/prov/ansible/ansible.cfg) = .
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->

Debian 10

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

<!--- Paste example playbooks or commands between quotes below -->
ansible.cfg:
```yaml
[defaults]
inventory_plugins = .
inventory = bug_report.yml

[inventory]
cache=True
cache_plugin=jsonfile
cache_connection=.
```

Dummy inventory plugin `bug_report.py` displaying if the inventory manager gave `cache=True` or not:
```python
from ansible.plugins.inventory import BaseInventoryPlugin, Cacheable

class InventoryModule(BaseInventoryPlugin, Cacheable):
    def parse(self, inventory, loader, path, cache=True):
        if cache:
            self.display.v("Using data from cache")
        else:
            self.display.v("Updating cache")
```

Inventory yaml file `bug_report.yml`:
```yml
---
plugin: bug_report
```

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->

The doc state in https://docs.ansible.com/ansible/latest/dev_guide/developing_inventory.html#inventory-cache:
> This value comes from the inventory manager and indicates whether the inventory is being refreshed (such as via --flush-cache or the meta task refresh_inventory).

From previous minimal test case, as far as I understand the doc and comments in other inventory plugins, the first call, using `--flush-cache`, should output `Updating cache`. The second one should output `Using data from cache`:

```console
$ ansible-playbook -v --list-hosts --flush-cache playbook-dummy.yml
Using /tmp/prov/ansible/ansible.cfg as config file
Updating cache
[...]

$ ansible-playbook -v --list-hosts playbook-dummy.yml
Using /tmp/prov/ansible/ansible.cfg as config file
Using data from cache
[...]
```

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->

No matter if using `--flush-cache` or not, the inventory manager is setting `cache=True` and the plugin always shows `Using data from cache`:

```console
$ ansible-playbook -v --list-hosts --flush-cache playbook-dummy.yml
Using /tmp/prov/ansible/ansible.cfg as config file
Using data from cache
[...]

$ ansible-playbook -v --list-hosts playbook-dummy.yml
Using /tmp/prov/ansible/ansible.cfg as config file
Using data from cache
[...]
```

Looking at source code in current devel branch, it seems `--flush-cache` only flush facts and ignore inventory: https://github.com/ansible/ansible/blob/devel/lib/ansible/cli/playbook.py#L208

display.debug(msg)
            if C.HOST_PATTERN_MISMATCH == 'warning':
                display.warning(msg)
            elif C.HOST_PATTERN_MISMATCH == 'error':
                raise AnsibleError(msg)
            
        return results
    def list_hosts(self, pattern="all"):
        """ return a list of hostnames for a pattern """
        
        result = self.get_hosts(pattern)
        
        if len(result) == 0 and pattern in C.LOCALHOST:
            result = [pattern]
        return result
    def list_groups(self):
        
        return sorted(self._inventory.groups.keys())
    def restrict_to_hosts(self, restriction):
        """
        Restrict list operations to the hosts given in restriction.  This is used
        to batch serial operations in main playbook code, don't use this for other
        reasons.
        """
        if restriction is None:
            return
        elif not isinstance(restriction, list):
            restriction = [restriction]
        self._restriction = set(to_text(h.name) for h in restriction)
    def subset(self, subset_pattern):