Move makemergeritem into model

This function appears twice since something like it is used by
both the merger and executor clients.  Centralize it in the model.

Change-Id: I376a263ef28373c94da5bf0cce41f8f761915e18
This commit is contained in:
James E. Blair
2017-04-27 09:59:06 -07:00
parent 2d079ab813
commit a04b079f4c
3 changed files with 40 additions and 75 deletions

View File

@@ -437,40 +437,6 @@ class PipelineManager(object):
canceled = True
return canceled
def _makeMergerItem(self, item):
# Create a dictionary with all info about the item needed by
# the merger.
number = None
patchset = None
refspec = None
branch = None
oldrev = None
newrev = None
if hasattr(item.change, 'number'):
number = item.change.number
patchset = item.change.patchset
refspec = item.change.refspec
branch = item.change.branch
elif hasattr(item.change, 'newrev'):
oldrev = item.change.oldrev
newrev = item.change.newrev
source = item.change.project.source
connection_name = source.connection.connection_name
project = item.change.project.name
return dict(project=project,
url=source.getGitUrl(item.change.project),
connection_name=connection_name,
merge_mode=item.current_build_set.getMergeMode(),
refspec=refspec,
branch=branch,
ref=item.current_build_set.ref,
number=number,
patchset=patchset,
oldrev=oldrev,
newrev=newrev,
)
def _loadDynamicLayout(self, item):
# Load layout
# Late import to break an import loop
@@ -539,7 +505,7 @@ class PipelineManager(object):
dependent_items = self.getDependentItems(item)
dependent_items.reverse()
all_items = dependent_items + [item]
merger_items = map(self._makeMergerItem, all_items)
merger_items = [i.makeMergerItem() for i in all_items]
build_set = item.current_build_set
build_set.merge_state = build_set.PENDING
self.sched.merger.mergeChanges(merger_items,