From 24c31d138fe7b9ff14870b921220bdf709af20cc Mon Sep 17 00:00:00 2001 From: Marc Guenther Date: Thu, 15 Mar 2012 19:06:36 +0100 Subject: [PATCH] [Fixed JENKINS-8043] "Reload Configuration from Disk" broke swarm clients When Reloading Configuration from Disk in Jenkins, all swarm clients were in an unusable state afterwards (eg. missing their labels). This happened because Swarm Clients were not written into the configuration file, and got removed when reloading the config. This patch re-adds all previously existing swarm clients after reloading the config file. --- core/src/main/java/jenkins/model/Jenkins.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index df4fd000c2..150a891453 100755 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -149,6 +149,7 @@ import hudson.security.csrf.CrumbIssuer; import hudson.slaves.Cloud; import hudson.slaves.ComputerListener; import hudson.slaves.DumbSlave; +import hudson.slaves.EphemeralNode; import hudson.slaves.NodeDescriptor; import hudson.slaves.NodeList; import hudson.slaves.NodeProperty; @@ -212,9 +213,6 @@ import org.jvnet.hudson.reactor.TaskBuilder; import org.jvnet.hudson.reactor.TaskGraphBuilder; import org.jvnet.hudson.reactor.Reactor; import org.jvnet.hudson.reactor.TaskGraphBuilder.Handle; -import org.kohsuke.accmod.Restricted; -import org.kohsuke.accmod.restrictions.DoNotUse; -import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.args4j.Argument; import org.kohsuke.args4j.Option; import org.kohsuke.stapler.Ancestor; @@ -2396,6 +2394,10 @@ public class Jenkins extends AbstractCIBase implements ModifiableItemGroup newSlaves = new ArrayList(slaves); + for (Node n: oldSlaves) { + if (n instanceof EphemeralNode) { + if(!newSlaves.contains(n)) { + newSlaves.add(n); + } + } + } + setNodes(newSlaves); + } } }); -- GitLab