summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/Bcfg2/Client/Client.py3
-rw-r--r--src/lib/Bcfg2/Client/Tools/YUM.py10
-rw-r--r--src/lib/Bcfg2/Options.py13
-rw-r--r--src/lib/Bcfg2/Proxy.py11
4 files changed, 32 insertions, 5 deletions
diff --git a/src/lib/Bcfg2/Client/Client.py b/src/lib/Bcfg2/Client/Client.py
index 14fe6768a..090921ab2 100644
--- a/src/lib/Bcfg2/Client/Client.py
+++ b/src/lib/Bcfg2/Client/Client.py
@@ -139,7 +139,8 @@ class Client(object):
allowedServerCNs=self.setup['serverCN'],
timeout=self.setup['timeout'],
retries=int(self.setup['retries']),
- delay=int(self.setup['retry_delay']))
+ delay=int(self.setup['retry_delay']),
+ protocol=self.setup['protocol'])
return self._proxy
def run_probes(self, times=None):
diff --git a/src/lib/Bcfg2/Client/Tools/YUM.py b/src/lib/Bcfg2/Client/Tools/YUM.py
index 15ae5ef8b..a584fec86 100644
--- a/src/lib/Bcfg2/Client/Tools/YUM.py
+++ b/src/lib/Bcfg2/Client/Tools/YUM.py
@@ -191,6 +191,10 @@ class YUM(Bcfg2.Client.Tools.PkgTool):
self.logger.debug("Yum: Reinstall on verify fail: %s" % self.do_reinst)
self.logger.debug("Yum: installonlypkgs: %s" % self.installonlypkgs)
self.logger.debug("Yum: verify_flags: %s" % self.verify_flags)
+ self.logger.debug("Yum: disabled_plugins: %s" %
+ self.setup["yum_disabled_plugins"])
+ self.logger.debug("Yum: enabled_plugins: %s" %
+ self.setup["yum_enabled_plugins"])
def _loadYumBase(self, setup=None, logger=None):
''' this may be called before PkgTool.__init__() is called on
@@ -216,6 +220,12 @@ class YUM(Bcfg2.Client.Tools.PkgTool):
else:
debuglevel = 0
+ if setup['yum_disabled_plugins']:
+ rv.preconf.disabled_plugins = setup['yum_disabled_plugins']
+
+ if setup['yum_enabled_plugins']:
+ rv.preconf.enabled_plugins = setup['yum_enabled_plugins']
+
# pylint: disable=E1121,W0212
try:
rv.preconf.debuglevel = debuglevel
diff --git a/src/lib/Bcfg2/Options.py b/src/lib/Bcfg2/Options.py
index 206c63d4f..9752ab758 100644
--- a/src/lib/Bcfg2/Options.py
+++ b/src/lib/Bcfg2/Options.py
@@ -1099,6 +1099,16 @@ CLIENT_YUM_VERIFY_FLAGS = \
cf=('YUM', 'verify_flags'),
deprecated_cf=('YUMng', 'verify_flags'),
cook=list_split)
+CLIENT_YUM_DISABLED_PLUGINS = \
+ Option("YUM disabled plugins",
+ default=[],
+ cf=('YUM', 'disabled_plugins'),
+ cook=list_split)
+CLIENT_YUM_ENABLED_PLUGINS = \
+ Option("YUM enabled plugins",
+ default=[],
+ cf=('YUM', 'enabled_plugins'),
+ cook=list_split)
CLIENT_POSIX_UID_WHITELIST = \
Option("UID ranges the POSIXUsers tool will manage",
default=[],
@@ -1280,6 +1290,8 @@ DRIVER_OPTIONS = \
yum_version_fail_action=CLIENT_YUM_VERSION_FAIL_ACTION,
yum_verify_fail_action=CLIENT_YUM_VERIFY_FAIL_ACTION,
yum_verify_flags=CLIENT_YUM_VERIFY_FLAGS,
+ yum_disabled_plugins=CLIENT_YUM_DISABLED_PLUGINS,
+ yum_enabled_plugins=CLIENT_YUM_ENABLED_PLUGINS,
posix_uid_whitelist=CLIENT_POSIX_UID_WHITELIST,
posix_gid_whitelist=CLIENT_POSIX_GID_WHITELIST,
posix_uid_blacklist=CLIENT_POSIX_UID_BLACKLIST,
@@ -1292,6 +1304,7 @@ CLIENT_COMMON_OPTIONS = \
drivers=CLIENT_DRIVERS,
dryrun=CLIENT_DRYRUN,
paranoid=CLIENT_PARANOID,
+ protocol=SERVER_PROTOCOL,
ppath=PARANOID_PATH,
max_copies=PARANOID_MAX_COPIES,
bundle=CLIENT_BUNDLE,
diff --git a/src/lib/Bcfg2/Proxy.py b/src/lib/Bcfg2/Proxy.py
index 34080da6b..736325eab 100644
--- a/src/lib/Bcfg2/Proxy.py
+++ b/src/lib/Bcfg2/Proxy.py
@@ -286,7 +286,7 @@ class SSLHTTPConnection(httplib.HTTPConnection):
class XMLRPCTransport(xmlrpclib.Transport):
- def __init__(self, key=None, cert=None, ca=None,
+ def __init__(self, key=None, cert=None, ca=None, protocol=None,
scns=None, use_datetime=0, timeout=90):
if hasattr(xmlrpclib.Transport, '__init__'):
xmlrpclib.Transport.__init__(self, use_datetime)
@@ -295,6 +295,7 @@ class XMLRPCTransport(xmlrpclib.Transport):
self.ca = ca
self.scns = scns
self.timeout = timeout
+ self.protocol = protocol
def make_connection(self, host):
host, self._extra_headers = self.get_host_info(host)[0:2]
@@ -303,7 +304,8 @@ class XMLRPCTransport(xmlrpclib.Transport):
cert=self.cert,
ca=self.ca,
scns=self.scns,
- timeout=self.timeout)
+ timeout=self.timeout,
+ protocol=self.protocol)
def request(self, host, handler, request_body, verbose=0):
"""Send request to server and return response."""
@@ -343,7 +345,8 @@ class XMLRPCTransport(xmlrpclib.Transport):
def ComponentProxy(url, user=None, password=None, key=None, cert=None, ca=None,
- allowedServerCNs=None, timeout=90, retries=3, delay=1):
+ allowedServerCNs=None, timeout=90, retries=3, delay=1,
+ protocol=None):
"""Constructs proxies to components.
@@ -362,6 +365,6 @@ def ComponentProxy(url, user=None, password=None, key=None, cert=None, ca=None,
quote_plus(password, ''), path)
else:
newurl = url
- ssl_trans = XMLRPCTransport(key, cert, ca,
+ ssl_trans = XMLRPCTransport(key, cert, ca, protocol,
allowedServerCNs, timeout=float(timeout))
return xmlrpclib.ServerProxy(newurl, allow_none=True, transport=ssl_trans)