Browse code

Fixed dependency order logic

Change-Id: I86c7d7a2396b80733c4cdcafcc5fe2df619e2630
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/1456
Reviewed-by: Divya Thaluru <dthaluru@vmware.com>
Tested-by: Divya Thaluru <dthaluru@vmware.com>

dthaluru authored on 2016/09/24 06:50:44
Showing 1 changed files
... ...
@@ -74,19 +74,24 @@ class PackageManager(object):
74 74
         self.mapCyclesToPackageList.clear()
75 75
         self.mapPackageToCycle.clear()
76 76
         self.sortedPackageList=[]
77
-        
78 77
         listOfPackagesAlreadyBuilt = []
79 78
         listOfPackagesAlreadyBuilt = self.readAlreadyAvailablePackages()
80 79
         self.listOfPackagesAlreadyBuilt = listOfPackagesAlreadyBuilt[:]
81
-        for pkg in listOfPackagesAlreadyBuilt:
82
-            listDependentRpmPackages = constants.specData.getRequiresAllForPackage(pkg)
83
-            needToRebuild = False
84
-            for dependentPkg in listDependentRpmPackages:
85
-                if dependentPkg not in self.listOfPackagesAlreadyBuilt:
86
-                    needToRebuild = True
87
-            if needToRebuild:
88
-                self.listOfPackagesAlreadyBuilt.remove(pkg)
89
- 
80
+
81
+        updateBuiltRPMSList = False
82
+        while not updateBuiltRPMSList:
83
+            updateBuiltRPMSList = True
84
+            listOfPackagesAlreadyBuilt = self.listOfPackagesAlreadyBuilt[:]
85
+            for pkg in listOfPackagesAlreadyBuilt:
86
+                listDependentRpmPackages = constants.specData.getRequiresAllForPackage(pkg)
87
+                needToRebuild = False
88
+                for dependentPkg in listDependentRpmPackages:
89
+                    if dependentPkg not in self.listOfPackagesAlreadyBuilt:
90
+                        needToRebuild = True
91
+                        updateBuiltRPMSList = False
92
+                if needToRebuild:
93
+                    self.listOfPackagesAlreadyBuilt.remove(pkg)
94
+
90 95
         listPackagesToBuild=listPackages[:]
91 96
         for pkg in listPackages:
92 97
             if pkg in self.listOfPackagesAlreadyBuilt: