diff --git a/src/mio/installer.py b/src/mio/installer.py index 230bb36fa156da78af6fb49c3e75d992b1ef518b..8d70f2ff2f6d12917e9927c89fb42abdef021eb9 100755 --- a/src/mio/installer.py +++ b/src/mio/installer.py @@ -1,4 +1,4 @@ -import mio.rpm +import mio.rpmDB import mio.util import mio.yum @@ -142,14 +142,14 @@ class Installer: def install_rpms(self, path): rpm = [] - version_db = mio.rpm.VersionDB() + version_db = mio.rpmDB.VersionDB() for r in self.rpm: r.old_version = version_db[r.name] if r.old_version == None: rpm.append(r.name) rpm.sort() mio.yum.run(path + self.rpmdir, rpm) - version_db = mio.rpm.VersionDB() + version_db = mio.rpmDB.VersionDB() for r in self.rpm: r.new_version = version_db[r.name] diff --git a/src/mio/parser.py b/src/mio/parser.py index 46e0ab87252a4b1d588375e558760edb0c2d84d5..8be620b46dd2881107b09d2729889da762dc6021 100755 --- a/src/mio/parser.py +++ b/src/mio/parser.py @@ -238,7 +238,7 @@ class AttributeAccessor: # Return first declaration within range # attr[start:stop] node = self._node - i= 0 + i = 0 while node and i < last: if i >= first: try: @@ -270,9 +270,9 @@ class AttributeAccessor: if index.step == None: # Return first declaration within range # attr[start:stop] - (next,last,stride) = index.indices(sys.maxint) + (next,last,stride) = index.indices(10000) node = self._node - i= 0 + i = 0 while node and i < last: if i >= next: try: @@ -285,7 +285,7 @@ class AttributeAccessor: else: # Return all declaration within range result = [] - (next,last,stride) = index.indices(sys.maxint) + (next,last,stride) = index.indices(10000) node = self._node i= 0 while node and i < last: diff --git a/src/mio/rpm.py b/src/mio/rpm.py deleted file mode 100755 index 6060776d95bae5ab04527098e20ca418611882b6..0000000000000000000000000000000000000000 --- a/src/mio/rpm.py +++ /dev/null @@ -1,27 +0,0 @@ -try: - import rpmUtils -except: - pass - - -class VersionDB: - def __init__(self): - self.rpm = {} - try: - rpmdb = rpmUtils.RpmDBHolder() - read_ts = rpmUtils.transaction.initReadOnlyTransaction() - rpmdb.addDB(read_ts) - for (name, arch, epoch, version, release) in rpmdb.getPkgList(): - self.rpm[name] = (name, arch, version, release) - del rpmdb - del read_ts.ts - del read_ts - except: - pass - - - def __getitem__(self, name): - try: - return self.rpm[name] - except: - return None diff --git a/src/mio/rpmDB.py b/src/mio/rpmDB.py new file mode 100755 index 0000000000000000000000000000000000000000..ea69d18cdd84fa1ef45fbbecb27b1eea3304340c --- /dev/null +++ b/src/mio/rpmDB.py @@ -0,0 +1,35 @@ +try: + import rpmUtils.transaction + import rpm +except: + pass + + +class VersionDB: + def __init__(self): + self.rpm = {} + try: + #rpmdb = rpmUtils.RpmDBHolder() + #read_ts = rpmUtils.transaction.initReadOnlyTransaction() + #rpmdb.addDB(read_ts) + #for (name, arch, epoch, version, release) in rpmdb.getPkgList(): + # self.rpm[name] = (name, arch, version, release) + #del rpmdb + #del read_ts.ts + #del read_ts + read_ts = rpmUtils.transaction.initReadOnlyTransaction() + for e in read_ts.dbMatch(): + (name, arch, version, release) = ( + e[rpm.RPMTAG_NAME], e[rpm.RPMTAG_ARCH], + e[rpm.RPMTAG_VERSION], e[rpm.RPMTAG_RELEASE]) + self.rpm[name] = (name, arch, version, release) + del read_ts + except: + pass + + + def __getitem__(self, name): + try: + return self.rpm[name] + except: + return None diff --git a/src/mio/yum.py b/src/mio/yum.py index 41b20d9dd44020744cd1a537f6e350a68b3e7292..78c02453b1c1df8cbb0faa1f25b21b7dfe11921c 100755 --- a/src/mio/yum.py +++ b/src/mio/yum.py @@ -92,12 +92,19 @@ def run(path, rpm): os.system(update) # Install new packages - if len(rpm) > 0: - install = "yum -c %s -e %s -d %s -y install" % (f.name, verb, verb) - if len(rpm) > 8 and mio.log.verbosity <= VERBOSE: - mio.log.log(NORMAL, "%s %s ... [ %d more ] ... %s" % - (install, rpm[0], len(rpm) - 2, rpm[-1])) - else: - mio.log.log(NORMAL, "%s %s" % (install, ' '.join(rpm))) - - os.system("%s %s" % (install, ' '.join(rpm))) + install = "yum -c %s -e %s -d %s -y install" % (f.name, verb, verb) + i = 0 + for p in rpm: + i += 1 + mio.log.log(NORMAL, "[%d/%d] %s %s" % (i, len(rpm), install, p)) + os.system("%s %s" % (install, p)) + +# if len(rpm) > 0: +# install = "yum -c %s -e %s -d %s -y install" % (f.name, verb, verb) +# if len(rpm) > 8 and mio.log.verbosity <= VERBOSE: +# mio.log.log(NORMAL, "%s %s ... [ %d more ] ... %s" % +# (install, rpm[0], len(rpm) - 2, rpm[-1])) +# else: +# mio.log.log(NORMAL, "%s %s" % (install, ' '.join(rpm))) +# +# os.system("%s %s" % (install, ' '.join(rpm)))