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/25 00:55:19 UTC
[1/2] git commit: Moved Jenkins MesosCloud configuration options into
advanced section.
Updated Branches:
refs/heads/master 77db3cb32 -> 3fe79a867
Moved Jenkins MesosCloud configuration options into advanced section.
Review: https://reviews.apache.org/r/12927
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3fe79a86
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3fe79a86
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3fe79a86
Branch: refs/heads/master
Commit: 3fe79a86750448fd393f3608b422f7ac6a95aa02
Parents: 572f9e8
Author: Vinod Kone <vi...@twitter.com>
Authored: Wed Jul 24 15:12:57 2013 -0700
Committer: Vinod Kone <vi...@twitter.com>
Committed: Wed Jul 24 15:54:45 2013 -0700
----------------------------------------------------------------------
.../org/jenkinsci/plugins/mesos/MesosCloud.java | 15 +++---
.../plugins/mesos/MesosCloud/config.jelly | 48 ++++++++++----------
.../plugins/mesos/MesosCloud/help-master.html | 2 +-
3 files changed, 34 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/3fe79a86/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 e5f219f..29dbea5 100644
--- a/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosCloud.java
+++ b/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosCloud.java
@@ -40,13 +40,14 @@ public class MesosCloud extends Cloud {
private String master;
private String description;
- // TODO(vinod): Let the default values in MesosCloud/confg.jelly be inherited from here.
- private int slaveCpus = 1;
- private int slaveMem = 512; // MB.
- private int executorCpus = 1;
- private int maxExecutors = 2;
- private int executorMem = 128; // MB.
- private int idleTerminationMinutes = 3;
+ // Find the default values for these variables in
+ // src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly.
+ private final int slaveCpus;
+ private final int slaveMem; // MB.
+ private final int executorCpus;
+ private final int maxExecutors;
+ private final int executorMem; // MB.
+ private final int idleTerminationMinutes;
private final String labelString = "mesos";
http://git-wip-us.apache.org/repos/asf/mesos/blob/3fe79a86/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly
----------------------------------------------------------------------
diff --git a/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly b/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly
index 593e1eb..e12283a 100644
--- a/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly
+++ b/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly
@@ -8,29 +8,31 @@
<f:textbox field="description" />
</f:entry>
- <f:entry title="${%Jenkins Slave CPUs}">
- <f:number field="slaveCpus" clazz="required positive-number" value="1"/>
- </f:entry>
-
- <f:entry title="${%Jenkins Slave Memory in MB}">
- <f:number field="slaveMem" clazz="required positive-number" value="512"/>
- </f:entry>
-
- <f:entry title="${% Maximum number of Executors per Slave}">
- <f:number field="maxExecutors" clazz="required number" value="2"/>
- </f:entry>
-
- <f:entry title="${%Jenkins Executor CPUs}">
- <f:number field="executorCpus" clazz="required number" value="1"/>
- </f:entry>
-
- <f:entry title="${%Jenkins Executor Memory in MB}">
- <f:number field="executorMem" clazz="required positive-number" value="128"/>
- </f:entry>
-
- <f:entry title="${%Idle Termination Minutes}">
- <f:number field="idleTerminationMinutes" clazz="required positive-number" value="3"/>
- </f:entry>
+ <f:advanced>
+ <f:entry title="${%Jenkins Slave CPUs}">
+ <f:number field="slaveCpus" clazz="required positive-number" value="1"/>
+ </f:entry>
+
+ <f:entry title="${%Jenkins Slave Memory in MB}">
+ <f:number field="slaveMem" clazz="required positive-number" value="512"/>
+ </f:entry>
+
+ <f:entry title="${% Maximum number of Executors per Slave}">
+ <f:number field="maxExecutors" clazz="required number" value="2"/>
+ </f:entry>
+
+ <f:entry title="${%Jenkins Executor CPUs}">
+ <f:number field="executorCpus" clazz="required number" value="1"/>
+ </f:entry>
+
+ <f:entry title="${%Jenkins Executor Memory in MB}">
+ <f:number field="executorMem" clazz="required positive-number" value="128"/>
+ </f:entry>
+
+ <f:entry title="${%Idle Termination Minutes}">
+ <f:number field="idleTerminationMinutes" clazz="required positive-number" value="3"/>
+ </f:entry>
+ </f:advanced>
<f:validateButton title="${%Test Connection}" progress="${%Testing...}" method="testConnection" with="master"/>
</j:jelly>
http://git-wip-us.apache.org/repos/asf/mesos/blob/3fe79a86/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/help-master.html
----------------------------------------------------------------------
diff --git a/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/help-master.html b/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/help-master.html
index dc218be..ecf60cc 100644
--- a/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/help-master.html
+++ b/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/help-master.html
@@ -1,3 +1,3 @@
<div>
Specifies the hostname:port of the Mesos master.
-</div>
\ No newline at end of file
+</div>
[2/2] git commit: Fixed Jenkins to customize the maximum number of
executors per slave.
Posted by vi...@apache.org.
Fixed Jenkins to customize the maximum number of executors per slave.
Review: https://reviews.apache.org/r/12914
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/572f9e84
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/572f9e84
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/572f9e84
Branch: refs/heads/master
Commit: 572f9e84ea0de1f2284947df4e71218db1598025
Parents: 77db3cb
Author: Vinod Kone <vi...@twitter.com>
Authored: Wed Jul 24 13:01:51 2013 -0700
Committer: Vinod Kone <vi...@twitter.com>
Committed: Wed Jul 24 15:54:45 2013 -0700
----------------------------------------------------------------------
.../org/jenkinsci/plugins/mesos/MesosCloud.java | 30 +++++++++++---------
.../plugins/mesos/MesosCloud/config.jelly | 4 +++
2 files changed, 21 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/572f9e84/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 a096b12..e5f219f 100644
--- a/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosCloud.java
+++ b/jenkins/src/main/java/org/jenkinsci/plugins/mesos/MesosCloud.java
@@ -44,6 +44,7 @@ public class MesosCloud extends Cloud {
private int slaveCpus = 1;
private int slaveMem = 512; // MB.
private int executorCpus = 1;
+ private int maxExecutors = 2;
private int executorMem = 128; // MB.
private int idleTerminationMinutes = 3;
@@ -55,7 +56,7 @@ public class MesosCloud extends Cloud {
@DataBoundConstructor
public MesosCloud(String master, String description, int slaveCpus,
- int slaveMem, int executorCpus, int executorMem, int idleTerminationMinutes)
+ int slaveMem, int maxExecutors, int executorCpus, int executorMem, int idleTerminationMinutes)
throws NumberFormatException {
super("MesosCloud");
@@ -63,6 +64,7 @@ public class MesosCloud extends Cloud {
this.description = description;
this.slaveCpus = slaveCpus;
this.slaveMem = slaveMem;
+ this.maxExecutors = maxExecutors;
this.executorCpus = executorCpus;
this.executorMem = executorMem;
this.idleTerminationMinutes = idleTerminationMinutes;
@@ -87,19 +89,21 @@ public class MesosCloud extends Cloud {
@Override
public Collection<PlannedNode> provision(Label label, int excessWorkload) {
List<PlannedNode> list = new ArrayList<PlannedNode>();
- final int numExecutors = excessWorkload;
try {
- list.add(new PlannedNode(this.getDisplayName(), Computer.threadPoolForRemoting
- .submit(new Callable<Node>() {
- public Node call() throws Exception {
- // TODO(vinod): Instead of launching one slave with 'excessWorkload' executors,
- // launch multiple slaves with fewer executors per slave.
- MesosSlave s = doProvision(numExecutors);
- Hudson.getInstance().addNode(s);
- return s;
- }
- }), numExecutors));
-
+ while (excessWorkload > 0) {
+ final int numExecutors = Math.min(excessWorkload, maxExecutors);
+ excessWorkload -= numExecutors;
+ LOGGER.info("Provisioning Jenkins Slave on Mesos with " + numExecutors +
+ " executors. Remaining excess workload: " + excessWorkload + " executors)");
+ list.add(new PlannedNode(this.getDisplayName(), Computer.threadPoolForRemoting
+ .submit(new Callable<Node>() {
+ public Node call() throws Exception {
+ MesosSlave s = doProvision(numExecutors);
+ Hudson.getInstance().addNode(s);
+ return s;
+ }
+ }), numExecutors));
+ }
} catch (Exception e) {
LOGGER.log(Level.WARNING, "Failed to create instances on Mesos", e);
return Collections.emptyList();
http://git-wip-us.apache.org/repos/asf/mesos/blob/572f9e84/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly
----------------------------------------------------------------------
diff --git a/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly b/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly
index 0e2a6cb..593e1eb 100644
--- a/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly
+++ b/jenkins/src/main/resources/org/jenkinsci/plugins/mesos/MesosCloud/config.jelly
@@ -16,6 +16,10 @@
<f:number field="slaveMem" clazz="required positive-number" value="512"/>
</f:entry>
+ <f:entry title="${% Maximum number of Executors per Slave}">
+ <f:number field="maxExecutors" clazz="required number" value="2"/>
+ </f:entry>
+
<f:entry title="${%Jenkins Executor CPUs}">
<f:number field="executorCpus" clazz="required number" value="1"/>
</f:entry>