> On Nov. 25, 2016, 3:04 p.m., Guangya Liu wrote: > > src/master/validation.cpp, lines 295-305 > > <https://reviews.apache.org/r/54062/diff/3/?file=1570442#file1570442line295> > > > > How about the following? > > > > ``` > > // TODO(jay_guo) Consider extending this method to validate more > > // fields of FrameworkInfo in the future. > > Option<Error> validate(const mesos::FrameworkInfo& frameworkInfo) > > { > > vector<lambda::function<Option<Error>()>> validators = { > > lambda::bind(internal::validateRoles, frameworkInfo) > > }; > > > > foreach (const lambda::function<Option<Error>()>& validator, > > validators) { > > Option<Error> error = validator(); > > if (error.isSome()) { > > return error; > > } > > } > > > > return None(); > > } > > ```
Probably let's not overengineer this for now and revisit when we need to extend it in the future? - Jay ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/54062/#review156920 ----------------------------------------------------------- On Nov. 25, 2016, 11:26 a.m., Jay Guo wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/54062/ > ----------------------------------------------------------- > > (Updated Nov. 25, 2016, 11:26 a.m.) > > > Review request for mesos, Benjamin Mahler, 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 | > |-------|-------|---------| > > One test case is added to ensure validateRoles() catches invalid > combination of these attributes. Another three test cases are added > to ensure the master accepts/rejects subscription given valid/invalid > multiple 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 > >
