| 179 | |
| 180 | |
| 181 | int main(int argc, char** argv) |
| 182 | { |
| 183 | Flags flags; |
| 184 | Try<flags::Warnings> load = flags.load("MESOS_EXAMPLE_", argc, argv); |
| 185 | |
| 186 | if (flags.help) { |
| 187 | std::cout << flags.usage() << std::endl; |
| 188 | return EXIT_SUCCESS; |
| 189 | } |
| 190 | |
| 191 | if (load.isError()) { |
| 192 | std::cerr << flags.usage(load.error()) << std::endl; |
| 193 | return EXIT_FAILURE; |
| 194 | } |
| 195 | |
| 196 | internal::logging::initialize(argv[0], false); |
| 197 | |
| 198 | FrameworkInfo framework; |
| 199 | framework.set_user(""); // Have Mesos fill in the current user. |
| 200 | framework.set_principal(flags.principal); |
| 201 | framework.set_name(FRAMEWORK_NAME); |
| 202 | framework.set_checkpoint(flags.checkpoint); |
| 203 | framework.add_roles(flags.role); |
| 204 | framework.add_capabilities()->set_type( |
| 205 | FrameworkInfo::Capability::RESERVATION_REFINEMENT); |
| 206 | |
| 207 | if (flags.master == "local") { |
| 208 | // Configure master. |
| 209 | os::setenv("MESOS_ROLES", flags.role); |
| 210 | os::setenv("MESOS_AUTHENTICATE_FRAMEWORKS", stringify(flags.authenticate)); |
| 211 | |
| 212 | ACLs acls; |
| 213 | ACL::RegisterFramework* acl = acls.add_register_frameworks(); |
| 214 | acl->mutable_principals()->set_type(ACL::Entity::ANY); |
| 215 | acl->mutable_roles()->add_values("*"); |
| 216 | os::setenv("MESOS_ACLS", stringify(JSON::protobuf(acls))); |
| 217 | } |
| 218 | |
| 219 | DockerNoExecutorScheduler scheduler; |
| 220 | |
| 221 | MesosSchedulerDriver* driver; |
| 222 | |
| 223 | if (flags.authenticate) { |
| 224 | LOG(INFO) << "Enabling authentication for the framework"; |
| 225 | |
| 226 | Credential credential; |
| 227 | credential.set_principal(flags.principal); |
| 228 | if (flags.secret.isSome()) { |
| 229 | credential.set_secret(flags.secret.get()); |
| 230 | } |
| 231 | |
| 232 | driver = new MesosSchedulerDriver( |
| 233 | &scheduler, |
| 234 | framework, |
| 235 | argv[1], |
| 236 | credential); |
| 237 | } else { |
| 238 | driver = new MesosSchedulerDriver( |
nothing calls this directly
no test coverage detected