summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-10-10 14:38:05 +0000
committerGerrit Code Review <review@openstack.org>2022-10-10 14:38:05 +0000
commit51aeec13e682e2341d6c65379ef558bcb4d62ee0 (patch)
tree3c60631c824de51b1241282a4869b7b131b4de70
parentb9b526e9513d04f0ee35d65ba7d4e06e2e3b106f (diff)
parentd864d83ade70aed91a15560fbca0f075eaaefeee (diff)
downloadzuul-51aeec13e682e2341d6c65379ef558bcb4d62ee0.tar.gz
Merge "End node request span when result event is sent"
-rw-r--r--tests/unit/test_tracing.py5
-rw-r--r--zuul/nodepool.py8
2 files changed, 9 insertions, 4 deletions
diff --git a/tests/unit/test_tracing.py b/tests/unit/test_tracing.py
index ff20f84f1..525876f50 100644
--- a/tests/unit/test_tracing.py
+++ b/tests/unit/test_tracing.py
@@ -193,11 +193,14 @@ class TestTracing(ZuulTestCase):
self.log.debug("Received:\n%s", item)
merge_job = self.getSpan('Merge')
self.log.debug("Received:\n%s", merge_job)
+ node_request = self.getSpan('RequestNodes')
+ self.log.debug("Received:\n%s", node_request)
build = self.getSpan('Build')
self.log.debug("Received:\n%s", build)
jobexec = self.getSpan('JobExecution')
self.log.debug("Received:\n%s", jobexec)
self.assertEqual(item.trace_id, buildset.trace_id)
+ self.assertEqual(item.trace_id, node_request.trace_id)
self.assertEqual(item.trace_id, build.trace_id)
self.assertNotEqual(item.span_id, jobexec.span_id)
self.assertTrue(buildset.start_time_unix_nano >=
@@ -210,6 +213,8 @@ class TestTracing(ZuulTestCase):
buildset.end_time_unix_nano)
self.assertEqual(jobexec.parent_span_id,
build.span_id)
+ self.assertEqual(node_request.parent_span_id,
+ buildset.span_id)
self.assertEqual(build.parent_span_id,
buildset.span_id)
self.assertEqual(merge_job.parent_span_id,
diff --git a/zuul/nodepool.py b/zuul/nodepool.py
index 1118fe0c2..6a6afce58 100644
--- a/zuul/nodepool.py
+++ b/zuul/nodepool.py
@@ -84,6 +84,10 @@ class Nodepool(object):
del self.election
def _sendNodesProvisionedEvent(self, request):
+ tracing.endSavedSpan(request.span_info, attributes={
+ "request_id": request.id,
+ "state": request.state,
+ })
tenant_name = request.tenant_name
pipeline_name = request.pipeline_name
event = model.NodesProvisionedEvent(request.id, request.build_set_uuid)
@@ -101,10 +105,6 @@ class Nodepool(object):
continue
if (request.state in {model.STATE_FULFILLED,
model.STATE_FAILED}):
- tracing.endSavedSpan(request.span_info, attributes={
- "request_id": request.id,
- "state": request.state,
- })
self._sendNodesProvisionedEvent(request)
# Now resume normal event processing.
self.stop_watcher_event.wait()