mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anindya Sinha <anindya_si...@apple.com>
Subject Re: Review Request 51999: Refactor parsing of resources to include all valid resources.
Date Wed, 21 Sep 2016 04:13:47 GMT


> On Sept. 20, 2016, 5 p.m., Jiang Yan Xu wrote:
> > include/mesos/resources.hpp, lines 60-64
> > <https://reviews.apache.org/r/51999/diff/2/?file=1504205#file1504205line60>
> >
> >     We can get rid of this forward declaration if we can get rid of the internal
convertJSON.

Based on the refactor, we are keeping `convertJSON()`.


> On Sept. 20, 2016, 5 p.m., Jiang Yan Xu wrote:
> > include/mesos/resources.hpp, line 201
> > <https://reviews.apache.org/r/51999/diff/2/?file=1504205#file1504205line201>
> >
> >     This is too similar to 
> >     
> >     ```
> >     static Try<Resources> parse(
> >           const std::string& text,
> >           const std::string& defaultRole = "*");
> >     ```
> >     
> >     I was originally suggesting moving over convertJSON but I guess it's more suitable
here in the following form:
> >     
> >     ```
> >     Try<vector<Resource>> fromJSONString(
> >         const std::string& text,
> >         const std::string& defaultRole)
> >     ```
> >     
> >     Similarly for simple flat strings:
> >     
> >     ```
> >     Try<vector<Resource>> fromSimpleString(
> >         const std::string& text,
> >         const std::string& defaultRole)
> >     ```
> >     
> >     When we have both, then 
> >     
> >     ```
> >     static Try<Resources> parse(
> >         const std::string& text,
> >         const std::string& defaultRole = "*");
> >     ```
> >     
> >     becomes a mere convenience method that calls the above two methods in sequence.
The convenience method can be simply documented as:
> >     
> >     ```
> >       /** 
> >        * Returns Resources from an input string.
> >        *
> >        * Parses Resources from text in the form of a JSON array (see
> >        * `fromJSONString()`). If that fails, parses text in the simple 
> >        * string form (see `fromSimpleString()`).
> >        */
> >     ```
> >     
> >     How does it sound?

Well, we can do this in a couple of ways. The current approach was to use `Resources::parseText()`
[or we could call it `Resources::parse()` with an additional parameter to include or not include
empty resources], which `Resources::parse()` would call to implicitly convert to `Resources`
from `vecor<Resource>`, whereas in `Containerizer::resources()`, we would call `Resources::parseText()`
or `Resources::parse()` with the additional parameter.
Another option we discussed is to expose another `Resources::parse()` that returns `vecor<Resource>`
in a separate namespace which probably is cleaner but would require refactor in other call
sites.
For now, we would follow the approach specified above.


- Anindya


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


On Sept. 19, 2016, 10:42 p.m., Anindya Sinha wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/51999/
> -----------------------------------------------------------
> 
> (Updated Sept. 19, 2016, 10:42 p.m.)
> 
> 
> Review request for mesos and Jiang Yan Xu.
> 
> 
> Bugs: MESOS-6062
>     https://issues.apache.org/jira/browse/MESOS-6062
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> During parsing of resources in the startup flags of mesos agent, all
> the valid resources (including empty resources) are accumulated in a
> vector of Resource protobufs.
> 
> 
> Diffs
> -----
> 
>   include/mesos/resources.hpp 3ef8cacee529addc745b4aeb6398d7606c61b749 
>   include/mesos/v1/resources.hpp ef56b4960b103a3efd916fab64796aa334ba44c6 
>   src/common/resources.cpp 4602bff22ec7ff77f069056085ad92bfa04595f3 
>   src/slave/containerizer/containerizer.cpp d46882baa904fd439bffb23c324828b777228f1c

>   src/tests/resources_tests.cpp 3e493007d6d1d8194d07035aaa1cde28dedf2b5a 
>   src/v1/resources.cpp 7c4db44d4c31a8295cc16b0ce1ef5adf314e6ac6 
> 
> Diff: https://reviews.apache.org/r/51999/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Anindya Sinha
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message