def _JoinBuildTableClActionTable(self, build_entries, claction_entries): """Perform the join operation in python. Args: build_entries: A list of buildTable entries. claction_entries: A list of claction_entries. Returns: A list fo claction.CLAction objects created by joining the list of builds and list of claction entries. """ claction_entries_by_build_id = {} for entry in claction_entries: entries = claction_entries_by_build_id.setdefault( entry.build_id.id, []) entries.append(entry) claction_list = [] for build_entry in build_entries: for claction_entry in claction_entries_by_build_id.get( build_entry.id, []): claction_list.append( clactions.CLAction( id=claction_entry.id, build_id=build_entry.id, action=claction_entry.action, reason=claction_entry.reason, build_config=build_entry.build_config, change_number=claction_entry.change_number, patch_number=claction_entry.patch_number, change_source=claction_entry.change_source, timestamp=claction_entry.timestamp)) return claction_list
def GetActionHistory(self, *args, **kwargs): """Get all the actions for all changes.""" # pylint: disable=W0613 values = [] for item, action_id in zip(self.clActionTable, itertools.count()): row = (action_id, item['build_id'], item['action'], item['reason'], self.buildTable[item['build_id']]['build_config'], item['change_number'], item['patch_number'], item['change_source'], item['timestamp']) values.append(row) return clactions.CLActionHistory( clactions.CLAction(*row) for row in values)
def _AppendToHistory(self, patch, action, **kwargs): kwargs.setdefault('id', -1) kwargs.setdefault('build_id', -1) kwargs.setdefault('reason', '') kwargs.setdefault('build_config', '') kwargs['timestamp'] = (datetime.datetime.today() + datetime.timedelta(self._days_forward)) self._days_forward += 1 kwargs['action'] = action kwargs['change_number'] = int(patch.gerrit_number) kwargs['patch_number'] = int(patch.patch_number) kwargs['change_source'] = clactions.BoolToChangeSource(patch.internal) action = clactions.CLAction(**kwargs) self.action_history.append(action) return action