MCPcopy Create free account
hub / github.com/apache/mesos / main

Function main

src/examples/persistent_volume_framework.cpp:518–607  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

516
517
518int main(int argc, char** argv)
519{
520 Flags flags;
521 Try<flags::Warnings> load = flags.load("MESOS_EXAMPLE_", argc, argv);
522
523 if (flags.help) {
524 std::cout << flags.usage() << std::endl;
525 return EXIT_SUCCESS;
526 }
527
528 if (load.isError()) {
529 std::cerr << flags.usage(load.error()) << std::endl;
530 return EXIT_FAILURE;
531 }
532
533 logging::initialize(argv[0], true, flags); // Catch signals.
534
535 // Log any flag warnings (after logging is initialized).
536 foreach (const flags::Warning& warning, load->warnings) {
537 LOG(WARNING) << warning.message;
538 }
539
540 if (flags.role == "*") {
541 EXIT(EXIT_FAILURE)
542 << "Role is incorrect; the default '*' role cannot be used";
543 }
544
545 FrameworkInfo framework;
546 framework.set_user(""); // Have Mesos fill in the current user.
547 framework.set_principal(flags.principal);
548 framework.set_name(FRAMEWORK_NAME);
549 framework.add_capabilities()->set_type(
550 FrameworkInfo::Capability::MULTI_ROLE);
551 framework.set_checkpoint(flags.checkpoint);
552 framework.add_roles(flags.role);
553 framework.add_capabilities()->set_type(
554 FrameworkInfo::Capability::SHARED_RESOURCES);
555 framework.add_capabilities()->set_type(
556 FrameworkInfo::Capability::RESERVATION_REFINEMENT);
557
558 if (flags.master == "local") {
559 // Configure master.
560 os::setenv("MESOS_ROLES", flags.role);
561 os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
562
563 ACLs acls;
564 ACL::RegisterFramework* acl = acls.add_register_frameworks();
565 acl->mutable_principals()->set_type(ACL::Entity::ANY);
566 acl->mutable_roles()->add_values(flags.role);
567 os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
568
569 // Configure agent.
570 os::setenv("MESOS_DEFAULT_ROLE", flags.role);
571 }
572
573 MesosSchedulerDriver* driver;
574
575 PersistentVolumeScheduler scheduler(

Callers

nothing calls this directly

Calls 12

protobufFunction · 0.85
errorMethod · 0.65
runMethod · 0.65
stopMethod · 0.65
initializeFunction · 0.50
setenvFunction · 0.50
stringifyFunction · 0.50
loadMethod · 0.45
usageMethod · 0.45
isErrorMethod · 0.45
isSomeMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected