You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2019/07/24 15:02:49 UTC
[mesos] 03/03: Added unsuppressing via `updateFramework()` to
python example framework.
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 <as...@mesosphere.io>
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