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

Function main

src/examples/dynamic_reservation_framework.cpp:346–431  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

344
345
346int main(int argc, char** argv)
347{
348 Flags flags;
349 Try<flags::Warnings> load = flags.load("MESOS_EXAMPLE_", argc, argv);
350
351 if (flags.help) {
352 std::cout << flags.usage() << std::endl;
353 return EXIT_SUCCESS;
354 }
355
356 if (load.isError()) {
357 std::cerr << flags.usage(load.error()) << std::endl;
358 return EXIT_FAILURE;
359 }
360
361 internal::logging::initialize(argv[0], false);
362
363 // Log any flag warnings.
364 foreach (const flags::Warning& warning, load->warnings) {
365 LOG(WARNING) << warning.message;
366 }
367
368 if (flags.role == "*") {
369 EXIT(EXIT_FAILURE) << flags.usage(
370 "Role is incorrect; the default '*' role cannot be used");
371 }
372
373 FrameworkInfo framework;
374 framework.set_user(""); // Mesos'll fill in the current user.
375 framework.set_principal(flags.principal);
376 framework.set_name(FRAMEWORK_NAME);
377 framework.set_checkpoint(flags.checkpoint);
378 framework.add_roles(flags.role);
379 framework.add_capabilities()->set_type(
380 FrameworkInfo::Capability::MULTI_ROLE);
381 framework.add_capabilities()->set_type(
382 FrameworkInfo::Capability::RESERVATION_REFINEMENT);
383
384 DynamicReservationScheduler scheduler(
385 flags.command,
386 flags.role,
387 flags.principal);
388
389 if (flags.master == "local") {
390 // Configure master.
391 os::setenv("MESOS_ROLES", flags.role);
392 os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
393
394 ACLs acls;
395 ACL::RegisterFramework* acl = acls.add_register_frameworks();
396 acl->mutable_principals()->set_type(ACL::Entity::ANY);
397 acl->mutable_roles()->add_values(flags.role);
398 os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
399 }
400
401 MesosSchedulerDriver* driver;
402
403 if (flags.authenticate) {

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