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
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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