From 4060d4cd24ac0fbcf83c1521553921d76c070a57 Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 21 Sep 2018 17:31:39 +0200 Subject: [PATCH] Do not load pip state if there is no 3rd party dependencies Safe import 3rd party dependency --- salt/modules/pip.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/salt/modules/pip.py b/salt/modules/pip.py index c4de0c2984..a60bdca0bb 100644 --- a/salt/modules/pip.py +++ b/salt/modules/pip.py @@ -96,6 +96,12 @@ import salt.utils.url import salt.utils.versions from salt.exceptions import CommandExecutionError, CommandNotFoundError +try: + import pkg_resources +except ImportError: + pkg_resources = None + + # This needs to be named logger so we don't shadow it in pip.install logger = logging.getLogger(__name__) # pylint: disable=invalid-name @@ -114,7 +120,12 @@ def __virtual__(): entire filesystem. If it's not installed in a conventional location, the user is required to provide the location of pip each time it is used. """ - return "pip" + if pkg_resources is None: + ret = False, 'Package dependency "pkg_resource" is missing' + else: + ret = "pip" + + return ret def _pip_bin_env(cwd, bin_env): -- 2.39.2