diff --git a/core/src/main/java/jenkins/agents/CloudSet.java b/core/src/main/java/jenkins/agents/CloudSet.java index 5229dd06f1..00a27b0469 100644 --- a/core/src/main/java/jenkins/agents/CloudSet.java +++ b/core/src/main/java/jenkins/agents/CloudSet.java @@ -39,6 +39,11 @@ import hudson.util.FormValidation; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; @@ -248,6 +253,25 @@ public class CloudSet extends AbstractModelObject implements Describable(Jenkins.get().clouds); + Collections.sort(clouds, Comparator.comparingInt(c -> getIndexOf(namesList, c))); + Jenkins.get().clouds.replaceBy(clouds); + rsp.sendRedirect2("."); + } + + private static int getIndexOf(List namesList, Cloud cloud) { + var i = namesList.indexOf(cloud.name); + return i == -1 ? Integer.MAX_VALUE : i; + } + @Extension public static class DescriptorImpl extends Descriptor implements StaplerProxy { diff --git a/core/src/main/resources/jenkins/agents/CloudSet/index.jelly b/core/src/main/resources/jenkins/agents/CloudSet/index.jelly index 3062c25ad0..4c14e73c21 100644 --- a/core/src/main/resources/jenkins/agents/CloudSet/index.jelly +++ b/core/src/main/resources/jenkins/agents/CloudSet/index.jelly @@ -26,8 +26,14 @@ THE SOFTWARE. Entrance to the configuration page --> - + + + +