summaryrefslogtreecommitdiff
path: root/lib/ansible
diff options
context:
space:
mode:
authorSloane Hertel <shertel@redhat.com>2018-10-11 12:06:52 -0400
committerAlicia Cozine <879121+acozine@users.noreply.github.com>2018-10-11 11:06:52 -0500
commitf3d5ebb355dc6a85ebb0978c7872512de56c85b0 (patch)
tree97da8a7312d0c4191c99b7894ce7167992f6858f /lib/ansible
parente3882ad6f69667ab0f4b287388d029a22b6505d5 (diff)
downloadansible-f3d5ebb355dc6a85ebb0978c7872512de56c85b0.tar.gz
add more consistent extension matching for inventory plugins (#46786)
* Add consistent extension matching for inventory plugins that support YAML configuration files * Document extension matching expectations
Diffstat (limited to 'lib/ansible')
-rw-r--r--lib/ansible/plugins/inventory/aws_ec2.py6
-rw-r--r--lib/ansible/plugins/inventory/aws_rds.py4
-rw-r--r--lib/ansible/plugins/inventory/azure_rm.py6
-rw-r--r--lib/ansible/plugins/inventory/foreman.py2
-rw-r--r--lib/ansible/plugins/inventory/gcp_compute.py9
-rw-r--r--lib/ansible/plugins/inventory/linode.py4
-rw-r--r--lib/ansible/plugins/inventory/tower.py4
-rw-r--r--lib/ansible/plugins/inventory/virtualbox.py4
8 files changed, 19 insertions, 20 deletions
diff --git a/lib/ansible/plugins/inventory/aws_ec2.py b/lib/ansible/plugins/inventory/aws_ec2.py
index bf2d3188b7..95ca539ed2 100644
--- a/lib/ansible/plugins/inventory/aws_ec2.py
+++ b/lib/ansible/plugins/inventory/aws_ec2.py
@@ -16,7 +16,7 @@ DOCUMENTATION = '''
- constructed
description:
- Get inventory hosts from Amazon Web Services EC2.
- - Uses a <name>.aws_ec2.yaml (or <name>.aws_ec2.yml) YAML configuration file.
+ - Uses a YAML configuration file that ends with aws_ec2.(yml|yaml).
options:
plugin:
description: token that ensures this is a source file for the 'aws_ec2' plugin.
@@ -509,9 +509,9 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
:return the contents of the config file
'''
if super(InventoryModule, self).verify_file(path):
- if path.endswith('.aws_ec2.yml') or path.endswith('.aws_ec2.yaml'):
+ if path.endswith(('aws_ec2.yml', 'aws_ec2.yaml')):
return True
- display.debug("aws_ec2 inventory filename must end with '*.aws_ec2.yml' or '*.aws_ec2.yaml'")
+ display.debug("aws_ec2 inventory filename must end with 'aws_ec2.yml' or 'aws_ec2.yaml'")
return False
def _get_query_options(self, config_data):
diff --git a/lib/ansible/plugins/inventory/aws_rds.py b/lib/ansible/plugins/inventory/aws_rds.py
index 4586716415..2ce00d0c10 100644
--- a/lib/ansible/plugins/inventory/aws_rds.py
+++ b/lib/ansible/plugins/inventory/aws_rds.py
@@ -10,7 +10,7 @@ DOCUMENTATION = '''
short_description: rds instance source
description:
- Get instances and clusters from Amazon Web Services RDS.
- - Uses a <name>.aws_rds.yaml (or <name>.aws_rds.yml) YAML configuration file.
+ - Uses a YAML configuration file that ends with aws_rds.(yml|yaml).
options:
boto_profile:
description: The boto profile to use. The plugin will look for an instance role if no credentials
@@ -301,7 +301,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
:return the contents of the config file
'''
if super(InventoryModule, self).verify_file(path):
- if path.endswith('.aws_rds.yml') or path.endswith('.aws_rds.yaml'):
+ if path.endswith(('aws_rds.yml', 'aws_rds.yaml')):
return True
return False
diff --git a/lib/ansible/plugins/inventory/azure_rm.py b/lib/ansible/plugins/inventory/azure_rm.py
index e1c4846f0c..edc4017451 100644
--- a/lib/ansible/plugins/inventory/azure_rm.py
+++ b/lib/ansible/plugins/inventory/azure_rm.py
@@ -12,7 +12,7 @@ DOCUMENTATION = r'''
- azure
description:
- Query VM details from Azure Resource Manager
- - Requires a YAML configuration file whose name ends with '.azure_rm.yaml'
+ - Requires a YAML configuration file whose name ends with 'azure_rm.(yml|yaml)'
- By default, sets C(ansible_host) to the first public IP address found (preferring the primary NIC). If no
public IPs are found, the first private IP (also preferring the primary NIC). The default may be overridden
via C(hostvar_expressions); see examples.
@@ -216,9 +216,9 @@ class InventoryModule(BaseInventoryPlugin, Constructable):
:return the contents of the config file
'''
if super(InventoryModule, self).verify_file(path):
- if re.match(r'.+\.azure_rm\.y(a)?ml$', path):
+ if re.match(r'.{0,}azure_rm\.y(a)?ml$', path):
return True
- # display.debug("azure_rm inventory filename must match '*.azure_rm.yml' or '*.azure_rm.yaml'")
+ # display.debug("azure_rm inventory filename must end with 'azure_rm.yml' or 'azure_rm.yaml'")
return False
def parse(self, inventory, loader, path, cache=True):
diff --git a/lib/ansible/plugins/inventory/foreman.py b/lib/ansible/plugins/inventory/foreman.py
index e18bc9bbf8..b4f3ae1e5c 100644
--- a/lib/ansible/plugins/inventory/foreman.py
+++ b/lib/ansible/plugins/inventory/foreman.py
@@ -100,7 +100,7 @@ class InventoryModule(BaseInventoryPlugin, Cacheable):
valid = False
if super(InventoryModule, self).verify_file(path):
- if path.endswith('.foreman.yaml') or path.endswith('.foreman.yml'):
+ if path.endswith(('foreman.yaml', 'foreman.yml')):
valid = True
return valid
diff --git a/lib/ansible/plugins/inventory/gcp_compute.py b/lib/ansible/plugins/inventory/gcp_compute.py
index 2b35c0c2c1..a1180a039c 100644
--- a/lib/ansible/plugins/inventory/gcp_compute.py
+++ b/lib/ansible/plugins/inventory/gcp_compute.py
@@ -16,7 +16,7 @@ DOCUMENTATION = '''
- inventory_cache
description:
- Get inventory hosts from Google Cloud Platform GCE.
- - Uses a <name>.gcp.yaml (or <name>.gcp.yml) YAML configuration file.
+ - Uses a YAML configuration file that ends with gcp_compute.(yml|yaml) or gcp.(yml|yaml).
options:
plugin:
description: token that ensures this is a source file for the 'gcp_compute' plugin.
@@ -120,9 +120,9 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
:return the contents of the config file
'''
if super(InventoryModule, self).verify_file(path):
- if path.endswith('.gcp.yml') or path.endswith('.gcp.yaml'):
+ if path.endswith(('gcp.yml', 'gcp.yaml')):
return True
- elif path.endswith('.gcp_compute.yml') or path.endswith('.gcp_compute.yaml'):
+ elif path.endswith(('gcp_compute.yml', 'gcp_compute.yaml')):
return True
return False
@@ -317,8 +317,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
super(InventoryModule, self).parse(inventory, loader, path)
config_data = {}
- if self.verify_file(path):
- config_data = self._read_config_data(path)
+ config_data = self._read_config_data(path)
# get user specifications
if 'zones' in config_data:
diff --git a/lib/ansible/plugins/inventory/linode.py b/lib/ansible/plugins/inventory/linode.py
index 7042263290..b859b78fbc 100644
--- a/lib/ansible/plugins/inventory/linode.py
+++ b/lib/ansible/plugins/inventory/linode.py
@@ -16,7 +16,7 @@ DOCUMENTATION = r'''
- linode_api4 >= 2.0.0
description:
- Reads inventories from the Linode API v4.
- - Uses a C(<name>.linode.yaml) (or C(<name>.linode.yml)) YAML configuration file.
+ - Uses a YAML configuration file that ends with linode.(yml|yaml).
- Linode labels are used by default as the hostnames.
- The inventory groups are built from groups and not tags.
options:
@@ -186,7 +186,7 @@ class InventoryModule(BaseInventoryPlugin):
def verify_file(self, path):
"""Verify the Linode configuration file."""
if super(InventoryModule, self).verify_file(path):
- endings = ('.linode.yaml', '.linode.yml')
+ endings = ('linode.yaml', 'linode.yml')
if any((path.endswith(ending) for ending in endings)):
return True
return False
diff --git a/lib/ansible/plugins/inventory/tower.py b/lib/ansible/plugins/inventory/tower.py
index 38f04ac50f..79b2776a4d 100644
--- a/lib/ansible/plugins/inventory/tower.py
+++ b/lib/ansible/plugins/inventory/tower.py
@@ -16,7 +16,7 @@ DOCUMENTATION = '''
description:
- Reads inventories from Ansible Tower.
- Supports reading configuration from both YAML config file and environment variables.
- - If reading from the YAML file, the file name must end with tower_inventory.(yml|yaml),
+ - If reading from the YAML file, the file name must end with tower.(yml|yaml) or tower_inventory.(yml|yaml),
the path in the command would be /path/to/tower_inventory.(yml|yaml). If some arguments in the config file
are missing, this plugin will try to fill in missing arguments by reading from environment variables.
- If reading configurations from environment variables, the path in the command must be @tower_inventory.
@@ -143,7 +143,7 @@ class InventoryModule(BaseInventoryPlugin):
self.no_config_file_supplied = True
return True
elif super(InventoryModule, self).verify_file(path):
- return path.endswith('tower_inventory.yml') or path.endswith('tower_inventory.yaml')
+ return path.endswith(('tower_inventory.yml', 'tower_inventory.yaml', 'tower.yml', 'tower.yaml'))
else:
return False
diff --git a/lib/ansible/plugins/inventory/virtualbox.py b/lib/ansible/plugins/inventory/virtualbox.py
index acbb55eb17..e66f280767 100644
--- a/lib/ansible/plugins/inventory/virtualbox.py
+++ b/lib/ansible/plugins/inventory/virtualbox.py
@@ -10,7 +10,7 @@ DOCUMENTATION = '''
short_description: virtualbox inventory source
description:
- Get inventory hosts from the local virtualbox installation.
- - Uses a <name>.vbox.yaml (or .vbox.yml) YAML configuration file.
+ - Uses a YAML configuration file that ends with virtualbox.(yml|yaml) or vbox.(yml|yaml).
- The inventory_hostname is always the 'Name' of the virtualbox instance.
extends_documentation_fragment:
- constructed
@@ -210,7 +210,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
valid = False
if super(InventoryModule, self).verify_file(path):
- if path.endswith(('.vbox.yaml', '.vbox.yml')):
+ if path.endswith(('virtualbox.yaml', 'virtualbox.yml', 'vbox.yaml', 'vbox.yml')):
valid = True
return valid