From df5a1392d6f91ccb44a99721c7d847da242121bb Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Fri, 8 Jan 2016 11:17:15 +0000 Subject: [PATCH] taskdata: refactor get_providermap Added optional parameter 'prefix' to filter out names that don't start with specified prefix. Changed existing call of get_providermap according to changed API. Optimized the code: got rid of extra loop and temporary list variable virts. Signed-off-by: Ed Bartosh Signed-off-by: Elliot Smith Signed-off-by: Richard Purdie --- lib/bb/runqueue.py | 2 +- lib/bb/taskdata.py | 17 +++++++---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index da7059b17f7..57b1cca525f 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -808,7 +808,7 @@ class RunQueueData: invalidate_task(fn, st, True) # Create and print to the logs a virtual/xxxx -> PN (fn) table - virtmap = taskData.get_providermap() + virtmap = taskData.get_providermap(prefix="virtual/") virtpnmap = {} for v in virtmap: virtpnmap[v] = self.dataCache.pkg_fn[virtmap[v]] diff --git a/lib/bb/taskdata.py b/lib/bb/taskdata.py index 4d12b3325bf..b08387067e4 100644 --- a/lib/bb/taskdata.py +++ b/lib/bb/taskdata.py @@ -612,17 +612,14 @@ class TaskData: break # self.dump_data() - def get_providermap(self): - virts = [] - virtmap = {} - + def get_providermap(self, prefix=None): + provmap = {} for name in self.build_names_index: - if name.startswith("virtual/"): - virts.append(name) - for v in virts: - if self.have_build_target(v): - virtmap[v] = self.fn_index[self.get_provider(v)[0]] - return virtmap + if prefix and not name.startswith(prefix): + continue + if self.have_build_target(name): + provmap[name] = self.fn_index[self.get_provider(name)[0]] + return provmap def dump_data(self): """ -- 2.47.3