[Yum] pkgpolicy=(newest)|first|last by repo order in .conf

Cymon J. Cox cymon at duke.edu
Wed May 26 15:52:12 UTC 2004


Folks,

Seeing as this has been discussed many times I'll get to the point: has
anyone considered poking an ordered dictionary through to ConfigParser?

Apart from touching a supposed private attribute (which I can live
with), this would seem to be a simple solution...

In yum/config.py:

========================================
...

class ConfigDictionary(dict):
    def __setitem__ (self, key, value):
        dict.__setitem__ (self, key, (len (self), value,))
    def __getitem__(self, key):
        return dict.__getitem__(self, key)[1]
    def ordered_sids(self):
        i = [(v, k) for (k, v) in self.items()]
        i.sort()
        return [k for (v, k) in i]

class yumconf:

    def __init__(self, configfile = '/etc/yum.conf'):
        self.cfg = ConfigParser.ConfigParser()
        self.cfg._sections = ConfigDictionary() #!!!!!!

etc...
========================================
In yum/yummain.py

    serverlist = [sid for sid in conf.cfg._sections.ordered_sids() if
sid in conf.servers]
    if conf.pkgpolicy == 'first':
        serverlist.reverse()
        conf.pkgpolicy = 'last'

    #serverlist = conf.servers
    #serverlist.sort()

========================================

Cheers, C.
-- 
Cymon J. Cox <cymon at duke.edu>




More information about the Yum mailing list