[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