[yum-cvs] yum/yum __init__.py,1.158,1.159 packages.py,1.39,1.40

Seth Vidal skvidal at login.linux.duke.edu
Tue Dec 6 20:22:35 UTC 2005


Update of /home/groups/yum/cvs/yum/yum
In directory login:/tmp/cvs-serv5294/yum

Modified Files:
	__init__.py packages.py 
Log Message:

- make install check if the package is already installed
- add rel and ver attributes to all the PackageObjects for convenience.


Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -r1.158 -r1.159
--- __init__.py	3 Dec 2005 17:12:39 -0000	1.158
+++ __init__.py	6 Dec 2005 20:22:33 -0000	1.159
@@ -43,7 +43,7 @@
 import plugins
 
 
-from packages import parsePackages, YumLocalPackage, YumInstalledPackage
+from packages import parsePackages, YumAvailablePackage, YumLocalPackage, YumInstalledPackage
 from repomd import mdErrors
 from constants import *
 from repomd.packageSack import ListPackageSack
@@ -1523,7 +1523,11 @@
         
         pkgs = []
         if po:
-            pkgs.append(po)
+            if isinstance(po, YumAvailablePackage) or isinstance(po, YumLocalPackage):
+                pkgs.append(po)
+            else:
+                raise Errors.InstallError, 'Package Object was not a package object instance'
+            
         else:
             if not kwargs.keys():
                 raise Errors.InstallError, 'Nothing specified to install'
@@ -1550,14 +1554,21 @@
                 self.log(4, 'Package: %s  - already in transaction set' % po)
                 tx_return.extend(self.tsInfo.getMembers(pkgtup=po.pkgtup))
                 continue
-
+            
             # make sure this shouldn't be passed to update:
             if self.up.updating_dict.has_key(po.pkgtup):
                 txmbrs = self.update(po=po)
                 tx_return.extend(txmbrs)
-            else:
-                txmbr = self.tsInfo.addInstall(po)
-                tx_return.append(txmbr)
+                continue
+            
+            # make sure it's not already installed
+            if self.rpmdb.installed(name=po.name, arch=po.arch, epoch=po.epoch,
+                    rel=po.rel, ver=po.ver):
+                self.errorlog(2, 'Package: %s already installed' % po)
+                continue
+
+            txmbr = self.tsInfo.addInstall(po)
+            tx_return.append(txmbr)
         
         return tx_return
 

Index: packages.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/packages.py,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- packages.py	13 Nov 2005 11:02:49 -0000	1.39
+++ packages.py	6 Dec 2005 20:22:33 -0000	1.40
@@ -119,6 +119,8 @@
         self.epoch = self.doepoch()
         self.version = self.tagByName('version')
         self.release = self.tagByName('release')
+        self.ver = self.tagByName('version')
+        self.rel = self.tagByName('release')
         self.pkgtup = self._pkgtup()
         self.repoid = 'installed'
         self.summary = self.tagByName('summary')
@@ -233,6 +235,8 @@
         self.epoch = self.doepoch()
         self.version = self.tagByName('version')
         self.release = self.tagByName('release')
+        self.ver = self.tagByName('version')
+        self.rel = self.tagByName('release')
         self.summary = self.tagByName('summary')
         self.description = self.tagByName('description')
         self.pkgtup = self._pkgtup()
@@ -261,6 +265,8 @@
         self.epoch = self.returnSimple('epoch')
         self.version = self.returnSimple('version')
         self.release = self.returnSimple('release')
+        self.ver = self.returnSimple('version')
+        self.rel = self.returnSimple('release')
         self.arch = self.returnSimple('arch')
         self.repoid = self.returnSimple('repoid')
         self.pkgtup = self._pkgtup()




More information about the Yum-cvs-commits mailing list