> On Dec. 22, 2016, 4:21 a.m., haosdent huang wrote: > > Basically it looks good to me. > > > > Have some simple issues we would like to discuss more: > > > > * Should we keep so much fields in `RunOptions`? > > * Should we use `vector<string> cmd` in `RunOptions`? Or use `CommandInfo` > > directly. > > Zhitao Li wrote: > @haosdent, my current feeling is to abstract Docker CLI at each option > level, that is why I decided to use many fields rather than simply abstract > against a `vector<string>`. > > Another reason is that this abstraction allows us to either add a builder > pattern for `RunOptions`, or allow modification of a `RunOptions` easily. > This can eventually allow us to gradually break the lengthy > `RunOptions::create` function into smaller and more testable pieces. > > Using a `vector<string> cmd` as abstraction interface could make the > above goal harder, since the caller needs to correctly parse all parameters > and modify them in place. > > Please let me know what you think.
Suppose we define `RunOptions` like ``` map<string, string> env; vector<string> args; ``` So when we would like to add a new flag to docker, we only need to change `RunOptions::create` and don't need to change `Docker::run`. Do you think this would be better? For `cmd`, I agreed your opinions, how about put it in `vector<string> args` as well? - haosdent ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/54821/#review159923 ----------------------------------------------------------- On Dec. 22, 2016, 5:17 p.m., Zhitao Li wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/54821/ > ----------------------------------------------------------- > > (Updated Dec. 22, 2016, 5:17 p.m.) > > > Review request for mesos, Xiaojian Huang, haosdent huang, and Jie Yu. > > > Bugs: MESOS-6808 > https://issues.apache.org/jira/browse/MESOS-6808 > > > Repository: mesos > > > Description > ------- > > This patch creates a wrapper struct for all recognizable docker cli > options, and separate logic of creating these options to a different > common function. > > This also enables us to overcome gmock's 10 argument limit. > > No logic change happens in this refactoring patch. > > > Diffs > ----- > > src/docker/docker.hpp 9093371afc8ea792ba94f61c6875703e547ea6b0 > src/docker/docker.cpp 472cb1b4dc2b0ac65721c732fca8ec70a7470f47 > src/docker/executor.cpp 9b5c469e2d0f33e228ec746711e6bc6ed352cbc7 > src/slave/containerizer/docker.cpp 7a8a7271b54af0b4dcdae7a2aa8a90a8a7d05fd6 > src/tests/containerizer/docker_containerizer_tests.cpp > 4e3b67bbb989f9084dfdf4970839956dcb0caa0e > src/tests/containerizer/docker_tests.cpp > 9667d434486c1832f180a297a39a3d5dae6a26bd > src/tests/mock_docker.hpp 829a760d54ad8c7b88256ae5df4c88c9fb18df71 > src/tests/mock_docker.cpp 02b6065a01e7e52b0edb38676dfb1bb475584502 > > Diff: https://reviews.apache.org/r/54821/diff/ > > > Testing > ------- > > `make check` with ROOT and DOCKER filter. > > > Thanks, > > Zhitao Li > >
