Browse code

Package builder: fix multiversioning in find rpm

The idea of the fix is to specify version and release
and to avoid "*" pattern for the RPM find

getRelease(): use package name and version instead of
package name and ?index? to get release number.

Change-Id: Ib0a251615d4da73c82fa5ae6c8c7f6d8cabe4a4a
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/6128
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: Anish Swaminathan <anishs@vmware.com>

Alexey Makhalov authored on 2018/11/08 07:09:15
Showing 2 changed files
... ...
@@ -313,13 +313,12 @@ class PackageUtils(object):
313 313
 
314 314
     def findRPMFileForGivenPackage(self, package, version = "*", index=0):
315 315
         cmdUtils = CommandUtils()
316
-        release = "*"
317 316
 
318 317
         # If no version is specified, use the latest from the source
319 318
         # code.
320 319
         if version == "*":
321 320
             version = SPECS.getData().getVersion(package,index)
322
-            release = SPECS.getData().getRelease(package,index)
321
+        release = SPECS.getData().getRelease(package,version)
323 322
         listFoundRPMFiles = sum([cmdUtils.findFile(package+"-"+version+"-"+release+"."+platform.machine()+".rpm",constants.rpmPath),
324 323
                             cmdUtils.findFile(package+"-"+version+"-"+release+".noarch.rpm",constants.rpmPath)], [])
325 324
         if constants.inputRPMSPath is not None:
... ...
@@ -99,9 +99,14 @@ class SpecObjectsUtils(object):
99 99
         specName=self.getSpecName(package)
100 100
         return self.mapSpecObjects[specName][index].checkBuildRequirePackages
101 101
 
102
-    def getRelease(self, package, index=0):
102
+    def getRelease(self, package, version=None):
103 103
         specName=self.getSpecName(package)
104
-        return self.mapSpecObjects[specName][index].release
104
+        if not version:
105
+            return self.mapSpecObjects[specName][0].release
106
+        for p in self.mapSpecObjects[specName]:
107
+            if p.version == version:
108
+                return p.release
109
+        return None
105 110
 
106 111
     def getVersion(self, package, index=0):
107 112
         specName=self.getSpecName(package)