summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/collections/collections/ansible_collections/testns/content_adj/plugins/inventory/statichost.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/collections/collections/ansible_collections/testns/content_adj/plugins/inventory/statichost.py')
-rw-r--r--test/integration/targets/collections/collections/ansible_collections/testns/content_adj/plugins/inventory/statichost.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/test/integration/targets/collections/collections/ansible_collections/testns/content_adj/plugins/inventory/statichost.py b/test/integration/targets/collections/collections/ansible_collections/testns/content_adj/plugins/inventory/statichost.py
new file mode 100644
index 0000000..ae6941f
--- /dev/null
+++ b/test/integration/targets/collections/collections/ansible_collections/testns/content_adj/plugins/inventory/statichost.py
@@ -0,0 +1,68 @@
+# Copyright (c) 2018 Ansible Project
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+DOCUMENTATION = '''
+ inventory: statichost
+ short_description: Add a single host
+ description: Add a single host
+ extends_documentation_fragment:
+ - inventory_cache
+ options:
+ plugin:
+ description: plugin name (must be statichost)
+ required: true
+ hostname:
+ description: Toggle display of stderr even when script was successful
+ required: True
+'''
+
+from ansible.errors import AnsibleParserError
+from ansible.plugins.inventory import BaseInventoryPlugin, Cacheable
+
+
+class InventoryModule(BaseInventoryPlugin, Cacheable):
+
+ NAME = 'testns.content_adj.statichost'
+
+ def __init__(self):
+
+ super(InventoryModule, self).__init__()
+
+ self._hosts = set()
+
+ def verify_file(self, path):
+ ''' Verify if file is usable by this plugin, base does minimal accessibility check '''
+
+ if not path.endswith('.statichost.yml') and not path.endswith('.statichost.yaml'):
+ return False
+ return super(InventoryModule, self).verify_file(path)
+
+ def parse(self, inventory, loader, path, cache=None):
+
+ super(InventoryModule, self).parse(inventory, loader, path)
+
+ # Initialize and validate options
+ self._read_config_data(path)
+
+ # Exercise cache
+ cache_key = self.get_cache_key(path)
+ attempt_to_read_cache = self.get_option('cache') and cache
+ cache_needs_update = self.get_option('cache') and not cache
+ if attempt_to_read_cache:
+ try:
+ host_to_add = self._cache[cache_key]
+ except KeyError:
+ cache_needs_update = True
+ if not attempt_to_read_cache or cache_needs_update:
+ host_to_add = self.get_option('hostname')
+
+ # this is where the magic happens
+ self.inventory.add_host(host_to_add, 'all')
+ self._cache[cache_key] = host_to_add
+
+ # self.inventory.add_group()...
+ # self.inventory.add_child()...
+ # self.inventory.set_variable()..