summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/layerindexlib
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2018-10-11 17:18:33 -0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-10-18 10:59:26 +0100
commitb33c179aa978b6145c5c73c6ce545f9a68ffca28 (patch)
tree106e4a5392b52b0e6e9c84872aacdb8d6e1ee511 /bitbake/lib/layerindexlib
parent64fe513327837d0ac7603b76558c791db28c73f1 (diff)
downloadpoky-b33c179aa978b6145c5c73c6ce545f9a68ffca28.tar.gz
bitbake: layerindexlib: Fix various type checking errors
In the list_obj function, we can't check if the requested object is 'in', the index data -- as it's actually an attribute of the object. Move to hasattr. The remaining items were incorrect usages of 'type' for class type comparison. Instead move to 'isinstance'. Remaing 'type' comparisons are still valid. The code was also reordered slightly to avoid a lot of: if not isinstance(x, y): ... else: ... reordering it removes the not and makes the code slightly easier to read. (Bitbake rev: cddea4282820ef10ad4863d87327891ea9383916) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/layerindexlib')
-rw-r--r--bitbake/lib/layerindexlib/__init__.py51
-rw-r--r--bitbake/lib/layerindexlib/cooker.py19
2 files changed, 36 insertions, 34 deletions
diff --git a/bitbake/lib/layerindexlib/__init__.py b/bitbake/lib/layerindexlib/__init__.py
index 74f3e2e93e..cb79cb37d7 100644
--- a/bitbake/lib/layerindexlib/__init__.py
+++ b/bitbake/lib/layerindexlib/__init__.py
@@ -448,7 +448,7 @@ layerBranches set. If not, they are effectively blank.'''
448This function is used to implement debugging and provide the user info. 448This function is used to implement debugging and provide the user info.
449''' 449'''
450 for lix in self.indexes: 450 for lix in self.indexes:
451 if object not in lix: 451 if not hasattr(lix, object):
452 continue 452 continue
453 453
454 logger.plain ('') 454 logger.plain ('')
@@ -1046,15 +1046,15 @@ class LayerBranch(LayerIndexItemObj):
1046 self.id = id 1046 self.id = id
1047 self.collection = collection 1047 self.collection = collection
1048 self.version = version 1048 self.version = version
1049 if type(layer) != type(LayerItem): 1049 if isinstance(layer, LayerItem):
1050 self.layer_id = layer
1051 else:
1052 self.layer = layer 1050 self.layer = layer
1053
1054 if type(branch) != type(Branch):
1055 self.branch_id = branch
1056 else: 1051 else:
1052 self.layer_id = layer
1053
1054 if isinstance(branch, Branch):
1057 self.branch = branch 1055 self.branch = branch
1056 else:
1057 self.branch_id = branch
1058 1058
1059 self.vcs_subdir = vcs_subdir 1059 self.vcs_subdir = vcs_subdir
1060 self.vcs_last_fetch = vcs_last_fetch 1060 self.vcs_last_fetch = vcs_last_fetch
@@ -1088,7 +1088,7 @@ class LayerBranch(LayerIndexItemObj):
1088 1088
1089 @layer.setter 1089 @layer.setter
1090 def layer(self, value): 1090 def layer(self, value):
1091 if type(value) != type(LayerItem): 1091 if not isinstance(value, LayerItem):
1092 raise TypeError('value is not a LayerItem') 1092 raise TypeError('value is not a LayerItem')
1093 if self.index != value.index: 1093 if self.index != value.index:
1094 raise AttributeError('Object and value do not share the same index and thus key set.') 1094 raise AttributeError('Object and value do not share the same index and thus key set.')
@@ -1122,7 +1122,7 @@ class LayerBranch(LayerIndexItemObj):
1122 1122
1123 @branch.setter 1123 @branch.setter
1124 def branch(self, value): 1124 def branch(self, value):
1125 if type(value) != type(LayerItem): 1125 if not isinstance(value, LayerItem):
1126 raise TypeError('value is not a LayerItem') 1126 raise TypeError('value is not a LayerItem')
1127 if self.index != value.index: 1127 if self.index != value.index:
1128 raise AttributeError('Object and value do not share the same index and thus key set.') 1128 raise AttributeError('Object and value do not share the same index and thus key set.')
@@ -1181,7 +1181,7 @@ class LayerIndexItemObj_LayerBranch(LayerIndexItemObj):
1181 1181
1182 @layerbranch.setter 1182 @layerbranch.setter
1183 def layerbranch(self, value): 1183 def layerbranch(self, value):
1184 if type(value) != type(LayerBranch): 1184 if not isinstance(value, LayerBranch):
1185 raise TypeError('value (%s) is not a layerBranch' % type(value)) 1185 raise TypeError('value (%s) is not a layerBranch' % type(value))
1186 if self.index != value.index: 1186 if self.index != value.index:
1187 raise AttributeError('Object and value do not share the same index and thus key set.') 1187 raise AttributeError('Object and value do not share the same index and thus key set.')
@@ -1207,14 +1207,14 @@ class LayerIndexItemObj_LayerBranch(LayerIndexItemObj):
1207class LayerDependency(LayerIndexItemObj_LayerBranch): 1207class LayerDependency(LayerIndexItemObj_LayerBranch):
1208 def define_data(self, id, layerbranch, dependency, required=True): 1208 def define_data(self, id, layerbranch, dependency, required=True):
1209 self.id = id 1209 self.id = id
1210 if type(layerbranch) != type(LayerBranch): 1210 if isinstance(layerbranch, LayerBranch):
1211 self.layerbranch_id = layerbranch
1212 else:
1213 self.layerbranch = layerbranch 1211 self.layerbranch = layerbranch
1214 if type(dependency) != type(LayerDependency):
1215 self.dependency_id = dependency
1216 else: 1212 else:
1213 self.layerbranch_id = layerbranch
1214 if isinstance(dependency, LayerDependency):
1217 self.dependency = dependency 1215 self.dependency = dependency
1216 else:
1217 self.dependency_id = dependency
1218 self.required = required 1218 self.required = required
1219 1219
1220 @property 1220 @property
@@ -1240,7 +1240,7 @@ class LayerDependency(LayerIndexItemObj_LayerBranch):
1240 1240
1241 @dependency.setter 1241 @dependency.setter
1242 def dependency(self, value): 1242 def dependency(self, value):
1243 if type(value) != type(LayerDependency): 1243 if not isinstance(value, LayerDependency):
1244 raise TypeError('value (%s) is not a dependency' % type(value)) 1244 raise TypeError('value (%s) is not a dependency' % type(value))
1245 if self.index != value.index: 1245 if self.index != value.index:
1246 raise AttributeError('Object and value do not share the same index and thus key set.') 1246 raise AttributeError('Object and value do not share the same index and thus key set.')
@@ -1288,10 +1288,10 @@ class Recipe(LayerIndexItemObj_LayerBranch):
1288 self.inherits = inherits 1288 self.inherits = inherits
1289 self.updated = updated or datetime.datetime.today().isoformat() 1289 self.updated = updated or datetime.datetime.today().isoformat()
1290 self.blacklisted = blacklisted 1290 self.blacklisted = blacklisted
1291 if type(layerbranch) != type(LayerBranch): 1291 if isinstance(layerbranch, LayerBranch):
1292 self.layerbranch_id = layerbranch
1293 else:
1294 self.layerbranch = layerbranch 1292 self.layerbranch = layerbranch
1293 else:
1294 self.layerbranch_id = layerbranch
1295 1295
1296 @property 1296 @property
1297 def fullpath(self): 1297 def fullpath(self):
@@ -1324,10 +1324,10 @@ class Machine(LayerIndexItemObj_LayerBranch):
1324 self.id = id 1324 self.id = id
1325 self.name = name 1325 self.name = name
1326 self.description = description 1326 self.description = description
1327 if type(layerbranch) != type(LayerBranch): 1327 if isinstance(layerbranch, LayerBranch):
1328 self.layerbranch_id = layerbranch
1329 else:
1330 self.layerbranch = layerbranch 1328 self.layerbranch = layerbranch
1329 else:
1330 self.layerbranch_id = layerbranch
1331 self.updated = updated or datetime.datetime.today().isoformat() 1331 self.updated = updated or datetime.datetime.today().isoformat()
1332 1332
1333class Distro(LayerIndexItemObj_LayerBranch): 1333class Distro(LayerIndexItemObj_LayerBranch):
@@ -1337,13 +1337,12 @@ class Distro(LayerIndexItemObj_LayerBranch):
1337 self.id = id 1337 self.id = id
1338 self.name = name 1338 self.name = name
1339 self.description = description 1339 self.description = description
1340 if type(layerbranch) != type(LayerBranch): 1340 if isinstance(layerbranch, LayerBranch):
1341 self.layerbranch_id = layerbranch
1342 else:
1343 self.layerbranch = layerbranch 1341 self.layerbranch = layerbranch
1342 else:
1343 self.layerbranch_id = layerbranch
1344 self.updated = updated or datetime.datetime.today().isoformat() 1344 self.updated = updated or datetime.datetime.today().isoformat()
1345 1345
1346
1347# When performing certain actions, we may need to sort the data. 1346# When performing certain actions, we may need to sort the data.
1348# This will allow us to keep it consistent from run to run. 1347# This will allow us to keep it consistent from run to run.
1349def sort_entry(item): 1348def sort_entry(item):
diff --git a/bitbake/lib/layerindexlib/cooker.py b/bitbake/lib/layerindexlib/cooker.py
index 248a597754..848f0e2ee2 100644
--- a/bitbake/lib/layerindexlib/cooker.py
+++ b/bitbake/lib/layerindexlib/cooker.py
@@ -136,10 +136,13 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
136 layerrev = self._run_command('git rev-parse HEAD', layerpath, default="<unknown>") 136 layerrev = self._run_command('git rev-parse HEAD', layerpath, default="<unknown>")
137 137
138 for remotes in self._run_command('git remote -v', layerpath, default="").split("\n"): 138 for remotes in self._run_command('git remote -v', layerpath, default="").split("\n"):
139 remote = remotes.split("\t")[1].split(" ")[0] 139 if not remotes:
140 if "(fetch)" == remotes.split("\t")[1].split(" ")[1]: 140 layerurl = self._handle_git_remote(layerpath)
141 layerurl = self._handle_git_remote(remote) 141 else:
142 break 142 remote = remotes.split("\t")[1].split(" ")[0]
143 if "(fetch)" == remotes.split("\t")[1].split(" ")[1]:
144 layerurl = self._handle_git_remote(remote)
145 break
143 146
144 layerItemId += 1 147 layerItemId += 1
145 index.layerItems[layerItemId] = layerindexlib.LayerItem(index, None) 148 index.layerItems[layerItemId] = layerindexlib.LayerItem(index, None)
@@ -297,7 +300,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
297 300
298 for layerBranchId in index.layerBranches: 301 for layerBranchId in index.layerBranches:
299 # load_bblayers uses the description to cache the actual path... 302 # load_bblayers uses the description to cache the actual path...
300 machine_path = index.layerBranches[layerBranchId].getDescription() 303 machine_path = index.layerBranches[layerBranchId].layer.description
301 machine_path = os.path.join(machine_path, 'conf/machine') 304 machine_path = os.path.join(machine_path, 'conf/machine')
302 if os.path.isdir(machine_path): 305 if os.path.isdir(machine_path):
303 for (dirpath, _, filenames) in os.walk(machine_path): 306 for (dirpath, _, filenames) in os.walk(machine_path):
@@ -310,7 +313,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
310 machine = layerindexlib.Machine(index, None) 313 machine = layerindexlib.Machine(index, None)
311 machine.define_data(id=machineId, name=fname[:-5], 314 machine.define_data(id=machineId, name=fname[:-5],
312 description=fname[:-5], 315 description=fname[:-5],
313 layerbranch=collection_layerbranch[entry]) 316 layerbranch=index.layerBranches[layerBranchId])
314 317
315 index.add_element("machines", [machine]) 318 index.add_element("machines", [machine])
316 319
@@ -321,7 +324,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
321 324
322 for layerBranchId in index.layerBranches: 325 for layerBranchId in index.layerBranches:
323 # load_bblayers uses the description to cache the actual path... 326 # load_bblayers uses the description to cache the actual path...
324 distro_path = index.layerBranches[layerBranchId].getDescription() 327 distro_path = index.layerBranches[layerBranchId].layer.description
325 distro_path = os.path.join(distro_path, 'conf/distro') 328 distro_path = os.path.join(distro_path, 'conf/distro')
326 if os.path.isdir(distro_path): 329 if os.path.isdir(distro_path):
327 for (dirpath, _, filenames) in os.walk(distro_path): 330 for (dirpath, _, filenames) in os.walk(distro_path):
@@ -334,7 +337,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
334 distro = layerindexlib.Distro(index, None) 337 distro = layerindexlib.Distro(index, None)
335 distro.define_data(id=distroId, name=fname[:-5], 338 distro.define_data(id=distroId, name=fname[:-5],
336 description=fname[:-5], 339 description=fname[:-5],
337 layerbranch=collection_layerbranch[entry]) 340 layerbranch=index.layerBranches[layerBranchId])
338 341
339 index.add_element("distros", [distro]) 342 index.add_element("distros", [distro])
340 343