summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Packages
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-14 11:15:49 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-14 11:57:06 -0500
commit15e86f26c8781c2a61d241de374e2724761242e1 (patch)
treeea4195b54dd931f51b46bcfb14743ec8de24c224 /src/lib/Bcfg2/Server/Plugins/Packages
parent5c0e7644cb666ac499718614f011863e6d84f70b (diff)
downloadbcfg2-15e86f26c8781c2a61d241de374e2724761242e1.tar.gz
bcfg2-15e86f26c8781c2a61d241de374e2724761242e1.tar.bz2
bcfg2-15e86f26c8781c2a61d241de374e2724761242e1.zip
only try to find bcfg2-yum-helper in $PATH once
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Yum.py31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
index a7129fc7a..220146100 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
@@ -102,6 +102,9 @@ FL = '{http://linux.duke.edu/metadata/filelists}'
PULPSERVER = None
PULPCONFIG = None
+#: The path to bcfg2-yum-helper
+HELPER = None
+
def _setup_pulp(setup):
""" Connect to a Pulp server and pass authentication credentials.
@@ -308,8 +311,6 @@ class YumCollection(Collection):
(certdir, err))
self.pulp_cert_set = PulpCertificateSet(certdir, self.fam)
- self._helper = None
-
@property
def __package_groups__(self):
""" YumCollections support package groups only if
@@ -324,20 +325,20 @@ class YumCollection(Collection):
a call to it; I wish there was a way to do this without
forking, but apparently not); finally we check in /usr/sbin,
the default location. """
- try:
- return self.setup.cfp.get("packages:yum", "helper")
- except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):
- pass
-
- if not self._helper:
- # first see if bcfg2-yum-helper is in PATH
+ global HELPER
+ if not HELPER:
try:
- Popen(['bcfg2-yum-helper'],
- stdin=PIPE, stdout=PIPE, stderr=PIPE).wait()
- self._helper = 'bcfg2-yum-helper'
- except OSError:
- self._helper = "/usr/sbin/bcfg2-yum-helper"
- return self._helper
+ HELPER = self.setup.cfp.get("packages:yum", "helper")
+ except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):
+ # first see if bcfg2-yum-helper is in PATH
+ try:
+ self.debug_log("Checking for bcfg2-yum-helper in $PATH")
+ Popen(['bcfg2-yum-helper'],
+ stdin=PIPE, stdout=PIPE, stderr=PIPE).wait()
+ HELPER = 'bcfg2-yum-helper'
+ except OSError:
+ HELPER = "/usr/sbin/bcfg2-yum-helper"
+ return HELPER
@property
def use_yum(self):