> On July 31, 2014, 6:39 p.m., Jie Yu wrote:
> > src/docker/docker.cpp, line 351
> > <https://reviews.apache.org/r/23771/diff/8/?file=646708#file646708line351>
> >
> >     if (status.get() != 0) {
> >       return err(s).then(lambda::bind(&__check, cmd, status.get(), 
> > lambda::_1));
> >     }

I actually can't do this since the return type doesn't make __check. 
What I ended up doing is another static method with a template.


> On July 31, 2014, 6:39 p.m., Jie Yu wrote:
> > src/docker/docker.cpp, line 80
> > <https://reviews.apache.org/r/23771/diff/8/?file=646708#file646708line80>
> >
> >     This has been gone through a few iterations already. Sorry, this is my 
> > fault that I haven't thought about it in deep. But I hope we can resolve 
> > this before shipping this.
> >     
> >     A few issues:
> >     
> >     1) This is a library, we usually don't have LOG() in the library 
> > (otherwise, very likely we'll have double logging). Instead, we usually put 
> > error messages in the return value (either Future or Try).
> >     
> >     2) Returning 'bool' doesn't seem to be necessary? We always return 
> > false on error and return true on success, right? In that case, we can just 
> > use Future<Nothing>?
> >     
> >     So here is what I would suggest (s/success/check/ maybe):
> >     
> >     Future<Nothing> check(const string& cmd, const Subprocess& s)
> >     {
> >       return s.status().then(lambda::bind(&_success, cmd, s);
> >     }
> >     
> >     Future<Nothing> _check(const string& cmd, const Subprocess& s)
> >     {
> >       Option<int> status = s.status().get();
> >       if (status.isNone()) {
> >         return Failure("No status found for '" + cmd + "'");
> >       }
> >       
> >       if (status.get() != 0) {
> >         return err(s).then(lambda::bind(&__check, cmd, status, lambda::_1));
> >       }
> >     
> >       return Nothing();
> >     }
> >     
> >     Future<Nothing> __check(const string& cmd, int status, const string& 
> > err)
> >     {
> >       return Failure(
> >           "Failed to '" + cmd + "': exit status = " +
> >           WSTRINGIFY(status) + " stderr = " + err);
> >     }
> >     
> >     // Retrieve the standard error of 's'.
> >     Future<string> err(const Subprocess& s)
> >     {
> >       CHECK_SOME(s.err());
> >     
> >       Try<Nothing> nonblock = os::nonblock(s.err().get());
> >       if (nonblock.isError()) {
> >         return Failure("Cannot set nonblock for stderr");
> >       }
> >     
> >       return io::read(s.err().get());
> >     }

I had an compile error where _check conflicts with the _check method from 
process/check.hpp. I renamed all to [_|__]checkStatus


- Timothy


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/23771/#review49240
-----------------------------------------------------------


On July 31, 2014, 8:06 a.m., Timothy Chen wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/23771/
> -----------------------------------------------------------
> 
> (Updated July 31, 2014, 8:06 a.m.)
> 
> 
> Review request for mesos, Benjamin Hindman, Ian Downes, and Jie Yu.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> Docker implementation.
> This is all the docker code Ben, I and Yifan worked on excluding the 
> composing containerizer patches.
> 
> 
> Diffs
> -----
> 
>   src/Makefile.am 45afcd1 
>   src/common/status_utils.hpp 1980551 
>   src/docker/docker.hpp PRE-CREATION 
>   src/docker/docker.cpp PRE-CREATION 
>   src/examples/docker_no_executor_framework.cpp PRE-CREATION 
>   src/health-check/main.cpp 707810a 
>   src/launcher/executor.cpp 9c80848 
>   src/linux/cgroups.hpp decad9d 
>   src/linux/cgroups.cpp 6a73dd7 
>   src/master/master.cpp 251b699 
>   src/slave/containerizer/containerizer.cpp 1b71f33 
>   src/slave/containerizer/docker.hpp PRE-CREATION 
>   src/slave/containerizer/docker.cpp PRE-CREATION 
>   src/slave/containerizer/external_containerizer.cpp 3f28d85 
>   src/slave/containerizer/isolators/cgroups/cpushare.hpp 780037b 
>   src/slave/containerizer/isolators/cgroups/cpushare.cpp 3265a80 
>   src/slave/containerizer/isolators/cgroups/mem.hpp 8c476c7 
>   src/slave/containerizer/isolators/cgroups/mem.cpp e8d1e35 
>   src/slave/containerizer/isolators/posix.hpp 17bbd10 
>   src/slave/flags.hpp 1fe7b7d 
>   src/slave/slave.cpp f42ab60 
>   src/tests/cgroups_tests.cpp 01cf498 
>   src/tests/docker_containerizer_tests.cpp PRE-CREATION 
>   src/tests/docker_tests.cpp PRE-CREATION 
>   src/tests/environment.cpp 434b3f7 
>   src/tests/flags.hpp a003e7f 
>   src/tests/script.cpp 15a6542 
>   src/usage/usage.hpp 5a76746 
>   src/usage/usage.cpp 29014d1 
> 
> Diff: https://reviews.apache.org/r/23771/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Timothy Chen
> 
>

Reply via email to