Merger related cleanup

* Include the merge request job uuid in the MergeCompletedEvent so
  so that it can be associated with the originating request.
* repr() the MergeCompletedEvent with interesting information so
  the logs are more useful.
* Remove some unused methods from the scheduler that are no longer
  needed since merge complete events are submitted directly from
  the merge server.

Change-Id: I94db0d1cecfdcdb3745151f66b11749cd9850955
This commit is contained in:
James E. Blair
2021-08-19 09:58:02 -07:00
parent d23717896b
commit 15b589c1e4
3 changed files with 13 additions and 24 deletions
+1
View File
@@ -358,6 +358,7 @@ class BaseMergeServer(metaclass=ABCMeta):
)
else:
event = MergeCompletedEvent(
merge_request.uuid,
merge_request.build_set_uuid,
merged,
updated,
+12 -2
View File
@@ -4085,6 +4085,7 @@ class BuildCompletedEvent(ResultEvent):
class MergeCompletedEvent(ResultEvent):
"""A remote merge operation has completed
:arg str request_uuid: The UUID of the merge request job.
:arg str build_set_uuid: The UUID of the build_set which is ready.
:arg bool merged: Whether the merge succeeded (changes with refs).
:arg bool updated: Whether the repo was updated (changes without refs).
@@ -4094,8 +4095,9 @@ class MergeCompletedEvent(ResultEvent):
commit in the merge list appears (changes without refs).
"""
def __init__(self, build_set_uuid, merged, updated, commit,
files, repo_state, item_in_branches):
def __init__(self, request_uuid, build_set_uuid, merged, updated,
commit, files, repo_state, item_in_branches):
self.request_uuid = request_uuid
self.build_set_uuid = build_set_uuid
self.merged = merged
self.updated = updated
@@ -4104,8 +4106,15 @@ class MergeCompletedEvent(ResultEvent):
self.repo_state = repo_state or {}
self.item_in_branches = item_in_branches or []
def __repr__(self):
return ('<MergeCompletedEvent job: %s buildset: %s merged: %s '
'updated: %s commit: %s>' % (
self.request_uuid, self.build_set_uuid,
self.merged, self.updated, self.commit))
def toDict(self):
return {
"request_uuid": self.request_uuid,
"build_set_uuid": self.build_set_uuid,
"merged": self.merged,
"updated": self.updated,
@@ -4118,6 +4127,7 @@ class MergeCompletedEvent(ResultEvent):
@classmethod
def fromDict(cls, data):
return cls(
data.get("request_uuid"),
data.get("build_set_uuid"),
data.get("merged"),
data.get("updated"),
-22
View File
@@ -608,28 +608,6 @@ class Scheduler(threading.Thread):
except Exception:
self.log.exception("Exception reporting runtime stats")
def onMergeCompleted(self, build_set, merged, updated,
commit, files, repo_state, item_in_branches):
tenant_name = build_set.item.pipeline.tenant.name
pipeline_name = build_set.item.pipeline.name
event = MergeCompletedEvent(
build_set.uuid,
merged,
updated,
commit,
files,
repo_state,
item_in_branches,
)
self.pipeline_result_events[tenant_name][pipeline_name].put(event)
def onFilesChangesCompleted(self, build_set, files):
tenant_name = build_set.item.pipeline.tenant.name
pipeline_name = build_set.item.pipeline.name
event = FilesChangesCompletedEvent(build_set.uuid, files)
self.pipeline_result_events[tenant_name][pipeline_name].put(event)
def onNodesProvisioned(self, req):
tenant_name = req.tenant_name
pipeline_name = req.pipeline_name