Fix openstack inventory plugin for API changes (#43580)

The inventory plugin api grew a self.cache that wasn't there when we
first wrote it. There's also a need to pull in the documentation
fragments so that we have the cache parameters.
This commit is contained in:
Monty Taylor 2018-08-17 06:03:08 -05:00 committed by David Shrewsbury
parent 39e2bd01a6
commit e89e4c991c

View file

@ -17,6 +17,9 @@ DOCUMENTATION = '''
short_description: OpenStack inventory source short_description: OpenStack inventory source
requirements: requirements:
- openstacksdk - openstacksdk
extends_documentation_fragment:
- inventory_cache
- constructed
description: description:
- Get inventory hosts from OpenStack clouds - Get inventory hosts from OpenStack clouds
- Uses openstack.(yml|yaml) YAML configuration file to configure the inventory plugin - Uses openstack.(yml|yaml) YAML configuration file to configure the inventory plugin
@ -152,10 +155,12 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
if 'clouds' in self._config_data: if 'clouds' in self._config_data:
self._config_data = {} self._config_data = {}
if cache:
cache = self.get_option('cache')
source_data = None source_data = None
if cache and cache_key in self._cache: if cache:
try: try:
source_data = self._cache[cache_key] source_data = self.cache.get(cache_key)
except KeyError: except KeyError:
pass pass
@ -191,7 +196,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
source_data = cloud_inventory.list_hosts( source_data = cloud_inventory.list_hosts(
expand=expand_hostvars, fail_on_cloud_config=fail_on_errors) expand=expand_hostvars, fail_on_cloud_config=fail_on_errors)
self._cache[cache_key] = source_data self.cache.set(cache_key, source_data)
self._populate_from_source(source_data) self._populate_from_source(source_data)