From 2f10c6a06f3f60da632b78387d7933c1b72ab153 Mon Sep 17 00:00:00 2001 From: Timothy Chavez Date: Thu, 20 Aug 2015 00:14:19 -0500 Subject: [PATCH] Send node labels back on build completion Zuul will not necessarily know which node type the job it dispatches to Jenkins will run on, so we send that information back to Zuul on build completion so it can use it to submit metrics in that context. Change-Id: Ibca938fcf8a65facd7e39dab4eb994dfc637722a --- .../hudson/plugins/gearman/StartJobWorker.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/hudson/plugins/gearman/StartJobWorker.java b/src/main/java/hudson/plugins/gearman/StartJobWorker.java index ecc0f0b..33bfd83 100644 --- a/src/main/java/hudson/plugins/gearman/StartJobWorker.java +++ b/src/main/java/hudson/plugins/gearman/StartJobWorker.java @@ -28,6 +28,8 @@ import hudson.model.Cause; import hudson.model.Computer; import hudson.model.Hudson; import hudson.model.Queue; +import hudson.model.labels.LabelAtom; +import hudson.model.Node; import hudson.model.TextParameterValue; import hudson.model.queue.QueueTaskFuture; import hudson.slaves.OfflineCause; @@ -37,6 +39,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -99,6 +102,18 @@ public class StartJobWorker extends AbstractGearmanFunction { if (result != null) { data.put("result", result.toString()); } + + ArrayList nodeLabels = new ArrayList(); + Node node = build.getBuiltOn(); + if (node != null) { + Set nodeLabelAtoms = node.getAssignedLabels(); + for (LabelAtom labelAtom : nodeLabelAtoms) { + nodeLabels.add(labelAtom.getDisplayName()); + } + } + data.put("node_labels", nodeLabels); + data.put("node_name", node.getNodeName()); + Gson gson = new Gson(); return gson.toJson(data); }