[Openais] Ideas for a cleaner/easier to use objdb API
Fabio M. Di Nitto
fabbione at fabbione.net
Tue Jul 28 21:11:35 PDT 2009
On Tue, 2009-07-28 at 20:39 -0700, Steven Dake wrote:
> On Wed, 2009-07-29 at 05:34 +0200, Fabio M. Di Nitto wrote:
> > On Wed, 2009-07-29 at 09:03 +1200, Angus Salkeld wrote:
> > > Why do you need this?
> > >
> > > I know the config file is set out like this, but why force the requirement
> > > onto objdb?
> > >
> > > -Angus
> > >
> > > On Wed, Jul 29, 2009 at 8:07 AM, Fabio M. Di Nitto<fabbione at fabbione.net> wrote:
> > > > On Wed, 2009-07-29 at 07:30 +1200, Angus Salkeld wrote:
> > > >> Hi
> > > >>
> > > >> Here is a first attempt at an easier to use API for objdb.
> > > >
> > > >> 2) Each object/key must have a unique name (as a string)
> > > >> 2.1) So no child objects named the same (service, logging,...)
> > > >
> > > > This breaks current requirements from the objdb as we need to have
> > > > objects in the same level with the same string name.
> >
> > Because you are looking only at corosync config file type.
> >
> > Try to load an xml file (like cluster.conf) into the objdb:
> >
> > <clusternodes>
> > <clusternode name="diapolon" nodeid="1" votes="1"/>
> > <clusternode name="cerberus" nodeid="2" votes="1"/>
> > </clusternodes>
> >
> > how do you map the 2 clusternode entries if you can't have more than one
> > object with the same name (clusternode) at the same level?
> > name/nodeid/votes are keys+values.
> >
>
> one possibility is to do something like
> object clusternodes
> object diapolon
> key nodeid = 1
> key votes = 1
> object cerberus
> key nodeid = 2
> key votes = 2
That doesn't scale at all as it requires tons of special casing for all
different kind of data you can have there. Not all objects in xml have a
name entry and clusternode is only one of the many that are repeated.
Fabio
More information about the Openais
mailing list