diff --git a/actions/packages.py b/actions/packages.py index d4ee606..caf042c 100644 --- a/actions/packages.py +++ b/actions/packages.py @@ -61,6 +61,7 @@ class YumAction(yum.YumBase): self.doConfigSetup(debuglevel=self.cfg["debug"]) self.cache_only = None + self.doLock() self.doTsSetup() self.doRpmDBSetup() self.doRepoSetup() diff --git a/rhnplugin.py b/rhnplugin.py index 8f1cba0..d238301 100644 --- a/rhnplugin.py +++ b/rhnplugin.py @@ -163,7 +163,6 @@ def init_hook(conduit): repos = conduit.getRepos() cachedir = conduit_conf.cachedir sslcacert = get_ssl_ca_cert(up2date_cfg) - pluginOptions = getRHNRepoOptions(conduit, 'main') cachefile = openRHNReposCache(conduit) for channel in svrChannels: @@ -181,16 +180,7 @@ def init_hook(conduit): repo.timeout = timeout if hasattr(conduit_conf, '_repos_persistdir'): repo.base_persistdir = conduit_conf._repos_persistdir - repoOptions = getRHNRepoOptions(conduit, repo.id) - for options in [pluginOptions, repoOptions]: - if options: - for o in options: - if o[0] == 'exclude': # extend current list - setattr(repo, o[0], ",".join(repo.exclude) + ',' + o[1]) - else: # replace option - setattr(repo, o[0], o[1]) - conduit.info(5, "Repo '%s' setting option '%s' = '%s'" % - (repo.id, o[0], o[1])) + updateRHNRepoOptions(conduit, repo) repos.add(repo) if cachefile: cachefile.write("%s %s\n" % (repo.id, repo.name)) @@ -242,6 +232,7 @@ def addCachedRepos(conduit): repo.name = reponame if hasattr(conduit.getConf(), '_repos_persistdir'): repo.base_persistdir = conduit.getConf()._repos_persistdir + updateRHNRepoOptions(conduit, repo) repo.enable() if not repos.findRepos(repo.id): repos.add(repo) @@ -466,7 +457,8 @@ class RhnRepo(YumRepository): http_headers=headers, ssl_ca_cert = self.sslcacert.encode('utf-8'), timeout=self.timeout, - size = size + size = size, + retry_no_cache=self._retry_no_cache ) return result @@ -490,7 +482,8 @@ class RhnRepo(YumRepository): http_headers=headers, ssl_ca_cert = self.sslcacert.encode('utf-8'), timeout=self.timeout, - size = size + size = size, + retry_no_cache=self._retry_no_cache ) return result except URLGrabError, e: @@ -755,6 +748,19 @@ def getRHNRepoOptions(conduit, repoid): pass return None +def updateRHNRepoOptions(conduit, repo): + pluginOptions = getRHNRepoOptions(conduit, 'main') + repoOptions = getRHNRepoOptions(conduit, repo.id) + for options in [pluginOptions, repoOptions]: + if options: + for o in options: + if o[0] == 'exclude': # extend current list + setattr(repo, o[0], ",".join(repo.exclude) + ',' + o[1]) + else: # replace option + setattr(repo, o[0], o[1]) + conduit.info(5, "Repo '%s' setting option '%s' = '%s'" % + (repo.id, o[0], o[1])) + def config_hook(conduit): if hasattr(conduit, 'registerPackageName'): conduit.registerPackageName("yum-rhn-plugin") diff --git a/yum-rhn-plugin.spec b/yum-rhn-plugin.spec index 83c64d8..b5531e6 100644 --- a/yum-rhn-plugin.spec +++ b/yum-rhn-plugin.spec @@ -1,7 +1,7 @@ Summary: Spacewalk support for yum Name: yum-rhn-plugin Version: 2.0.1 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2 Group: System Environment/Base Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz @@ -70,6 +70,14 @@ fi %doc LICENSE %changelog +* Mon Mar 06 2017 Gennadii Altukhov 2.0.1-8 +- Resolves: #1398406 - update repo options from rhnplugin.conf even in + cacheonly mode (michael.mraka@redhat.com) +- Resolves: #1391867 - pass retry_no_cache option to urlgrabber + (michael.mraka@redhat.com) +- Resolves: #1361185 - use yum's lock to prevent concurent yum & rhn_check + actions (michael.mraka@redhat.com) + * Mon Feb 20 2017 Tomas Kasparek 2.0.1-7 - Resolves: #1423007 - request failed: error reading the headers (CVE-2016-8743) (pstudeni@redhat.com)