Browse code

Python indent use spaces.

Change-Id: Id47e9d23d562eae01635def5c4c9830489ac2d3a
Reviewed-on: http://photon-jenkins.eng.vmware.com/1069
Reviewed-by: suezzelur <anishs@vmware.com>
Tested-by: suezzelur <anishs@vmware.com>

xiaolin-vmware authored on 2016/06/10 02:14:53
Showing 9 changed files
... ...
@@ -8,10 +8,10 @@
8 8
 class Action(object):
9 9
 
10 10
     def do_action(self, params):
11
-    	raise NameError('Abstract method, this should be implemented in the child class')
11
+        raise NameError('Abstract method, this should be implemented in the child class')
12 12
     
13 13
     def hide(self, params):
14
-    	raise NameError('Abstract method, this should be implemented in the child class')
14
+        raise NameError('Abstract method, this should be implemented in the child class')
15 15
 
16 16
 
17 17
     
... ...
@@ -7,9 +7,9 @@ enabled = True
7 7
 
8 8
 def execute(name, ks_config, config, root):
9 9
 
10
-	if ks_config:
11
-		if 'partitions' in ks_config:
12
-			partitions = ks_config['partitions']
13
-		else:
14
-			partitions = commons.default_partitions
15
-		config['disk'] = commons.partition_disk(ks_config['disk'], partitions)
10
+    if ks_config:
11
+        if 'partitions' in ks_config:
12
+            partitions = ks_config['partitions']
13
+        else:
14
+            partitions = commons.default_partitions
15
+        config['disk'] = commons.partition_disk(ks_config['disk'], partitions)
... ...
@@ -10,7 +10,7 @@ def execute(name, ks_config, config, root):
10 10
     if ks_config and 'postinstall' in ks_config:
11 11
         config['postinstall'] = ks_config['postinstall']
12 12
     if 'postinstall' not in config:
13
-    	return
13
+        return
14 14
     # run the script in the chroot environment
15 15
     script = config['postinstall']
16 16
 
... ...
@@ -20,6 +20,6 @@ def execute(name, ks_config, config, root):
20 20
     hosts_file = os.path.join(root, 'etc/hosts')
21 21
 
22 22
     with open(hostname_file,  'wb') as outfile:
23
-    	outfile.write(hostname)
23
+        outfile.write(hostname)
24 24
 
25 25
     commons.replace_string_in_file(hosts_file, r'127\.0\.0\.1\s+localhost\s*\Z', '127.0.0.1\tlocalhost\n127.0.0.1\t' + hostname)
... ...
@@ -22,217 +22,217 @@ class SerializableSpecObject(object):
22 22
 
23 23
 class SerializedSpecObjects(object):
24 24
     
25
-	def __init__(self, inputDataDir, stageDir):
26
-		self.mapSerializableSpecObjects={}
27
-		self.mapPackageToSpec={}
28
-		self.jsonFilesOutPath = stageDir + "/common/data/"
29
-		self.inputDataDir = inputDataDir
30
-	
31
-	def findTotalRequires(self, allDeps, depQue, parent, displayOption):
32
-		while not depQue.empty():
33
-			specPkg = depQue.get()
34
-			specName = self.getSpecName(specPkg)
35
-			specObj = self.mapSerializableSpecObjects[specName]
36
-			for depPkg in specObj.installRequiresPackages[specPkg]:
37
-				if True == allDeps.has_key(depPkg): 
38
-					if(allDeps[depPkg] < allDeps[specPkg] + 1): 
39
-						allDeps[depPkg] = allDeps[specPkg] + 1
40
-						parent[depPkg] = specPkg
41
-						self.updateLevels(allDeps, depPkg, parent, allDeps[depPkg])
42
-				else:
43
-					allDeps[depPkg] = allDeps[specPkg] + 1
44
-					parent[depPkg] = specPkg
45
-					depQue.put(depPkg)
46
-	
47
-	def printTree(self, allDeps, children, curParent , depth):    
48
-		if (children.has_key(curParent)):
49
-			for child in children[curParent]:
50
-				print "\t" * depth, child
51
-				self.printTree(allDeps, children, child, depth+1)
52
-	
53
-	def get_all_package_names(self, jsonFilePath):
54
-		base_path = os.path.dirname(jsonFilePath)
55
-		jsonData = open(jsonFilePath)
56
-		option_list_json = json.load(jsonData)
57
-		jsonData.close()
58
-		packages = option_list_json["packages"]
59
-		return packages
25
+    def __init__(self, inputDataDir, stageDir):
26
+        self.mapSerializableSpecObjects={}
27
+        self.mapPackageToSpec={}
28
+        self.jsonFilesOutPath = stageDir + "/common/data/"
29
+        self.inputDataDir = inputDataDir
30
+    
31
+    def findTotalRequires(self, allDeps, depQue, parent, displayOption):
32
+        while not depQue.empty():
33
+            specPkg = depQue.get()
34
+            specName = self.getSpecName(specPkg)
35
+            specObj = self.mapSerializableSpecObjects[specName]
36
+            for depPkg in specObj.installRequiresPackages[specPkg]:
37
+                if True == allDeps.has_key(depPkg): 
38
+                    if(allDeps[depPkg] < allDeps[specPkg] + 1): 
39
+                        allDeps[depPkg] = allDeps[specPkg] + 1
40
+                        parent[depPkg] = specPkg
41
+                        self.updateLevels(allDeps, depPkg, parent, allDeps[depPkg])
42
+                else:
43
+                    allDeps[depPkg] = allDeps[specPkg] + 1
44
+                    parent[depPkg] = specPkg
45
+                    depQue.put(depPkg)
46
+    
47
+    def printTree(self, allDeps, children, curParent , depth):    
48
+        if (children.has_key(curParent)):
49
+            for child in children[curParent]:
50
+                print "\t" * depth, child
51
+                self.printTree(allDeps, children, child, depth+1)
52
+    
53
+    def get_all_package_names(self, jsonFilePath):
54
+        base_path = os.path.dirname(jsonFilePath)
55
+        jsonData = open(jsonFilePath)
56
+        option_list_json = json.load(jsonData)
57
+        jsonData.close()
58
+        packages = option_list_json["packages"]
59
+        return packages
60 60
 
61
-	def updateLevels(self, allDeps, inPkg, parent, level):
62
-		specName = self.getSpecName(inPkg) 
63
-		specObj  = self.mapSerializableSpecObjects[specName]
64
-		for depPkg in specObj.installRequiresPackages[inPkg]:
65
-			if (allDeps.has_key(depPkg) and allDeps[depPkg] < level + 1): 
66
-				allDeps[depPkg] = level + 1
67
-				parent[depPkg] = inPkg
68
-				self.updateLevels(allDeps, depPkg, parent, allDeps[depPkg])
69
-			                 
70
-	def readSpecsAndConvertToSerializableObjects(self, specFilesPath, inputType, inputValue, displayOption):
71
-		children = {}
72
-		listSpecFiles=[]
73
-		whoNeedsList=[]
74
-		independentRPMS=[] # list of all RPMS not built from photon and that must be blindly copied.
75
-		allDeps={}
76
-		parent={}
77
-		depQue = Queue.Queue()
78
-		packageFound = False
79
-		self.getListSpecFiles(listSpecFiles,specFilesPath)
80
-		for specFile in listSpecFiles:
81
-			spec=Specutils(specFile)
82
-			specName=spec.getBasePackageName()
83
-			specObj=SerializableSpecObject()
84
-			specObj.name=specName
85
-			specObj.buildRequirePackages=spec.getBuildRequiresAllPackages()
86
-			specObj.installRequiresAllPackages=spec.getRequiresAllPackages()
87
-			specObj.listPackages=spec.getPackageNames()
88
-			specObj.specFile=specFile
89
-			specObj.version=spec.getVersion()
90
-			specObj.release=spec.getRelease()
91
-			specObj.listSources=spec.getSourceNames()
92
-			specObj.listPatches=spec.getPatchNames()
93
-			specObj.securityHardening=spec.getSecurityHardeningOption()
94
-			for specPkg in specObj.listPackages:
95
-				specObj.installRequiresPackages[specPkg]=spec.getRequires(specPkg)
96
-				if (inputType == "pkg" and inputValue == specPkg): # all the first level dependencies to a dictionary and queue 
97
-					packageFound = True
98
-					for depPkg in specObj.installRequiresPackages[specPkg]:
99
-						if False == allDeps.has_key(depPkg):
100
-							allDeps[depPkg] = 0
101
-							parent[depPkg] = ""
102
-							depQue.put(depPkg)
103
-				if (inputType == "who-needs" and (inputValue in specObj.installRequiresPackages[specPkg])):
104
-					whoNeedsList.append(specPkg)
105
-				self.mapPackageToSpec[specPkg]=specName
106
-			self.mapSerializableSpecObjects[specName]=specObj		
107
-	    
108
-		# Generate dependencies for individual packages
109
-		if (inputType == "pkg"):
110
-			if (packageFound == True):
111
-				self.findTotalRequires(allDeps, depQue, parent, displayOption)
112
-			else:
113
-				print "No spec file builds a package named",inputValue
114
-				return
61
+    def updateLevels(self, allDeps, inPkg, parent, level):
62
+        specName = self.getSpecName(inPkg) 
63
+        specObj  = self.mapSerializableSpecObjects[specName]
64
+        for depPkg in specObj.installRequiresPackages[inPkg]:
65
+            if (allDeps.has_key(depPkg) and allDeps[depPkg] < level + 1): 
66
+                allDeps[depPkg] = level + 1
67
+                parent[depPkg] = inPkg
68
+                self.updateLevels(allDeps, depPkg, parent, allDeps[depPkg])
69
+                             
70
+    def readSpecsAndConvertToSerializableObjects(self, specFilesPath, inputType, inputValue, displayOption):
71
+        children = {}
72
+        listSpecFiles=[]
73
+        whoNeedsList=[]
74
+        independentRPMS=[] # list of all RPMS not built from photon and that must be blindly copied.
75
+        allDeps={}
76
+        parent={}
77
+        depQue = Queue.Queue()
78
+        packageFound = False
79
+        self.getListSpecFiles(listSpecFiles,specFilesPath)
80
+        for specFile in listSpecFiles:
81
+            spec=Specutils(specFile)
82
+            specName=spec.getBasePackageName()
83
+            specObj=SerializableSpecObject()
84
+            specObj.name=specName
85
+            specObj.buildRequirePackages=spec.getBuildRequiresAllPackages()
86
+            specObj.installRequiresAllPackages=spec.getRequiresAllPackages()
87
+            specObj.listPackages=spec.getPackageNames()
88
+            specObj.specFile=specFile
89
+            specObj.version=spec.getVersion()
90
+            specObj.release=spec.getRelease()
91
+            specObj.listSources=spec.getSourceNames()
92
+            specObj.listPatches=spec.getPatchNames()
93
+            specObj.securityHardening=spec.getSecurityHardeningOption()
94
+            for specPkg in specObj.listPackages:
95
+                specObj.installRequiresPackages[specPkg]=spec.getRequires(specPkg)
96
+                if (inputType == "pkg" and inputValue == specPkg): # all the first level dependencies to a dictionary and queue 
97
+                    packageFound = True
98
+                    for depPkg in specObj.installRequiresPackages[specPkg]:
99
+                        if False == allDeps.has_key(depPkg):
100
+                            allDeps[depPkg] = 0
101
+                            parent[depPkg] = ""
102
+                            depQue.put(depPkg)
103
+                if (inputType == "who-needs" and (inputValue in specObj.installRequiresPackages[specPkg])):
104
+                    whoNeedsList.append(specPkg)
105
+                self.mapPackageToSpec[specPkg]=specName
106
+            self.mapSerializableSpecObjects[specName]=specObj       
107
+        
108
+        # Generate dependencies for individual packages
109
+        if (inputType == "pkg"):
110
+            if (packageFound == True):
111
+                self.findTotalRequires(allDeps, depQue, parent, displayOption)
112
+            else:
113
+                print "No spec file builds a package named",inputValue
114
+                return
115 115
 
116
-		# Generate dependencies for all packages in the given JSON input file
117
-		elif (inputType == "json"):
118
-			filePath = self.inputDataDir +"/"+ inputValue
119
-			data = self.get_all_package_names(filePath)
120
-			for pkg in data:
121
-				if False == allDeps.has_key(pkg):
122
-					spName = self.getSpecName(pkg)
123
-					if(spName != None):			
124
-						allDeps[pkg] = 0 
125
-						parent[pkg] = ""
126
-						depQue.put(pkg)
127
-						self.findTotalRequires(allDeps, depQue, parent, displayOption)
128
-					else:
129
-						independentRPMS.append(pkg); 
116
+        # Generate dependencies for all packages in the given JSON input file
117
+        elif (inputType == "json"):
118
+            filePath = self.inputDataDir +"/"+ inputValue
119
+            data = self.get_all_package_names(filePath)
120
+            for pkg in data:
121
+                if False == allDeps.has_key(pkg):
122
+                    spName = self.getSpecName(pkg)
123
+                    if(spName != None):         
124
+                        allDeps[pkg] = 0 
125
+                        parent[pkg] = ""
126
+                        depQue.put(pkg)
127
+                        self.findTotalRequires(allDeps, depQue, parent, displayOption)
128
+                    else:
129
+                        independentRPMS.append(pkg); 
130 130
 
131
-		#Generating the list of packages that requires the given input package at install time
132
-		elif (inputType == "who-needs"):
133
-			print whoNeedsList
134
-			return
131
+        #Generating the list of packages that requires the given input package at install time
132
+        elif (inputType == "who-needs"):
133
+            print whoNeedsList
134
+            return
135 135
 
136
-		# construct the sorted list of all packages (sorted by dependency)
137
-		sortedList = []
138
-		for elem in sorted(allDeps.items(), key=operator.itemgetter(1), reverse=True):
139
-			sortedList.append(elem[0])
140
-		sortedList.extend(independentRPMS)
136
+        # construct the sorted list of all packages (sorted by dependency)
137
+        sortedList = []
138
+        for elem in sorted(allDeps.items(), key=operator.itemgetter(1), reverse=True):
139
+            sortedList.append(elem[0])
140
+        sortedList.extend(independentRPMS)
141 141
 
142
-	    # construct all children nodes
143
-		if (displayOption == "tree"):
144
-			for k, v in parent.iteritems():
145
-				children.setdefault(v, []).append(k)
146
-			if(inputType == "json"):
147
-				print "Dependency Mappings for", inputValue, ":", "\n----------------------------------------------------",children
148
-				print "----------------------------------------------------"				
149
-			if (children.has_key("")):
150
-				for child in children[""]:
151
-					print child
152
-					self.printTree(allDeps, children, child, 1)
153
-				for pkg in independentRPMS:
154
-					print pkg
155
-				print "******************",len(sortedList), "packages in total ******************"
156
-			else:
157
-				if (inputType == "pkg" and len(children) > 0):
158
-					print "cyclic dependency detected, mappings: \n",children 
142
+        # construct all children nodes
143
+        if (displayOption == "tree"):
144
+            for k, v in parent.iteritems():
145
+                children.setdefault(v, []).append(k)
146
+            if(inputType == "json"):
147
+                print "Dependency Mappings for", inputValue, ":", "\n----------------------------------------------------",children
148
+                print "----------------------------------------------------"                
149
+            if (children.has_key("")):
150
+                for child in children[""]:
151
+                    print child
152
+                    self.printTree(allDeps, children, child, 1)
153
+                for pkg in independentRPMS:
154
+                    print pkg
155
+                print "******************",len(sortedList), "packages in total ******************"
156
+            else:
157
+                if (inputType == "pkg" and len(children) > 0):
158
+                    print "cyclic dependency detected, mappings: \n",children 
159 159
 
160
-		# To display a flat list of all packages
161
-		elif(displayOption == "list"):
162
-			print sortedList
160
+        # To display a flat list of all packages
161
+        elif(displayOption == "list"):
162
+            print sortedList
163 163
 
164
-		# To generate a new JSON file based on given input json file
165
-		elif(displayOption == "json" and inputType == "json"):
166
-			d = {}
167
-			d['packages'] = sortedList
168
-			outFilePath = self.jsonFilesOutPath + inputValue
169
-			with open(outFilePath, 'wb') as outfile:
170
-				json.dump(d, outfile)		
171
-	
172
-	def getListSpecFiles(self,listSpecFiles,path):
173
-		for dirEntry in os.listdir(path):
174
-			dirEntryPath = os.path.join(path, dirEntry)
175
-			if os.path.isfile(dirEntryPath) and dirEntryPath.endswith(".spec"):
176
-				listSpecFiles.append(dirEntryPath)
177
-			elif os.path.isdir(dirEntryPath):
178
-				self.getListSpecFiles(listSpecFiles,dirEntryPath)
164
+        # To generate a new JSON file based on given input json file
165
+        elif(displayOption == "json" and inputType == "json"):
166
+            d = {}
167
+            d['packages'] = sortedList
168
+            outFilePath = self.jsonFilesOutPath + inputValue
169
+            with open(outFilePath, 'wb') as outfile:
170
+                json.dump(d, outfile)       
171
+    
172
+    def getListSpecFiles(self,listSpecFiles,path):
173
+        for dirEntry in os.listdir(path):
174
+            dirEntryPath = os.path.join(path, dirEntry)
175
+            if os.path.isfile(dirEntryPath) and dirEntryPath.endswith(".spec"):
176
+                listSpecFiles.append(dirEntryPath)
177
+            elif os.path.isdir(dirEntryPath):
178
+                self.getListSpecFiles(listSpecFiles,dirEntryPath)
179 179
     
180
-	def getBuildRequiresForPackage(self, package):
181
-		specName=self.getSpecName(package)
182
-		return self.mapSerializableSpecObjects[specName].buildRequirePackages
180
+    def getBuildRequiresForPackage(self, package):
181
+        specName=self.getSpecName(package)
182
+        return self.mapSerializableSpecObjects[specName].buildRequirePackages
183 183
         
184
-	def getRequiresForPackage(self, package):
185
-		specName=self.getSpecName(package)
186
-		if self.mapSerializableSpecObjects[specName].installRequiresPackages.has_key(package):
187
-			return self.mapSerializableSpecObjects[specName].installRequiresPackages[package]
188
-		return None
184
+    def getRequiresForPackage(self, package):
185
+        specName=self.getSpecName(package)
186
+        if self.mapSerializableSpecObjects[specName].installRequiresPackages.has_key(package):
187
+            return self.mapSerializableSpecObjects[specName].installRequiresPackages[package]
188
+        return None
189 189
     
190
-	def getRelease(self, package):
191
-		specName=self.getSpecName(package)
192
-		return self.mapSerializableSpecObjects[specName].release
190
+    def getRelease(self, package):
191
+        specName=self.getSpecName(package)
192
+        return self.mapSerializableSpecObjects[specName].release
193 193
         
194
-	def getVersion(self, package):
195
-		specName=self.getSpecName(package)
196
-		return self.mapSerializableSpecObjects[specName].version
194
+    def getVersion(self, package):
195
+        specName=self.getSpecName(package)
196
+        return self.mapSerializableSpecObjects[specName].version
197 197
         
198
-	def getSpecFile(self, package):
199
-		specName=self.getSpecName(package)
200
-		return self.mapSerializableSpecObjects[specName].specFile
198
+    def getSpecFile(self, package):
199
+        specName=self.getSpecName(package)
200
+        return self.mapSerializableSpecObjects[specName].specFile
201 201
         
202
-	def getPatches(self, package):
203
-		specName=self.getSpecName(package)
204
-		return self.mapSerializableSpecObjects[specName].listPatches
202
+    def getPatches(self, package):
203
+        specName=self.getSpecName(package)
204
+        return self.mapSerializableSpecObjects[specName].listPatches
205 205
         
206
-	def getSources(self, package):
207
-		specName=self.getSpecName(package)
208
-		return self.mapSerializableSpecObjects[specName].listSources
206
+    def getSources(self, package):
207
+        specName=self.getSpecName(package)
208
+        return self.mapSerializableSpecObjects[specName].listSources
209 209
         
210
-	def getPackages(self, package):
211
-		specName=self.getSpecName(package)
212
-		return self.mapSerializableSpecObjects[specName].listPackages
210
+    def getPackages(self, package):
211
+        specName=self.getSpecName(package)
212
+        return self.mapSerializableSpecObjects[specName].listPackages
213 213
         
214
-	def getSpecName(self,package):
215
-		if self.mapPackageToSpec.has_key(package):
216
-			specName=self.mapPackageToSpec[package]
217
-			if self.mapSerializableSpecObjects.has_key(specName):
218
-				return specName
219
-			else:
220
-				print "SpecDeps: Could not able to find " + package + " package from specs"
221
-				raise Exception("Invalid package:" + package)
222
-		else:
223
-			return None			
214
+    def getSpecName(self,package):
215
+        if self.mapPackageToSpec.has_key(package):
216
+            specName=self.mapPackageToSpec[package]
217
+            if self.mapSerializableSpecObjects.has_key(specName):
218
+                return specName
219
+            else:
220
+                print "SpecDeps: Could not able to find " + package + " package from specs"
221
+                raise Exception("Invalid package:" + package)
222
+        else:
223
+            return None         
224 224
     
225
-	def isRPMPackage(self,package):
226
-		if self.mapPackageToSpec.has_key(package):
227
-			specName=self.mapPackageToSpec[package]
228
-			if self.mapSerializableSpecObjects.has_key(specName):
229
-				return True
230
-		return False
225
+    def isRPMPackage(self,package):
226
+        if self.mapPackageToSpec.has_key(package):
227
+            specName=self.mapPackageToSpec[package]
228
+            if self.mapSerializableSpecObjects.has_key(specName):
229
+                return True
230
+        return False
231 231
     
232
-	def getSecurityHardeningOption(self, package):
233
-		specName=self.getSpecName(package)
234
-		return self.mapSerializableSpecObjects[specName].securityHardening
232
+    def getSecurityHardeningOption(self, package):
233
+        specName=self.getSpecName(package)
234
+        return self.mapSerializableSpecObjects[specName].securityHardening
235 235
         
236
-	def getSpecDetails(self, name):
237
-		print self.mapSerializableSpecObjects[name].installRequiresAllPackages 
236
+    def getSpecDetails(self, name):
237
+        print self.mapSerializableSpecObjects[name].installRequiresAllPackages 
238 238
 
... ...
@@ -18,39 +18,39 @@ LOG_FILE_DIR = "../../stage/LOGS"
18 18
 
19 19
 
20 20
 def main():
21
-	usage = os.path.basename(__file__) + "--input-type=[json/pkg/who-needs] --pkg=[pkg_name] --file=<JSON_FILE_NAME> --disp=[tree/list/json]"
22
-	parser = OptionParser(usage)
23
-	parser.add_option("-i", "--input-type", dest="input_type", default=DEFAULT_INPUT_TYPE)
24
-	parser.add_option("-p", "--pkg", dest="pkg")
25
-	parser.add_option("-f", "--file", dest="json_file", default="packages_minimal.json")
26
-	parser.add_option("-d", "--disp", dest="display_option", default=DEFAULT_DISPLAY_OPTION) 
27
-	parser.add_option("-s", "--spec-dir", dest="spec_dir", default=SPEC_FILE_DIR)
28
-	parser.add_option("-t", "--stage-dir", dest="stage_dir", default="../../stage")
29
-	parser.add_option("-a", "--input-data-dir", dest="input_data_dir", default="../../common/data/")
30
-	(options,  args) = parser.parse_args() 
31
-
32
-	if(False == options.input_data_dir.endswith('/')):
33
-		options.input_data_dir += '/'
34
-
35
-	specDeps = SerializedSpecObjects(options.input_data_dir, options.stage_dir)
36
-	displayOption = options.display_option
37
-	abs_path = os.path.abspath(__file__)
38
-	dir_name = os.path.dirname(abs_path)
39
-	os.chdir(dir_name)
40
-
41
-	if(options.input_type == "pkg" or options.input_type == "who-needs"): # To display/print package dependencies on console
42
-		targetName = options.pkg
43
-		specDeps.readSpecsAndConvertToSerializableObjects(options.spec_dir, options.input_type, targetName, displayOption)
44
-	elif(options.input_type == "json"):# Generate the expanded package dependencies json file based on package_list_file 
45
-		json_wrapper_option_list = JsonWrapper(options.json_file)
46
-		option_list_json = json_wrapper_option_list.read()
47
-		options_sorted = option_list_json.items()
48
-		for install_option in options_sorted:
49
-			if displayOption == "tree" and install_option[1]["title"] == "ISO Packages":
50
-				continue
51
-			specDeps.readSpecsAndConvertToSerializableObjects(options.spec_dir, options.input_type, install_option[1]["file"], displayOption)
52
-
53
-	sys.exit(0)
21
+    usage = os.path.basename(__file__) + "--input-type=[json/pkg/who-needs] --pkg=[pkg_name] --file=<JSON_FILE_NAME> --disp=[tree/list/json]"
22
+    parser = OptionParser(usage)
23
+    parser.add_option("-i", "--input-type", dest="input_type", default=DEFAULT_INPUT_TYPE)
24
+    parser.add_option("-p", "--pkg", dest="pkg")
25
+    parser.add_option("-f", "--file", dest="json_file", default="packages_minimal.json")
26
+    parser.add_option("-d", "--disp", dest="display_option", default=DEFAULT_DISPLAY_OPTION) 
27
+    parser.add_option("-s", "--spec-dir", dest="spec_dir", default=SPEC_FILE_DIR)
28
+    parser.add_option("-t", "--stage-dir", dest="stage_dir", default="../../stage")
29
+    parser.add_option("-a", "--input-data-dir", dest="input_data_dir", default="../../common/data/")
30
+    (options,  args) = parser.parse_args() 
31
+
32
+    if(False == options.input_data_dir.endswith('/')):
33
+        options.input_data_dir += '/'
34
+
35
+    specDeps = SerializedSpecObjects(options.input_data_dir, options.stage_dir)
36
+    displayOption = options.display_option
37
+    abs_path = os.path.abspath(__file__)
38
+    dir_name = os.path.dirname(abs_path)
39
+    os.chdir(dir_name)
40
+
41
+    if(options.input_type == "pkg" or options.input_type == "who-needs"): # To display/print package dependencies on console
42
+        targetName = options.pkg
43
+        specDeps.readSpecsAndConvertToSerializableObjects(options.spec_dir, options.input_type, targetName, displayOption)
44
+    elif(options.input_type == "json"):# Generate the expanded package dependencies json file based on package_list_file 
45
+        json_wrapper_option_list = JsonWrapper(options.json_file)
46
+        option_list_json = json_wrapper_option_list.read()
47
+        options_sorted = option_list_json.items()
48
+        for install_option in options_sorted:
49
+            if displayOption == "tree" and install_option[1]["title"] == "ISO Packages":
50
+                continue
51
+            specDeps.readSpecsAndConvertToSerializableObjects(options.spec_dir, options.input_type, install_option[1]["file"], displayOption)
52
+
53
+    sys.exit(0)
54 54
 
55 55
 if __name__=="__main__":
56 56
     main()
... ...
@@ -138,17 +138,17 @@ class Specutils(object):
138 138
                 for dpkg in pkg.requires:
139 139
                     dependentPackages.append(dpkg.package)
140 140
         #if (pkgName == "mono-extras"):
141
-	#    print "4given packages:", self.spec.packages
141
+    #    print "4given packages:", self.spec.packages
142 142
         #    print "4given dep packages: ", dependentPackages
143 143
         return dependentPackages
144 144
     
145 145
     def getBuildRequiresAllPackages(self):
146
-	
146
+    
147 147
         depedentPackages=[]
148 148
         for key in self.spec.packages.keys():
149 149
             pkg = self.spec.packages.get(key)
150 150
             #if(pkg.name == "mono"):
151
-            	#print "build dendent packages len 4 mono-devel:", len(pkg.buildrequires)
151
+                #print "build dendent packages len 4 mono-devel:", len(pkg.buildrequires)
152 152
             for dpkg in pkg.buildrequires:
153 153
                 depedentPackages.append(dpkg.package)
154 154
         depedentPackages=list(set(depedentPackages))
... ...
@@ -166,8 +166,8 @@ class Specutils(object):
166 166
         for key in self.spec.packages.keys():
167 167
             pkg = self.spec.packages.get(key)
168 168
             if pkg.name == pkgName:
169
-            	#if( pkgName == "mono-devel"):
170
-            	    #print "dendent packages len 4 mono-devel:", len(pkg.requires), pkg.requires[0].package
169
+                #if( pkgName == "mono-devel"):
170
+                    #print "dendent packages len 4 mono-devel:", len(pkg.requires), pkg.requires[0].package
171 171
                 for dpkg in pkg.requires:
172 172
                     dependentPackages.append(dpkg.package)
173 173
         return dependentPackages
... ...
@@ -177,8 +177,8 @@ class Specutils(object):
177 177
         for key in self.spec.packages.keys():
178 178
             pkg = self.spec.packages.get(key)
179 179
             if pkg.name == pkgName:
180
-            	#if( pkgName == "mono-devel"):
181
-            	    #print "build dendent packages len 4 mono-devel:", len(pkg.buildrequires), pkg.buildrequires[0].package
180
+                #if( pkgName == "mono-devel"):
181
+                    #print "build dendent packages len 4 mono-devel:", len(pkg.buildrequires), pkg.buildrequires[0].package
182 182
                 for dpkg in pkg.buildrequires:
183 183
                     dependentPackages.append(dpkg.package)
184 184
         return dependentPackages
... ...
@@ -14,8 +14,8 @@ class StringUtils(object):
14 14
         return inputstring[index+1:]
15 15
         
16 16
     def getSpecNameFromPackageName(self, pkgName):
17
-    	id = pkgName.rfind("-")
18
-    	if (id != -1):
19
-    		return pkgName[0:id];
20
-    	else:
21
-    		return pkgName;
17
+        id = pkgName.rfind("-")
18
+        if (id != -1):
19
+            return pkgName[0:id];
20
+        else:
21
+            return pkgName;
... ...
@@ -30,13 +30,13 @@ class ThreadPool(object):
30 30
     @staticmethod
31 31
     def addWorkerThread(workerThreadName):
32 32
         workerThread = WorkerThread.WorkerThread(
33
-				ThreadPool.statusEvent,
34
-				workerThreadName,
35
-				ThreadPool.mapPackageToCycle,
36
-				ThreadPool.listAvailableCyclicPackages,
37
-				ThreadPool.logger,
38
-				ThreadPool.listBuildOptionPackages,
39
-				ThreadPool.pkgBuildOptionFile)
33
+                ThreadPool.statusEvent,
34
+                workerThreadName,
35
+                ThreadPool.mapPackageToCycle,
36
+                ThreadPool.listAvailableCyclicPackages,
37
+                ThreadPool.logger,
38
+                ThreadPool.listBuildOptionPackages,
39
+                ThreadPool.pkgBuildOptionFile)
40 40
         ThreadPool.mapWorkerThreads[workerThreadName]=workerThread
41 41
    
42 42
     @staticmethod