[Libosinfo] Resources inheritance for OSes, I need some help/feedback!

Fabiano Fidêncio fidencio at redhat.com
Tue Nov 13 11:48:54 UTC 2018


On Tue, 2018-11-13 at 10:33 +0000, Daniel P. Berrangé wrote:
> On Tue, Nov 13, 2018 at 11:27:47AM +0100, Fabiano Fidêncio wrote:
> > On Tue, 2018-11-13 at 09:58 +0000, Daniel P. Berrangé wrote:
> > > On Tue, Nov 13, 2018 at 10:10:17AM +0100, Fabiano Fidêncio wrote:
> > > > People,
> > > > 
> > > > I'm working on making OsinfoResources inherited for OSes that
> > > > derives-
> > > > from/clones another OSes. The inheritance, IMO, should work
> > > > like:
> > > > - os1 has:
> > > >   <resources arch="all">
> > > >     <minimum>
> > > >       <cpu>1000000000</cpu>
> > > >       <ram>1073741824</ram>
> > > >     </minimum>
> > > >   </resources>
> > > > 
> > > > - os2, which inherits the values from os1, has:
> > > >   <resources arch="all">
> > > >     <minimum>
> > > >       <n-cpus>2</n-cpus>
> > > >     </minimum>
> > > >   </resources>
> > > 
> > > I wonder about making inheritance explicit, eg for os2, have
> > > 
> > >    <resources arch="all" inherit="yes">
> > >      <minimum>
> > >        <n-cpus>2</n-cpus>
> > >      </minimum>
> > >    </resources>
> > > 
> > > the benefit of this is that....  [1]
> > 
> > Okay, this idea makes things easier, I like it.
> > 
> > > > - When calling osinfo_resources_get_cpu(os2), I'd expect to
> > > > get:
> > > > 1000000000.
> > > > 
> > > > 
> > > > In order to achieve so, we'll need a few more changes in the
> > > > way
> > > > resources are added to OSes:
> > > > - Do *not* have duplicated resources for the same OS;
> > > >   - This can be easily done in osinfo_os_add_*_resources() +
> > > > tests
> > > > to
> > > > catch this situation;
> > > > - Do *not* have more than one resources with the same arch for
> > > > the
> > > > same
> > > > OS;
> > > >   - Although this can be easily done  in
> > > > osinfo_os_add_*_resources() as
> > > > well, I'd go only for tests to catch this situation;
> > > 
> > > These points look tangential to inheritance to me. Or to put it
> > > another
> > > way, shouldn't we ensure uniqueness regardless of whether we have
> > > inheritance or not.
> > 
> > What would be the use case of having different resources set for
> > the
> > very same architecture in an OS?
> 
> I don't see any need for it - I'm saying that we should ensure
> uniqueness regardless. It is just a separate (bug fix) work item
> from inheritance

Ooops, sorry. I haven't properly parsed your first message, my bad.

I'll get back to the resources inheritance work with our discussion in
mind. And about the resources uniqueness, I've submitted a new test
enforcing it: 
https://www.redhat.com/archives/libosinfo/2018-November/msg00112.html

> 
> > > 
> > > > - Have a way to specify that a resource field shouldn't be
> > > > inherited;
> > > >   - Here I can basically see two different approaches, and my
> > > > personal
> > > > preference would be the former:
> > > >     - A specific value to be set to the field that will just be
> > > > checked
> > > > when merging the resources' content when doing the inheritance
> > > > (suggestions are welcome and remember we can't use -1);
> > > >     - Add an extra attribute to the elements and have a new
> > > > structure
> > > > (similar to DeviceLinks) and play with it in the same way I
> > > > proposed
> > > > for removed devices*.
> > > 
> > > [1]...you solve this problem more attractively IMHO.
> > > 
> > > Regards,
> > > Daniel
> > 
> > Best Regards,
> > -- 
> > Fabiano Fidêncio
> > 
> 
> Regards,
> Daniel

Thanks for the input,
-- 
Fabiano Fidêncio




More information about the Libosinfo mailing list