[yum-cvs] yum-utils/plugins/versionlock versionlock.conf, NONE, 1.1 versionlock.py, NONE, 1.1
Panu Matilainen
pmatilai at login.linux.duke.edu
Thu Jun 16 16:34:03 UTC 2005
Update of /home/groups/yum/cvs/yum-utils/plugins/versionlock
In directory login:/tmp/cvs-serv5137/versionlock
Added Files:
versionlock.conf versionlock.py
Log Message:
Add versionlock plugin
--- NEW FILE versionlock.conf ---
[main]
enabled = 1
locklist = /etc/yum/pluginconf.d/versionlock.list
--- NEW FILE versionlock.py ---
from yum.constants import *
from yum.plugins import PluginYumExit
from rpmUtils.miscutils import splitFilename, compareEVR
requires_api_version = '2.1'
def config_hook(conduit):
conduit.registerOpt('locklist', PLUG_OPT_STRING, PLUG_OPT_WHERE_MAIN, '')
def exclude_hook(conduit):
conduit.info(2, 'Reading version lock configuration')
locklist = []
try:
llfile = open(conduit.confString('main', 'locklist'))
for line in llfile.readlines():
locklist.append(line.rstrip())
llfile.close()
except IOError:
raise PluginYumExit('Unable to read version lock configuration')
pkgs = conduit.getPackages()
locked = {}
for pkg in locklist:
# Arch doesn't matter but splitFilename wants it so fake it...
(n, v, r, e, a) = splitFilename("%s.arch" % pkg)
if e == '':
e = '0'
locked[n] = (e, v, r)
for pkg in pkgs:
if locked.has_key(pkg.name):
(n, e, v, r, a) = pkg.returnNevraTuple()
if compareEVR(locked[pkg.name], (e, v, r)) != 0:
conduit.delPackage(pkg)
conduit.info(5, 'Excluding package %s due to version lock' % pkg)
More information about the Yum-cvs-commits
mailing list