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>