Updated example frameworks for mesos-local.

Unifies handling of 'local' when supplied for the '--master' flag.

Review: https://reviews.apache.org/r/64857/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/73f65229
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/73f65229
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/73f65229

Branch: refs/heads/master
Commit: 73f6522905db5114d1bd6d99a3bab0793b14b86d
Parents: 7e4e9ce
Author: Till Toenshoff <toensh...@me.com>
Authored: Wed Jan 31 00:16:46 2018 +0100
Committer: Till Toenshoff <toensh...@me.com>
Committed: Wed Jan 31 03:44:27 2018 +0100

----------------------------------------------------------------------
 src/examples/balloon_framework.cpp             | 14 ++++++++++++++
 src/examples/disk_full_framework.cpp           | 15 +++++++++++++++
 src/examples/docker_no_executor_framework.cpp  | 15 +++++++++++++++
 src/examples/dynamic_reservation_framework.cpp |  1 +
 src/examples/load_generator_framework.cpp      | 16 ++++++++++++++++
 src/examples/long_lived_framework.cpp          | 18 ++++++++++++++++++
 src/examples/no_executor_framework.cpp         | 16 ++++++++++++++++
 src/examples/test_framework.cpp                | 18 ++++++++++++++++++
 src/examples/test_http_framework.cpp           | 20 ++++++++++++++++++++
 9 files changed, 133 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/73f65229/src/examples/balloon_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/balloon_framework.cpp 
b/src/examples/balloon_framework.cpp
index 1938510..f25324d 100644
--- a/src/examples/balloon_framework.cpp
+++ b/src/examples/balloon_framework.cpp
@@ -21,6 +21,8 @@
 #include <mesos/resources.hpp>
 #include <mesos/scheduler.hpp>
 
+#include <mesos/authorizer/acls.hpp>
+
 #include <process/clock.hpp>
 #include <process/defer.hpp>
 #include <process/dispatch.hpp>
@@ -570,6 +572,18 @@ int main(int argc, char** argv)
 
   BalloonScheduler scheduler(framework, executor, flags);
 
+  if (flags.master == "local") {
+    // Configure master.
+    os::setenv("MESOS_ROLES", flags.role);
+    os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
+
+    ACLs acls;
+    ACL::RegisterFramework* acl = acls.add_register_frameworks();
+    acl->mutable_principals()->set_type(ACL::Entity::ANY);
+    acl->mutable_roles()->add_values(flags.role);
+    os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
+  }
+
   MesosSchedulerDriver* driver;
 
   if (flags.authenticate) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/73f65229/src/examples/disk_full_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/disk_full_framework.cpp 
b/src/examples/disk_full_framework.cpp
index 2ad5ede..b6029dc 100644
--- a/src/examples/disk_full_framework.cpp
+++ b/src/examples/disk_full_framework.cpp
@@ -20,6 +20,8 @@
 #include <mesos/resources.hpp>
 #include <mesos/scheduler.hpp>
 
+#include <mesos/authorizer/acls.hpp>
+
 #include <process/clock.hpp>
 #include <process/defer.hpp>
 #include <process/http.hpp>
@@ -36,6 +38,7 @@
 #include <stout/flags.hpp>
 #include <stout/option.hpp>
 #include <stout/os.hpp>
+#include <stout/protobuf.hpp>
 #include <stout/try.hpp>
 
 #include "examples/flags.hpp"
@@ -473,6 +476,18 @@ int main(int argc, char** argv)
 
   DiskFullScheduler scheduler(flags, framework);
 
+  if (flags.master == "local") {
+    // Configure master.
+    os::setenv("MESOS_ROLES", flags.role);
+    os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
+
+    ACLs acls;
+    ACL::RegisterFramework* acl = acls.add_register_frameworks();
+    acl->mutable_principals()->set_type(ACL::Entity::ANY);
+    acl->mutable_roles()->add_values(flags.role);
+    os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
+  }
+
   MesosSchedulerDriver* driver;
 
   if (flags.authenticate) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/73f65229/src/examples/docker_no_executor_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/docker_no_executor_framework.cpp 
b/src/examples/docker_no_executor_framework.cpp
index 85a2e9c..0cbda07 100644
--- a/src/examples/docker_no_executor_framework.cpp
+++ b/src/examples/docker_no_executor_framework.cpp
@@ -21,9 +21,12 @@
 
 #include <mesos/scheduler.hpp>
 
+#include <mesos/authorizer/acls.hpp>
+
 #include <stout/exit.hpp>
 #include <stout/option.hpp>
 #include <stout/os.hpp>
+#include <stout/protobuf.hpp>
 
 #include "examples/flags.hpp"
 
@@ -201,6 +204,18 @@ int main(int argc, char** argv)
   framework.add_capabilities()->set_type(
       FrameworkInfo::Capability::RESERVATION_REFINEMENT);
 
+  if (flags.master == "local") {
+    // Configure master.
+    os::setenv("MESOS_ROLES", flags.role);
+    os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
+
+    ACLs acls;
+    ACL::RegisterFramework* acl = acls.add_register_frameworks();
+    acl->mutable_principals()->set_type(ACL::Entity::ANY);
+    acl->mutable_roles()->add_values("*");
+    os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
+  }
+
   DockerNoExecutorScheduler scheduler;
 
   MesosSchedulerDriver* driver;

http://git-wip-us.apache.org/repos/asf/mesos/blob/73f65229/src/examples/dynamic_reservation_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/dynamic_reservation_framework.cpp 
b/src/examples/dynamic_reservation_framework.cpp
index a9dabc0..e8d8d09 100644
--- a/src/examples/dynamic_reservation_framework.cpp
+++ b/src/examples/dynamic_reservation_framework.cpp
@@ -386,6 +386,7 @@ int main(int argc, char** argv)
 
   if (flags.master == "local") {
     // Configure master.
+    os::setenv("MESOS_ROLES", flags.role);
     os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
 
     ACLs acls;

http://git-wip-us.apache.org/repos/asf/mesos/blob/73f65229/src/examples/load_generator_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/load_generator_framework.cpp 
b/src/examples/load_generator_framework.cpp
index 665dd57..3ae25b2 100644
--- a/src/examples/load_generator_framework.cpp
+++ b/src/examples/load_generator_framework.cpp
@@ -19,6 +19,8 @@
 
 #include <mesos/scheduler.hpp>
 
+#include <mesos/authorizer/acls.hpp>
+
 #include <process/defer.hpp>
 #include <process/process.hpp>
 #include <process/timeout.hpp>
@@ -26,6 +28,7 @@
 #include <stout/numify.hpp>
 #include <stout/option.hpp>
 #include <stout/os.hpp>
+#include <stout/protobuf.hpp>
 #include <stout/stopwatch.hpp>
 #include <stout/strings.hpp>
 
@@ -289,7 +292,20 @@ int main(int argc, char** argv)
       FrameworkInfo::Capability::RESERVATION_REFINEMENT);
   framework.set_checkpoint(flags.checkpoint);
 
+  if (flags.master == "local") {
+    // Configure master.
+    os::setenv("MESOS_ROLES", flags.role);
+    os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
+
+    ACLs acls;
+    ACL::RegisterFramework* acl = acls.add_register_frameworks();
+    acl->mutable_principals()->set_type(ACL::Entity::ANY);
+    acl->mutable_roles()->add_values("*");
+    os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
+  }
+
   MesosSchedulerDriver* driver;
+
   if (flags.authenticate) {
     LOG(INFO) << "Enabling authentication for the framework";
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/73f65229/src/examples/long_lived_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/long_lived_framework.cpp 
b/src/examples/long_lived_framework.cpp
index 1dc8dd4..53e3ec9 100644
--- a/src/examples/long_lived_framework.cpp
+++ b/src/examples/long_lived_framework.cpp
@@ -24,6 +24,8 @@
 #include <mesos/v1/resources.hpp>
 #include <mesos/v1/scheduler.hpp>
 
+#include <mesos/authorizer/acls.hpp>
+
 #include <process/clock.hpp>
 #include <process/defer.hpp>
 #include <process/help.hpp>
@@ -654,6 +656,22 @@ int main(int argc, char** argv)
     credential = credential_;
   }
 
+  if (flags.master == "local") {
+    // Configure master.
+    os::setenv("MESOS_ROLES", flags.role);
+    os::setenv(
+        "MESOS_AUTHENTICATE_HTTP_FRAMEWORKS",
+        stringify(flags.authenticate));
+
+    os::setenv("MESOS_HTTP_FRAMEWORK_AUTHENTICATORS", "basic");
+
+    mesos::ACLs acls;
+    mesos::ACL::RegisterFramework* acl = acls.add_register_frameworks();
+    acl->mutable_principals()->set_type(mesos::ACL::Entity::ANY);
+    acl->mutable_roles()->add_values(flags.role);
+    os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
+  }
+
   Owned<LongLivedScheduler> scheduler(new LongLivedScheduler(
       flags.master,
       framework,

http://git-wip-us.apache.org/repos/asf/mesos/blob/73f65229/src/examples/no_executor_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/no_executor_framework.cpp 
b/src/examples/no_executor_framework.cpp
index 02aaf07..dc75d78 100644
--- a/src/examples/no_executor_framework.cpp
+++ b/src/examples/no_executor_framework.cpp
@@ -21,11 +21,15 @@
 #include <mesos/scheduler.hpp>
 #include <mesos/type_utils.hpp>
 
+#include <mesos/authorizer/acls.hpp>
+
 #include <stout/exit.hpp>
 #include <stout/flags.hpp>
 #include <stout/foreach.hpp>
 #include <stout/hashset.hpp>
 #include <stout/option.hpp>
+#include <stout/os.hpp>
+#include <stout/protobuf.hpp>
 #include <stout/stringify.hpp>
 #include <stout/try.hpp>
 
@@ -332,6 +336,18 @@ int main(int argc, char** argv)
       taskResources,
       flags.num_tasks);
 
+  if (flags.master == "local") {
+    // Configure master.
+    os::setenv("MESOS_ROLES", flags.role);
+    os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
+
+    ACLs acls;
+    ACL::RegisterFramework* acl = acls.add_register_frameworks();
+    acl->mutable_principals()->set_type(ACL::Entity::ANY);
+    acl->mutable_roles()->add_values(flags.role);
+    os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
+  }
+
   MesosSchedulerDriver* driver;
 
   if (flags.authenticate) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/73f65229/src/examples/test_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_framework.cpp b/src/examples/test_framework.cpp
index c8e4bb4..aaf952c 100644
--- a/src/examples/test_framework.cpp
+++ b/src/examples/test_framework.cpp
@@ -23,6 +23,8 @@
 #include <mesos/scheduler.hpp>
 #include <mesos/type_utils.hpp>
 
+#include <mesos/authorizer/acls.hpp>
+
 #include <stout/check.hpp>
 #include <stout/exit.hpp>
 #include <stout/flags.hpp>
@@ -30,6 +32,7 @@
 #include <stout/option.hpp>
 #include <stout/os.hpp>
 #include <stout/path.hpp>
+#include <stout/protobuf.hpp>
 #include <stout/stringify.hpp>
 
 #include <stout/os/realpath.hpp>
@@ -270,6 +273,21 @@ int main(int argc, char** argv)
     implicitAcknowledgements = false;
   }
 
+  if (flags.master == "local") {
+    // Configure master.
+    os::setenv("MESOS_ROLES", flags.role);
+    os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
+
+    ACLs acls;
+    ACL::RegisterFramework* acl = acls.add_register_frameworks();
+    acl->mutable_principals()->set_type(ACL::Entity::ANY);
+    acl->mutable_roles()->add_values(flags.role);
+    os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
+
+    // Configure agent.
+    os::setenv("MESOS_DEFAULT_ROLE", flags.role);
+  }
+
   MesosSchedulerDriver* driver;
   TestScheduler scheduler(implicitAcknowledgements, executor, flags.role);
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/73f65229/src/examples/test_http_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_http_framework.cpp 
b/src/examples/test_http_framework.cpp
index 9c8842f..9ea3c6f 100644
--- a/src/examples/test_http_framework.cpp
+++ b/src/examples/test_http_framework.cpp
@@ -24,6 +24,8 @@
 #include <mesos/v1/resources.hpp>
 #include <mesos/v1/scheduler.hpp>
 
+#include <mesos/authorizer/acls.hpp>
+
 #include <process/delay.hpp>
 #include <process/owned.hpp>
 #include <process/process.hpp>
@@ -40,6 +42,7 @@
 #include <stout/option.hpp>
 #include <stout/os.hpp>
 #include <stout/path.hpp>
+#include <stout/protobuf.hpp>
 #include <stout/stringify.hpp>
 
 #include <stout/os/realpath.hpp>
@@ -456,6 +459,23 @@ int main(int argc, char** argv)
     credential = credential_;
   }
 
+  if (flags.master == "local") {
+    // Configure master.
+    os::setenv("MESOS_ROLES", flags.role);
+
+    os::setenv(
+        "MESOS_AUTHENTICATE_HTTP_FRAMEWORKS",
+        stringify(flags.authenticate));
+
+    os::setenv("MESOS_HTTP_FRAMEWORK_AUTHENTICATORS", "basic");
+
+    mesos::ACLs acls;
+    mesos::ACL::RegisterFramework* acl = acls.add_register_frameworks();
+    acl->mutable_principals()->set_type(mesos::ACL::Entity::ANY);
+    acl->mutable_roles()->add_values("*");
+    os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
+  }
+
   process::Owned<HTTPScheduler> scheduler(
       new HTTPScheduler(framework, executor, flags.master, credential));
 

Reply via email to