Skip to content

Commit c65e32c

Browse files
authored
Fix load_provider returning None on AnsibleFallbackNotFound (#557) (#558)
1 parent 21c7afa commit c65e32c

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
bugfixes:
2+
- "Ensure that all connection plugin options that should be strings are actually strings (https://github.com/ansible-collections/ansible.netcommon/pull/549)."

plugins/module_utils/network/common/utils.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -468,12 +468,12 @@ def load_provider(spec, args):
468468
provider = args.get("provider") or {}
469469
for key, value in iteritems(spec):
470470
if key not in provider:
471-
if "fallback" in value:
471+
try:
472+
# Get fallback if defined, and valid
472473
provider[key] = _fallback(value["fallback"])
473-
elif "default" in value:
474-
provider[key] = value["default"]
475-
else:
476-
provider[key] = None
474+
except (basic.AnsibleFallbackNotFound, KeyError):
475+
# Get default if defined, otherwise set to None
476+
provider[key] = value.get("default")
477477
if "authorize" in provider:
478478
# Coerce authorize to provider if a string has somehow snuck in.
479479
provider["authorize"] = boolean(provider["authorize"] or False)
@@ -491,10 +491,8 @@ def _fallback(fallback):
491491
kwargs = item
492492
else:
493493
args = item
494-
try:
495-
return strategy(*args, **kwargs)
496-
except basic.AnsibleFallbackNotFound:
497-
pass
494+
495+
return strategy(*args, **kwargs)
498496

499497

500498
def generate_dict(spec):

0 commit comments

Comments
 (0)