Browse code

PackageManager: Fixed "go" build issue

If there are multiple version of package in AlreadyBuildPackages list,
one of the version is already built and other version is not built then
it was skipping build for that package.
Fixed this issue by checking the all the version for the particular package

Change-Id: Ia7adb10499437d58febd89ae7ee4f036e94b5f49
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/5558
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>

Ankit Jain authored on 2018/08/31 03:47:01
Showing 1 changed files
... ...
@@ -50,6 +50,8 @@ class PackageManager(object):
50 50
         listFoundRPMPackages=[]
51 51
         listRPMFiles=[]
52 52
         listDirectorys=[]
53
+        mapPackageVersion={}
54
+        mapPackageRelease={}
53 55
         listDirectorys.append(constants.rpmPath)
54 56
         if constants.inputRPMSPath is not None:
55 57
             listDirectorys.append(constants.inputRPMSPath)
... ...
@@ -65,11 +67,23 @@ class PackageManager(object):
65 65
         pkgUtils = PackageUtils(self.logName,self.logPath)
66 66
         for rpmfile in listRPMFiles:
67 67
             package,version,release = pkgUtils.findPackageInfoFromRPMFile(rpmfile)
68
+            if package in mapPackageVersion:
69
+                mapPackageVersion[package].append(version)
70
+                mapPackageRelease[package].append(release)
71
+            else:
72
+                mapPackageVersion[package]=[version]
73
+                mapPackageRelease[package]=[release]
74
+        for package in mapPackageVersion:
68 75
             if SPECS.getData().isRPMPackage(package):
69
-                specVersion=SPECS.getData().getVersion(package)
70
-                specRelease=SPECS.getData().getRelease(package)
71
-                if version == specVersion and release == specRelease:
72
-                    listFoundRPMPackages.append(package)
76
+                numVersions=SPECS.getData().getNumberOfVersions(package)
77
+                flag=True;
78
+                for index in range(0, numVersions):
79
+                        specVersion=SPECS.getData().getVersion(package,index)
80
+                        specRelease=SPECS.getData().getRelease(package,index)
81
+                        if  specVersion not in mapPackageVersion[package] and specRelease not in mapPackageRelease[package]:
82
+                                flag=False
83
+                if flag:
84
+                        listFoundRPMPackages.append(package)
73 85
         #Mark package available only if all sub packages are available
74 86
         for package in listFoundRPMPackages:
75 87
             basePkg = SPECS.getData().getSpecName(package)