> On Jan. 30, 2017, 1:23 a.m., Michael Park wrote:
> > src/common/protobuf_utils.cpp, lines 332-335
> > <https://reviews.apache.org/r/55863/diff/1/?file=1613193#file1613193line332>
> >
> >     Is there a reason why we don't just mutate it in-place?
> >     ```cpp
> >     void adjustOfferOperation(
> >         Offer::Operation* operation,
> >         const Resource::AllocationInfo& allocationInfo);
> >     ```

Sounds good to me.


> On Jan. 30, 2017, 1:23 a.m., Michael Park wrote:
> > src/common/protobuf_utils.cpp, lines 340-341
> > <https://reviews.apache.org/r/55863/diff/1/?file=1613193#file1613193line340>
> >
> >     I think it'd be clearer for us to write:
> >     
> >     ```cpp
> >     foreach (TaskInfo& task, *result.launch().mutable_task_infos()) {
> >       // ...
> >     }
> >     ```

Now I remember why I avoided this, note that it has to be mutable the whole way 
through:

```
foreach (TaskInfo& task,
         *operation->mutable_launch()->mutable_task_infos()) {
  // ...
}
```

I'll work around this by storing the launch and other operations into variables.


> On Jan. 30, 2017, 1:23 a.m., Michael Park wrote:
> > src/common/protobuf_utils.cpp, lines 343-348
> > <https://reviews.apache.org/r/55863/diff/1/?file=1613193#file1613193line343>
> >
> >     We basically do this for every repeated resources field within 
> > `Offer::Operation`. Can we introduce a function similar to 
> > `adjustOfferOperation`?
> >     
> >     ```cpp
> >     void adjustResources(
> >         RepeatedPtrField<Resource>* resources,
> >         const Resource::AllocationInfo& allocationInfo);
> >     ```
> >     
> >     The `injectAllocationInfo` helper which operates on `FrameworkInfo`
> >     I think should just be:
> >     
> >     ```cpp
> >       auto injectAllocationInfo = [](
> >           RepeatedPtrField<Resource>* resources,
> >           const FrameworkInfo& frameworkInfo)
> >       {
> >         if (protobuf::frameworkHasCapability(
> >               frameworkInfo,
> >               FrameworkInfo::Capability::MULTI_ROLE) {
> >           return;      
> >         }
> >         
> >         Resource::AllocationInfo allocationInfo;
> >         allocationInfo.set_role(frameworkInfo.role);
> >         adjustResources(resources, allocationInfo);
> >       };
> >     ```

Added a lambda to simplify this implementation. Will look into your suggestion 
for the subsequent patch.


- Benjamin


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


On Jan. 23, 2017, 10:59 p.m., Benjamin Mahler wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/55863/
> -----------------------------------------------------------
> 
> (Updated Jan. 23, 2017, 10:59 p.m.)
> 
> 
> Review request for mesos, Benjamin Bannier, Jay Guo, Guangya Liu, and Michael 
> Park.
> 
> 
> Bugs: MESOS-6967
>     https://issues.apache.org/jira/browse/MESOS-6967
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Previously, `Resource` did not contain `AllocationInfo`. So for
> backwards compatibility with old schedulers and tooling, we must
> allow operations to contain `Resource`s without an `AllocationInfo`.
> 
> This introduces a function which allows the master to inject the
> offer's `AllocationInfo` into the operation's resources.
> 
> 
> Diffs
> -----
> 
>   src/common/protobuf_utils.hpp faa7e2a759fd2b1ce5def662679f573ec6fefd28 
>   src/common/protobuf_utils.cpp dd20759affe3adf2867a33bf875c9ee82862038d 
>   src/tests/protobuf_utils_tests.cpp bc2a3d0ebe544a58d0de8f2f7174c170113ddf2e 
> 
> Diff: https://reviews.apache.org/r/55863/diff/
> 
> 
> Testing
> -------
> 
> Added a test.
> 
> 
> Thanks,
> 
> Benjamin Mahler
> 
>

Reply via email to