> On 十一月 25, 2016, 3:20 a.m., Guangya Liu wrote:
> > src/common/roles.cpp, lines 110-130
> > <https://reviews.apache.org/r/54062/diff/1/?file=1570158#file1570158line110>
> >
> > Can we simplify the logic as your diagram above:
> >
> > ```
> > if (frameworkInfo.roles_size() > 0 &&
> > frameworkInfo.has_role()) {
> >
> > }
> >
> > if (frameworkHasCapability(
> > frameworkInfo,
> > FrameworkInfo::Capability::MULTI_ROLE)) {
> > if (frameworkInfo.roles_size() == 0 &&
> > frameworkInfo.has_role()) {
> >
> > }
> > } else {
> > if (frameworkInfo.roles_size() > 0 &&
> > !frameworkInfo.has_role()) {
> >
> > }
> > }
> > ```
>
> Jay Guo wrote:
> I don't see this simplifies the logic, since inevitably we need to have
> three error cases. And since the diagram describes the results in 2
> categories, w/o MULTI_ROLE, I think current implementation may reflect that
> pattern better, what do you think?
I want to use less nested `if-else`. ;)
```
} else {
if (frameworkInfo.roles_size()) {
if (frameworkInfo.has_role()) {
return Error("Only one of FrameworkInfo.role and FrameworkInfo.roles "
"must be set at a time.");
} else {
return Error("If FrameworkInfo.roles is set, then the MULTI_ROLE "
"framework capability must be provided.");
}
}
}
```
> On 十一月 25, 2016, 3:20 a.m., Guangya Liu wrote:
> > src/common/roles.cpp, line 138
> > <https://reviews.apache.org/r/54062/diff/1/?file=1570158#file1570158line138>
> >
> > I think that you do not need this as there is no need to persist roles
> > in this validation.
>
> Jay Guo wrote:
> This is used to check duplicate entries in roles. I added some comments
> in the revision.
I see, we need check here.
- Guangya
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/54062/#review156878
-----------------------------------------------------------
On 十一月 25, 2016, 6:45 a.m., Jay Guo wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/54062/
> -----------------------------------------------------------
>
> (Updated 十一月 25, 2016, 6:45 a.m.)
>
>
> Review request for mesos, Guangya Liu and Qiang Zhang.
>
>
> Bugs: MESOS-6629
> https://issues.apache.org/jira/browse/MESOS-6629
>
>
> Repository: mesos
>
>
> Description
> -------
>
> We need to do necessary validation for the conflicts of role, roles
> and MULTI_ROLE capability. It complies with following matrix:
>
> -- MULTI_ROLE is NOT set -
> |-------|---------|
> |Roles |No Roles |
> |-------|-------|---------|
> |Role | Error | None |
> |-------|-------|---------|
> |No Role| Error | None |
> |-------|-------|---------|
>
> --- MULTI_ROLE is set ----
> |-------|---------|
> |Roles |No Roles |
> |-------|-------|---------|
> |Role | Error | Error |
> |-------|-------|---------|
> |No Role| None | None |
> |-------|-------|---------|
>
> Two test cases are added, one is for validateRoles method and another
> ensures that the master rejects subscription when provided invalid
> roles.
>
>
> Diffs
> -----
>
> src/master/master.cpp e03a2e8025943825a2902102c43dc0eb66bacb6a
> src/master/validation.hpp b8389460f34b3531f2b6ff93f18f496c01e1a079
> src/master/validation.cpp 42d9b4a8784c2a161b74d7b46619cc22272e14e3
> src/tests/master_validation_tests.cpp
> f893067859425967654401f3226149268b51cf57
>
> Diff: https://reviews.apache.org/r/54062/diff/
>
>
> Testing
> -------
>
> make check
>
>
> Thanks,
>
> Jay Guo
>
>