> On Oct. 2, 2016, 1:56 a.m., Guangya Liu wrote:
> > src/common/resources.cpp, line 587
> > <https://reviews.apache.org/r/51999/diff/6/?file=1513449#file1513449line587>
> >
> >     I think it is not good to update here in this patch as I cannot see the 
> > reason why do we want to update here in this patch, can we move this update 
> > to the patch where it is needed?

I think the change is appropriate here since the calling functions now return 
`Try<vector<Resource>>`.


> On Oct. 2, 2016, 1:56 a.m., Guangya Liu wrote:
> > src/common/resources.cpp, line 645
> > <https://reviews.apache.org/r/51999/diff/6/?file=1513449#file1513449line645>
> >
> >     As the API `fromJSONString(fromJSONArry as I proposed)` will also be 
> > called by agent to parse agent resource flags, so here may not

The `Resources::validate()` call is moved to `Resources::parse()` and also 
added in the private function in containerizer.cpp in 
https://reviews.apache.org/r/51879/ (since that patch is where we introduced 
auto detection if value is not specified). But I moved that change now in this 
patch to follow the chain easily.


> On Oct. 2, 2016, 1:56 a.m., Guangya Liu wrote:
> > src/common/resources.cpp, line 652
> > <https://reviews.apache.org/r/51999/diff/6/?file=1513449#file1513449line652>
> >
> >     As the `fromJSONString` (I prefer we rename this as fromJSONArray) will 
> > also be called in containerizer to parse resources from agent flag, so here 
> > we also need to call `validateCommandLineResources` to make sure there is 
> > no persistent volume, revocable resources etc.
> >     
> >     Also if we add the `validateCommandLineResources` here we can remove it 
> > from #553 to #556.

I would keep the call to `internal::validateCommandLineResources()` from the 
top level function. The 2 functions `fromJSONArray()` and `fromSimpleString()` 
returns an unvalidated `Try<vector<Resource>>` (also added that in the header 
of the respective function definition in resources.hpp), and the top level 
function needs to ensure it is valid in its own context by calling:
(1) `Resources::validate()` for generic validation of each `Resource` object.
(2) `internal::validateCommandLineResources()` to take care of persistent 
volumes, dynamic reservations and so on.

The top level functions are `Resources::parse()` as in this patch and from the 
private static function in containerizer.cpp (`parse()` which is added in 
https://reviews.apache.org/r/51879/ which handles parsing agent 
`flags.resources`.


> On Oct. 2, 2016, 1:56 a.m., Guangya Liu wrote:
> > src/common/resources.cpp, lines 697-698
> > <https://reviews.apache.org/r/51999/diff/6/?file=1513449#file1513449line697>
> >
> >     I think we do not need validate here as here the `Resource` is get from 
> > `name, value, role`.

Agreed. See my previous response for why it was the way it is. However, I moved 
that change now in this patch to follow the chain easily.


> On Oct. 2, 2016, 1:56 a.m., Guangya Liu wrote:
> > src/common/resources.cpp, line 708
> > <https://reviews.apache.org/r/51999/diff/6/?file=1513449#file1513449line708>
> >
> >     Seems we still need `validateCommandLineResources` here as 
> > `fromSimpleString` will also be called in containerizer when parsing 
> > resources from agent flag, we should make sure there is no persistent 
> > volume, revocable etc.
> >     
> >     After add `validateCommandLineResources` here, we can remove the 
> > validation from #553 to #556

As indicated before (and specified in the function signature in the header 
files), the functions `fromJSONArray()` and `fromSimpleString()` return an 
unvalidated `Try<vector<Resource>>` which is validated by calling 
`Resources::validate()` and `internal::validateCommandLineResources()` from the 
top level functions, viz. `Resources::parse()` [in this patch], and from the 
private static function in containerizer.cpp (parse() which is added in 
https://reviews.apache.org/r/51879/.


- Anindya


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


On Sept. 28, 2016, 7:24 p.m., Anindya Sinha wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/51999/
> -----------------------------------------------------------
> 
> (Updated Sept. 28, 2016, 7:24 p.m.)
> 
> 
> Review request for mesos and Jiang Yan Xu.
> 
> 
> Bugs: MESOS-6062
>     https://issues.apache.org/jira/browse/MESOS-6062
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Refactored `Resources::parse()` into 2 separate static functions:
> 1. Resources::fromJSONString() to parse JSON representation of
>    resources.
> 2. Resources::fromSimpleString() to parse text representation of
>    resources.
> 
> Since these 2 new functions return a `Try<vector<Resource>>`, the
> existing `Resources::parse()` implicitly converts that to a
> `Resources` object. This refactor is done to retrieve all resources
> (include empty resources) required for auto detection of root
> and MOUNT disks.
> 
> 
> Diffs
> -----
> 
>   include/mesos/resources.hpp 3ef8cacee529addc745b4aeb6398d7606c61b749 
>   include/mesos/v1/resources.hpp ef56b4960b103a3efd916fab64796aa334ba44c6 
>   src/common/resources.cpp 0774ff0669e831494d5b12b88e19dfa0a4a3f757 
>   src/tests/resources_tests.cpp 3e493007d6d1d8194d07035aaa1cde28dedf2b5a 
>   src/v1/resources.cpp 62a644ebbd13cfc0862bd118ba16c43e0f6aaf90 
> 
> Diff: https://reviews.apache.org/r/51999/diff/
> 
> 
> Testing
> -------
> 
> All tests passed.
> 
> 
> Thanks,
> 
> Anindya Sinha
> 
>

Reply via email to