From 195a7a8b49a6198b0023002e49440921dce2e052 Mon Sep 17 00:00:00 2001 From: "Sean M. Collins" Date: Wed, 14 Dec 2022 14:00:00 -0500 Subject: [PATCH] Ensure that packaging is installed (#900) When the ImportError happens, fail and raise the error that we were not able to import Version, instead of dying later on with a 'Version' is not defined error This is related to #899 --- plugins/module_utils/netbox_dcim.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/module_utils/netbox_dcim.py b/plugins/module_utils/netbox_dcim.py index 1aa3ccce0..d61eda7b2 100644 --- a/plugins/module_utils/netbox_dcim.py +++ b/plugins/module_utils/netbox_dcim.py @@ -6,6 +6,7 @@ __metaclass__ = type +from ansible.module_utils.basic import missing_required_lib from ansible_collections.netbox.netbox.plugins.module_utils.netbox_utils import ( NetboxModule, ENDPOINT_NAME_MAPPING, @@ -51,14 +52,19 @@ try: from packaging.version import Version + + HAS_PACKAGING = True except ImportError as imp_exc: PACKAGING_IMPORT_ERROR = imp_exc -else: - PACKAGING_IMPORT_ERROR = None + HAS_PACKAGING = False class NetboxDcimModule(NetboxModule): def __init__(self, module, endpoint): + if not HAS_PACKAGING: + self.module.fail_json( + msg=missing_required_lib("packaging"), exception=PACKAGING_IMPORT_ERROR + ) super().__init__(module, endpoint) def run(self):