You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2013/07/24 21:25:39 UTC

[2/4] git commit: Fixed Slave, Cloud and Retention strategy for Jenkins.

Fixed Slave, Cloud and Retention strategy for Jenkins.

Review: https://reviews.apache.org/r/12847


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/2996a80d
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/2996a80d
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/2996a80d

Branch: refs/heads/master
Commit: 2996a80d4a9ce5978d72d8aa27039ac92be84bff
Parents: 3489d01
Author: Vinod Kone <vi...@twitter.com>
Authored: Tue Jul 23 01:20:33 2013 -0700
Committer: Vinod Kone <vi...@twitter.com>
Committed: Wed Jul 24 12:25:11 2013 -0700

----------------------------------------------------------------------
 .../org/jenkinsci/plugins/mesos/MesosCloud.java | 10 +---
 .../plugins/mesos/MesosRetentionStrategy.java   |  4 +-
 .../org/jenkinsci/plugins/mesos/MesosSlave.java | 59 ++++++++++----------
 .../mesos/MesosSlave/configure-entries.jelly    | 24 ++------
 4 files changed, 37 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/2996a80d/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosCloud.java
----------------------------------------------------------------------
diff --git a/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosCloud.java b/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosCloud.java
index 60154e3..dcde9a3 100644
--- a/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosCloud.java
+++ b/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosCloud.java
@@ -40,6 +40,8 @@ public class MesosCloud extends Cloud {
   private String master;
   private String description;
   private String labelString = "mesos";
+  private String idleTerminationMinutes = "1"; // TODO(vinod): Make this configurable.
+
   private static String staticMaster;
 
   private static final Logger LOGGER = Logger.getLogger(MesosCloud.class.getName());
@@ -109,13 +111,7 @@ public class MesosCloud extends Cloud {
 
   private MesosSlave doProvision(int numExecutors) throws Descriptor.FormException, IOException {
     String name = "mesos-jenkins-" + UUID.randomUUID().toString();
-    String nodeDescription = labelString;
-    String remoteFS = "jenkins";
-    Mode mode = Mode.NORMAL;
-    List<? extends NodeProperty<?>> nodeProperties = null;
-
-    return new MesosSlave(name, nodeDescription, remoteFS, numExecutors, mode, labelString,
-        nodeProperties, "1", "0");
+    return new MesosSlave(name, ""+numExecutors, labelString, idleTerminationMinutes);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/mesos/blob/2996a80d/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosRetentionStrategy.java
----------------------------------------------------------------------
diff --git a/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosRetentionStrategy.java b/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosRetentionStrategy.java
index 17da814..ae6c78c 100644
--- a/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosRetentionStrategy.java
+++ b/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosRetentionStrategy.java
@@ -28,15 +28,13 @@ public class MesosRetentionStrategy extends RetentionStrategy<MesosComputer> {
   private static final Logger LOGGER = Logger
       .getLogger(MesosRetentionStrategy.class.getName());
 
-  @DataBoundConstructor
   public MesosRetentionStrategy(String idleTerminationMinutes) {
     int value = IDLE_TERMINATION_MINUTES;
     if (idleTerminationMinutes != null && idleTerminationMinutes.trim() != "") {
       try {
         value = Integer.parseInt(idleTerminationMinutes);
       } catch (NumberFormatException nfe) {
-        LOGGER.info("Malformed default idleTermination value: "
-            + idleTerminationMinutes);
+        LOGGER.info("Malformed idleTermination value: " + idleTerminationMinutes);
       }
     }
     this.idleTerminationMinutes = value;

http://git-wip-us.apache.org/repos/asf/mesos/blob/2996a80d/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosSlave.java
----------------------------------------------------------------------
diff --git a/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosSlave.java b/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosSlave.java
index eed0ba3..7912129 100644
--- a/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosSlave.java
+++ b/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosSlave.java
@@ -1,6 +1,8 @@
 package org.jenkinsci.plugins.mesos;
 
+import hudson.Extension;
 import hudson.model.Computer;
+import hudson.model.Descriptor;
 import hudson.model.Descriptor.FormException;
 import hudson.model.Hudson;
 import hudson.model.Slave;
@@ -21,40 +23,22 @@ public class MesosSlave extends Slave {
   private static final Logger LOGGER = Logger.getLogger(MesosSlave.class
       .getName());
 
-  private final String idleTerminationMinutes;
-  private final String limitedBuildCount;
-  private final String clusterId;
-
   @DataBoundConstructor
-  public MesosSlave(String name, String description, String remoteFS,
-      int numExecutors, Mode mode, String labelString,
-      List<? extends NodeProperty<?>> nodeProperties,
-      String idleTerminationMinutes, String limitedBuildCount)
-      throws FormException, IOException {
-
-    this(name, description, remoteFS, numExecutors, Mode.NORMAL, labelString,
-        new MesosComputerLauncher(name), null, Collections
-            .<NodeProperty<?>> emptyList(), idleTerminationMinutes,
-        limitedBuildCount);
-  }
-
-  public MesosSlave(String name, String nodeDescription, String remoteFS,
-      int numExecutors, Mode mode, String labelString,
-      ComputerLauncher launcher,
-      RetentionStrategy<MesosComputer> retentionStrategy,
-      List<? extends NodeProperty<?>> nodeProperties,
-      String idleTerminationMinutes, String limitedBuildCount)
-      throws FormException, IOException {
-
-    super(name, nodeDescription, remoteFS, numExecutors, Mode.NORMAL,
-        labelString, launcher, new MesosRetentionStrategy(
-            idleTerminationMinutes), Collections.<NodeProperty<?>> emptyList());
+  public MesosSlave(
+      String name, String numExecutors, String labelString, String idleTerminationMinutes)
+      throws FormException, IOException
+  {
+    super(name,
+          labelString, // node description.
+          "jenkins",   // remoteFS.
+          numExecutors,
+          Mode.NORMAL,
+          labelString, // Label.
+          new MesosComputerLauncher(name),
+          new MesosRetentionStrategy(idleTerminationMinutes),
+          Collections.<NodeProperty<?>> emptyList());
 
     LOGGER.info("Constructing Mesos slave");
-
-    this.idleTerminationMinutes = idleTerminationMinutes;
-    this.limitedBuildCount = limitedBuildCount;
-    this.clusterId = null;
   }
 
   public void terminate() {
@@ -75,6 +59,19 @@ public class MesosSlave extends Slave {
     }
   }
 
+  @Override
+  public DescriptorImpl getDescriptor() {
+    return (DescriptorImpl) super.getDescriptor();
+  }
+
+  @Extension
+  public static class DescriptorImpl extends SlaveDescriptor {
+    @Override
+    public String getDisplayName() {
+      return "Mesos Slave";
+    }
+  }
+
   private String getInstanceId() {
     return getNodeName();
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/2996a80d/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosSlave/configure-entries.jelly
----------------------------------------------------------------------
diff --git a/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosSlave/configure-entries.jelly b/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosSlave/configure-entries.jelly
index 24448a8..18a250d 100644
--- a/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosSlave/configure-entries.jelly
+++ b/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosSlave/configure-entries.jelly
@@ -1,29 +1,15 @@
 <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
 
-        <f:entry title="${%Mesos Cluster ID}" field="mesosClusterID">
-          <f:readOnlyTextbox />
-        </f:entry>
-
-        <f:entry title="${%Description}" >
-          <f:textbox field="description" />
-        </f:entry>
-
         <f:entry title="${%# of executors}" field="numExecutors">
-          <f:textbox />
+          <f:readOnlyTextbox />
         </f:entry>
 
         <f:entry title="${%Labels}" field="labelString">
-          <f:textbox />
+          <f:readOnlyTextbox />
         </f:entry>
 
-        <f:entry title="${%Idle termination time}" field="idleTerminationMinutes">
-            <f:textbox />
+        <f:entry title="${%Idle Termination Minutes}" field="idleTerminationMinutes">
+          <f:readOnlyTextbox />
         </f:entry>
 
-       <f:entry title="${%Terminate After Limited Builds}" description="${%Number of builds to allow before terminate the slave; use 0 for NEVER.}">
-
-       <f:textbox default="0" field="limitedBuildCount"/>
-
-   </f:entry>
-
-</j:jelly>
\ No newline at end of file
+</j:jelly>