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 72ca397be231d8564442f0ad8289bc22dac94eed
Author: Andrei Sekretenko <[email protected]>
AuthorDate: Wed Jul 24 11:02:15 2019 -0400

    Added unsuppressing via `updateFramework()` to python example framework.
    
    This patch ensures that the list of suppressed roles is passed through
    the `updateFramework()` of python 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/71084/
---
 src/examples/python/test_framework.py | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/examples/python/test_framework.py 
b/src/examples/python/test_framework.py
index 27bc052..38ddacf 100755
--- a/src/examples/python/test_framework.py
+++ b/src/examples/python/test_framework.py
@@ -30,9 +30,10 @@ TASK_CPUS = 1
 TASK_MEM = 128
 
 class TestScheduler(mesos.interface.Scheduler):
-    def __init__(self, implicitAcknowledgements, executor):
+    def __init__(self, implicitAcknowledgements, executor, framework):
         self.implicitAcknowledgements = implicitAcknowledgements
         self.executor = executor
+        self.framework = framework
         self.taskData = {}
         self.tasksLaunched = 0
         self.tasksFinished = 0
@@ -41,6 +42,8 @@ class TestScheduler(mesos.interface.Scheduler):
 
     def registered(self, driver, frameworkId, masterInfo):
         print "Registered with framework ID %s" % frameworkId.value
+        self.framework.id.CopyFrom(frameworkId)
+        driver.updateFramework(framework, [])
 
     def resourceOffers(self, driver, offers):
         for offer in offers:
@@ -167,6 +170,7 @@ if __name__ == "__main__":
     framework.user = "" # Have Mesos fill in the current user.
     framework.name = "Test Framework (Python)"
     framework.checkpoint = True
+    framework.role = "*"
 
     implicitAcknowledgements = 1
     if os.getenv("MESOS_EXPLICIT_ACKNOWLEDGEMENTS"):
@@ -188,20 +192,18 @@ if __name__ == "__main__":
 
         framework.principal = os.getenv("MESOS_EXAMPLE_PRINCIPAL")
 
-        driver = MesosSchedulerDriver(
-            TestScheduler(implicitAcknowledgements, executor),
-            framework,
-            sys.argv[1],
-            implicitAcknowledgements,
-            credential)
     else:
         framework.principal = "test-framework-python"
-
-        driver = MesosSchedulerDriver(
-            TestScheduler(implicitAcknowledgements, executor),
-            framework,
-            sys.argv[1],
-            implicitAcknowledgements)
+        credential = None
+
+    # Subscribe with all roles suppressed to test updateFramework() method
+    driver = MesosSchedulerDriver(
+        TestScheduler(implicitAcknowledgements, executor, framework),
+        framework,
+        sys.argv[1],
+        implicitAcknowledgements,
+        credential,
+        [framework.role])
 
     status = 0 if driver.run() == mesos_pb2.DRIVER_STOPPED else 1
 

Reply via email to