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
commit fa122214fdabbb140971059b5ea21d8542850df7 Author: Andrei Sekretenko <[email protected]> AuthorDate: Thu Jul 4 18:07:21 2019 -0400 Added suppressOffers(roles) to V0 Java bindings. Review: https://reviews.apache.org/r/70985/ --- .../jni/org_apache_mesos_MesosSchedulerDriver.cpp | 24 +++++++++++++++++++++- .../src/org/apache/mesos/MesosSchedulerDriver.java | 2 ++ src/java/src/org/apache/mesos/SchedulerDriver.java | 14 +++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/java/jni/org_apache_mesos_MesosSchedulerDriver.cpp b/src/java/jni/org_apache_mesos_MesosSchedulerDriver.cpp index fd852fd..1817bba 100644 --- a/src/java/jni/org_apache_mesos_MesosSchedulerDriver.cpp +++ b/src/java/jni/org_apache_mesos_MesosSchedulerDriver.cpp @@ -981,7 +981,7 @@ Java_org_apache_mesos_MesosSchedulerDriver_reviveOffers__Ljava_util_Collection_2 * Signature: ()Lorg/apache/mesos/Protos/Status; */ JNIEXPORT jobject JNICALL -Java_org_apache_mesos_MesosSchedulerDriver_suppressOffers( +Java_org_apache_mesos_MesosSchedulerDriver_suppressOffers__( JNIEnv* env, jobject thiz) { jclass clazz = env->GetObjectClass(thiz); @@ -998,6 +998,28 @@ Java_org_apache_mesos_MesosSchedulerDriver_suppressOffers( /* * Class: org_apache_mesos_MesosSchedulerDriver + * Method: suppressOffersForRoles + * Signature: (Ljava/util/Collection;)Lorg/apache/mesos/Protos/Status; + */ +JNIEXPORT jobject JNICALL +Java_org_apache_mesos_MesosSchedulerDriver_suppressOffers__Ljava_util_Collection_2( // NOLINT(whitespace/line_length) + JNIEnv* env, jobject thiz, jobject jroles) +{ + jclass clazz = env->GetObjectClass(thiz); + + jfieldID __driver = env->GetFieldID(clazz, "__driver", "J"); + MesosSchedulerDriver* driver = + (MesosSchedulerDriver*) env->GetLongField(thiz, __driver); + + Status status = + driver->suppressOffers(constructFromIterable<string>(env, jroles)); + + return convert<Status>(env, status); +} + + +/* + * Class: org_apache_mesos_MesosSchedulerDriver * Method: requestResources * Signature: (Ljava/util/Collection;)Lorg/apache/mesos/Protos/Status; */ diff --git a/src/java/src/org/apache/mesos/MesosSchedulerDriver.java b/src/java/src/org/apache/mesos/MesosSchedulerDriver.java index c373436..3e74be9 100644 --- a/src/java/src/org/apache/mesos/MesosSchedulerDriver.java +++ b/src/java/src/org/apache/mesos/MesosSchedulerDriver.java @@ -397,6 +397,8 @@ public class MesosSchedulerDriver implements SchedulerDriver { public native Status suppressOffers(); + public native Status suppressOffers(Collection<String> roles); + public native Status acknowledgeStatusUpdate(TaskStatus status); public native Status sendFrameworkMessage(ExecutorID executorId, diff --git a/src/java/src/org/apache/mesos/SchedulerDriver.java b/src/java/src/org/apache/mesos/SchedulerDriver.java index 25ba439..e04916e 100644 --- a/src/java/src/org/apache/mesos/SchedulerDriver.java +++ b/src/java/src/org/apache/mesos/SchedulerDriver.java @@ -301,6 +301,20 @@ public interface SchedulerDriver { Status suppressOffers(); /** + * Adds the roles to the suppressed set. If the framework is not connected + * to the master, an up-to-date set of suppressed roles will be sent to + * the master during re-registration. + * + * @param roles The collection of framework roles to be suppressed. + * If empty, the method does nothing. + * + * @return The state of the driver after the call. + * + * @see Status + */ + Status suppressOffers(Collection<String> roles); + + /** * Acknowledges the status update. This should only be called * once the status update is processed durably by the scheduler. * Not that explicit acknowledgements must be requested via the
