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));