----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/22224/#review44728 -----------------------------------------------------------
src/Makefile.am <https://reviews.apache.org/r/22224/#comment79199> we already use "launcher" in containerizer. can we use some other name for this to avoid confusion? how about operator? or command? src/launcher/launcher.hpp <https://reviews.apache.org/r/22224/#comment79203> I think "Command" reads better here than "Operation"? e.g: subprocess executes a command. src/launcher/launcher.hpp <https://reviews.apache.org/r/22224/#comment79200> s/returned integer/return value/ src/launcher/launcher.hpp <https://reviews.apache.org/r/22224/#comment79202> s/Syntax/Syntactic/ Also, can you give an example on how this can be used? src/launcher/launcher.hpp <https://reviews.apache.org/r/22224/#comment79204> s/TestOperation/ShellOperation/ or s/TestOperation/ShellCommand/ src/launcher/launcher.cpp <https://reviews.apache.org/r/22224/#comment79205> s/tools/operations/ src/launcher/launcher.cpp <https://reviews.apache.org/r/22224/#comment79207> const? src/launcher/launcher.cpp <https://reviews.apache.org/r/22224/#comment79219> from the environment and command line right? the flags are set in the environment afaict. what other flags are expected on the command line? src/tests/launcher_tests.cpp <https://reviews.apache.org/r/22224/#comment79209> do the users even need to know the path of the "mesos-launcher"? why can't "operation" figure that out because it is always the same? - Vinod Kone On June 3, 2014, 11:46 p.m., Jie Yu wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/22224/ > ----------------------------------------------------------- > > (Updated June 3, 2014, 11:46 p.m.) > > > Review request for mesos, Benjamin Hindman, Ian Downes, and Vinod Kone. > > > Bugs: MESOS-1446 > https://issues.apache.org/jira/browse/MESOS-1446 > > > Repository: mesos-git > > > Description > ------- > > Currently, whenever we want something to be executed in a subprocess, we > create a separate binary (e.g., mesos-fetcher, mesos-executor, mesos-usage, > etc.). This has several drawbacks: > > 1) Code duplication (passing arguments, main function, etc.) > 2) Split logic into multiple files (not good for readability) > > To solve that, I created a generic 'launcher' for 'Operation's. Users can > define their own 'Operation' and 'launch' it in a subprocess. For instance: > > class CustomizedOperation : public Operation > { > public: > class Flags : public flags::FlagsBase > { > Flags(); > Option<string> arg1; > Option<int> arg2; > }; > > protected: > virtual string name() const { return "customized_operation"; } > > virtual int execute() > { > if (arg1.isNone()) { return 1; } > if (arg2.isNone()) { return 1; } > > do_something(arg1.get(), arg2.get()); > } > }; > > In your code, if you want to execute 'CustomizedOperation' in a subprocess, > you can just launch it: > > CustomizedOperation operation; > operation.flags.arg1 = "arg1"; > operation.flags.arg2 = "arg2"; > > operation.launch(flags.launcher_dir + "/mesos-launcher"); > > We will handle the flags passing and parsing for you under the hood. > > > Diffs > ----- > > src/Makefile.am ffde59b > src/launcher/launcher.hpp PRE-CREATION > src/launcher/launcher.cpp PRE-CREATION > src/launcher/main.cpp PRE-CREATION > src/tests/launcher_tests.cpp PRE-CREATION > > Diff: https://reviews.apache.org/r/22224/diff/ > > > Testing > ------- > > make check > > > Thanks, > > Jie Yu > >
