I tired to sum everything in the wiki page [1] Please review the page and see if there is something I missed or that you don't agree with.
----- Original Message ----- > From: "Adam Litke" <a...@us.ibm.com> > To: "Dan Kenigsberg" <dan...@redhat.com> > Cc: "Saggi Mizrahi" <smizr...@redhat.com>, "VDSM Project Development" > <vdsm-devel@lists.fedorahosted.org>, "Daniel > Veillard" <veill...@redhat.com>, "Anthony Liguori" <aligu...@redhat.com> > Sent: Thursday, June 21, 2012 10:41:36 AM > Subject: Re: [vdsm] [virt-node] RFC: API Supportability > > On Thu, Jun 21, 2012 at 01:20:40PM +0300, Dan Kenigsberg wrote: > > On Wed, Jun 20, 2012 at 10:42:16AM -0500, Adam Litke wrote: > > > On Tue, Jun 19, 2012 at 10:17:28AM -0400, Saggi Mizrahi wrote: > > > > I've opened a wiki page [1] for the stable API and extracted > > > > some of the "TODO" points so we don't forget. Everyone can > > > > feel free to add more stuff. > > > > > > > > [1] http://ovirt.org/wiki/VDSM_Stable_API_Plan > > > > > > > > Rest of the comments inline > > > > ----- Original Message ----- > > > > > From: "Adam Litke" <a...@us.ibm.com> > > > > > To: "Saggi Mizrahi" <smizr...@redhat.com> > > > > > Cc: "VDSM Project Development" > > > > > <vdsm-devel@lists.fedorahosted.org>, "Barak Azulay" > > > > > <bazu...@redhat.com>, "Itamar > > > > > Heim" <ih...@redhat.com>, "Ayal Baron" <aba...@redhat.com>, > > > > > "Anthony Liguori" <aligu...@redhat.com> > > > > > Sent: Monday, June 18, 2012 12:23:10 PM > > > > > Subject: Re: [virt-node] RFC: API Supportability > > > > > > > > > > On Mon, Jun 18, 2012 at 11:02:25AM -0400, Saggi Mizrahi > > > > > wrote: > > > > > > The first thing we need to decide is API supportabiliy. > > > > > > I'll list the > > > > > > questions that need to be answered. The decision made here > > > > > > will have great > > > > > > effect on transport selection (espscially API change > > > > > > process and > > > > > > versioning) so try and think about this without going to > > > > > > specfic > > > > > > technicalities (eg. "X can't be done on REST"). > > > > > > > > > > Thanks for sending this out. I will take a crack at these > > > > > questions... > > > > > > > > > > I would like to pose an additional question to be answered: > > > > > > > > > > - Should API parameter and return value constraints be > > > > > formally defined? If > > > > > so, how? > > > > > > > > > > Think of this as defining an API schema. For example: When > > > > > creating a VM, > > > > > which parameters are required/optional? What are the valid > > > > > formats for > > > > > specifying a VM disk? What are all of the possible task > > > > > states? > > > > Has to be part of response to the call that retrieves the > > > > state. This will > > > > allow us to change the states in a BC manner. > > > > > > I am not sure I agree. I think it should be a part of the schema > > > but not > > > transmitted along with each API response involving a task. This > > > would increase > > > traffic and make responses unnecessarily verbose. > > > > > > > > Is there a maximum length for the storage domain > > > > > description? > > > > I totally agree, how depends on the transport of choice but in > > > > any case I > > > > think the definition should be done in a declarative manner > > > > (XML\JSON) using > > > > concrete types (important for binding with C\Java) and have > > > > some *code to > > > > enforce* that the input is correct. This will prevent clients > > > > from not > > > > adhering to the schema exploiting python's relative lax > > > > approach to types. We > > > > already had issues with the engine wrongly sending numbers as > > > > strings and > > > > having this break internally because of some change in the > > > > python code made it > > > > not handle the conversion very well. > > > > > > Our schema should fully define a set of simple types and complex > > > types. Each > > > defined simple type will have an internal validation function to > > > verify > > > conformity of a given input. Complex types consist of nested > > > lists and dicts of > > > simple types. They are validated first by validating members as > > > simple types > > > and then checking for missing and/or extra data. > > > > When designing a dependable API, we should not desert our agility. > > ovirt-Engine has enjoyed the possibility of saying "hey, we want > > another > > field reported in getVdsStats" and presto, here it was. > > Complex types should be easily extendible (with a proper update of > > the > > API minor version, or a capabilities set). > > +1 > > -- > Adam Litke <a...@us.ibm.com> > IBM Linux Technology Center > > _______________________________________________ vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel