1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

[PR #8133/b389f863 backport][stable-7] Add descriptive error message to Linode inventory plugin file checkin… (#8143)

Add descriptive error message to Linode inventory plugin file checkin… (#8133)

* Add descriptive error message to Linode inventory plugin file checking, tests

* add changelog fragment

* Adjust changelog fragment.

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit b389f8637f)

Co-authored-by: Gideon <soccerman.gid@gmail.com>
This commit is contained in:
patchback[bot] 2024-03-24 22:51:41 +01:00 committed by GitHub
parent baeae01797
commit 8927dc777a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 37 additions and 7 deletions

View file

@ -0,0 +1,3 @@
bugfixes:
- linode inventory plugin - add descriptive error message for linode inventory plugin (https://github.com/ansible-collections/community.general/pull/8133).

View file

@ -272,12 +272,25 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
strict=strict)
def verify_file(self, path):
"""Verify the Linode configuration file."""
"""Verify the Linode configuration file.
Return true/false if the config-file is valid for this plugin
Args:
str(path): path to the config
Kwargs:
None
Raises:
None
Returns:
bool(valid): is valid config file"""
valid = False
if super(InventoryModule, self).verify_file(path):
endings = ('linode.yaml', 'linode.yml')
if any((path.endswith(ending) for ending in endings)):
return True
return False
if path.endswith(("linode.yaml", "linode.yml")):
valid = True
else:
self.display.vvv('Inventory source not ending in "linode.yaml" or "linode.yml"')
return valid
def parse(self, inventory, loader, path, cache=True):
"""Dynamically parse Linode the cloud inventory."""

View file

@ -37,11 +37,25 @@ def test_missing_access_token_lookup(inventory):
assert 'Could not retrieve Linode access token' in error_message
def test_verify_file(tmp_path, inventory):
def test_verify_file_yml(tmp_path, inventory):
file = tmp_path / "foobar.linode.yml"
file.touch()
assert inventory.verify_file(str(file)) is True
def test_verify_file_yaml(tmp_path, inventory):
file = tmp_path / "foobar.linode.yaml"
file.touch()
assert inventory.verify_file(str(file)) is True
def test_verify_file_bad_config_yml(inventory):
assert inventory.verify_file("foobar.linode.yml") is False
def test_verify_file_bad_config_yaml(inventory):
assert inventory.verify_file("foobar.linode.yaml") is False
def test_verify_file_bad_config(inventory):
assert inventory.verify_file('foobar.linode.yml') is False
assert inventory.verify_file("foobar.wrongcloud.yml") is False