This is an automated email from the ASF dual-hosted git repository.
bmahler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
The following commit(s) were added to refs/heads/master by this push:
new 19e5259 Added unsuppressing via `updateFramework()` to Java example
framework.
19e5259 is described below
commit 19e52593e5a545fbc480df064454526e6f0996a3
Author: Andrei Sekretenko <[email protected]>
AuthorDate: Mon Jul 29 15:04:22 2019 -0400
Added unsuppressing via `updateFramework()` to Java example framework.
This patch ensures that the list of suppressed roles is passed through
the `updateFramework()` of Java V0 bindings. Now the framework
subscribes with all roles suppressed and after that issues
UPDATE_FRAMEWORK call to unsuppress offers.
Review: https://reviews.apache.org/r/71047/
---
src/examples/java/TestFramework.java | 41 ++++++++++++++++++++++++++----------
1 file changed, 30 insertions(+), 11 deletions(-)
diff --git a/src/examples/java/TestFramework.java
b/src/examples/java/TestFramework.java
index c8b0cea..1dea79c 100644
--- a/src/examples/java/TestFramework.java
+++ b/src/examples/java/TestFramework.java
@@ -32,15 +32,12 @@ import org.apache.mesos.Protos.*;
public class TestFramework {
static class TestScheduler implements Scheduler {
public TestScheduler(boolean implicitAcknowledgements,
- ExecutorInfo executor) {
- this(implicitAcknowledgements, executor, 5);
- }
-
- public TestScheduler(boolean implicitAcknowledgements,
ExecutorInfo executor,
+ FrameworkInfo framework,
int totalTasks) {
this.implicitAcknowledgements = implicitAcknowledgements;
this.executor = executor;
+ this.framework = framework;
this.totalTasks = totalTasks;
}
@@ -49,6 +46,11 @@ public class TestFramework {
FrameworkID frameworkId,
MasterInfo masterInfo) {
System.out.println("Registered! ID = " + frameworkId.getValue());
+
+ // Clear suppressed roles.
+ FrameworkInfo.Builder builder = framework.toBuilder();
+ builder.setId(frameworkId);
+ driver.updateFramework(builder.build(), new ArrayList<String>());
}
@Override
@@ -140,6 +142,7 @@ public class TestFramework {
" is in state " +
status.getState().getValueDescriptor().getName());
if (status.getState() == TaskState.TASK_FINISHED) {
finishedTasks++;
+
System.out.println("Finished tasks: " + finishedTasks);
if (finishedTasks == totalTasks) {
driver.stop();
@@ -186,6 +189,7 @@ public class TestFramework {
private final boolean implicitAcknowledgements;
private final ExecutorInfo executor;
+ private final FrameworkInfo framework;
private final int totalTasks;
private int launchedTasks = 0;
private int finishedTasks = 0;
@@ -211,10 +215,13 @@ public class TestFramework {
.setSource("java_test")
.build();
+ String role = "*";
+
FrameworkInfo.Builder frameworkBuilder = FrameworkInfo.newBuilder()
.setUser("") // Have Mesos fill in the current user.
.setName("Test Framework (Java)")
- .setCheckpoint(true);
+ .setCheckpoint(true)
+ .setRole(role);
boolean implicitAcknowledgements = true;
@@ -223,9 +230,13 @@ public class TestFramework {
implicitAcknowledgements = false;
}
- Scheduler scheduler = args.length == 1
- ? new TestScheduler(implicitAcknowledgements, executor)
- : new TestScheduler(implicitAcknowledgements, executor,
Integer.parseInt(args[1]));
+ int totalTasks = args.length == 1 ? 5: Integer.parseInt(args[1]);
+ Scheduler scheduler = null;
+
+ // The framework subscribes with all roles suppressed
+ // to test unsuppression via 'updateFramework()'
+ List<String> suppressedRoles = new ArrayList<String>();
+ suppressedRoles.add(role);
MesosSchedulerDriver driver = null;
if (System.getenv("MESOS_EXAMPLE_AUTHENTICATE") != null) {
@@ -244,17 +255,25 @@ public class TestFramework {
}
frameworkBuilder.setPrincipal(System.getenv("MESOS_EXAMPLE_PRINCIPAL"));
+ FrameworkInfo framework = frameworkBuilder.build();
+ scheduler = new TestScheduler(
+ implicitAcknowledgements, executor, framework, totalTasks);
driver = new MesosSchedulerDriver(
scheduler,
- frameworkBuilder.build(),
+ framework,
+ suppressedRoles,
args[0],
implicitAcknowledgements,
credentialBuilder.build());
} else {
frameworkBuilder.setPrincipal("test-framework-java");
+ FrameworkInfo framework = frameworkBuilder.build();
+ scheduler = new TestScheduler(
+ implicitAcknowledgements, executor, framework, totalTasks);
- driver = new MesosSchedulerDriver(scheduler, frameworkBuilder.build(),
args[0], implicitAcknowledgements);
+ driver = new MesosSchedulerDriver(scheduler, framework, suppressedRoles,
+ args[0], implicitAcknowledgements);
}
int status = driver.run() == Status.DRIVER_STOPPED ? 0 : 1;