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

Function main

src/examples/load_generator_framework.cpp:257–337  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

255
256
257int main(int argc, char** argv)
258{
259 Flags flags;
260 Try<flags::Warnings> load = flags.load("MESOS_EXAMPLE_", argc, argv);
261
262 if (load.isError()) {
263 std::cerr << flags.usage(load.error()) << std::endl;
264 return EXIT_FAILURE;
265 }
266
267 if (flags.help) {
268 std::cout << flags.usage() << std::endl;
269 return EXIT_SUCCESS;
270 }
271
272 mesos::internal::logging::initialize(argv[0], false);
273
274 // Log any flag warnings (after logging is initialized).
275 foreach (const flags::Warning& warning, load->warnings) {
276 LOG(WARNING) << warning.message;
277 }
278
279 if (flags.qps <= 0.0) {
280 EXIT(EXIT_FAILURE) << "Flag '--qps' needs to be greater than zero";
281 }
282
283 LoadGeneratorScheduler scheduler(flags.qps, flags.duration);
284
285 FrameworkInfo framework;
286 framework.set_user(""); // Have Mesos fill in the current user.
287 framework.set_principal(flags.principal);
288 framework.set_name(FRAMEWORK_NAME);
289 framework.set_checkpoint(flags.checkpoint);
290 framework.add_roles(flags.role);
291 framework.add_capabilities()->set_type(
292 FrameworkInfo::Capability::RESERVATION_REFINEMENT);
293 framework.set_checkpoint(flags.checkpoint);
294
295 if (flags.master == "local") {
296 // Configure master.
297 os::setenv("MESOS_ROLES", flags.role);
298 os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate));
299
300 ACLs acls;
301 ACL::RegisterFramework* acl = acls.add_register_frameworks();
302 acl->mutable_principals()->set_type(ACL::Entity::ANY);
303 acl->mutable_roles()->add_values("*");
304 os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls)));
305 }
306
307 MesosSchedulerDriver* driver;
308
309 if (flags.authenticate) {
310 LOG(INFO) << "Enabling authentication for the framework";
311
312 Credential credential;
313 credential.set_principal(flags.principal);
314 if (flags.secret.isSome()) {

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
isErrorMethod · 0.45
usageMethod · 0.45
isSomeMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected