Re: [Openstack] [nova] Call for Help -- OpenStack API XML Support

2012-08-10 Thread Gabe Westmaas


 -Original Message-
 From: openstack-
 bounces+gabe.westmaas=rackspace@lists.launchpad.net
 [mailto:openstack-
 bounces+gabe.westmaas=rackspace@lists.launchpad.net] On Behalf Of
 Daniel P. Berrange
 Sent: Friday, August 10, 2012 8:48 AM
 To: Vishvananda Ishaya
 Cc: OpenStack Development Mailing List; openstack@lists.launchpad.net
 (openstack@lists.launchpad.net)
 Subject: Re: [Openstack] [nova] Call for Help -- OpenStack API XML Support
 
 On Thu, Aug 09, 2012 at 03:25:01PM -0700, Vishvananda Ishaya wrote:
  Hello Everyone,
 
  We are in the unfortunate position of not knowing how good our
  OpenStack API XML support is. All of our integration tests use json.
  Many of the compute extensions don't even have XML deserializers. We
  also assume that there bugs we don't even know about due to underuse.
  We need to do something about XML by Folsom, because releasing a buggy
 api isn't good for anyone.
 
 I don't know this area of Nova code at all, but I must say I'm surprised that 
 it
 actually needs explicit extra work to accept or output XML, instead of JSON.
 It should be possible to auto generate an XML document from a JSON
 document, and vica-verca.
 At which point you'd not need to have 2 sets of tests for JSON vs XML, all you
 need test is the XML-JSON conversions.
 
 I can imagine this isn't done because of a need to maintain compat with some
 special XML schema that isn't a direct 1-1 mapping from the JSON schema ?
 Are there other complications preventing this  being done

Correct.  Extensions also cause some issues, though it all basically comes back 
to not being a 1-1 mapping.  The reason it's not 1-1 is not because of 
different data, but just the representation of the same data.

 
  1) We get a lot of community support and we manage to get XML into
 usable shape by Folsom.
 
  2) We get enough community support to get the core api working and the
 most important extensions in place. We release clear documentation on
 what is expected to work.
 
  3) We get no support, in which case we mark XML support deprecated and
 encourage people to use JSON only.
 
 4) Deprecate the current XML schemas, and declare new XML schemas
which are a 1-1 mapping from the JSON

The biggest problem with this is that either json or XML ends up feeling second 
class.  If you were writing XML for XML's sake it wouldn't come out looking 
like XML generated from json schemas.  I will say that the reason it came out 
like this in the current API is that XML was first class with auto-generated 
JSON, which was pretty bad.  Rather than going the other way, we opted to keep 
both optimized for development against the API rather than for development of 
the API.

Anyway, not saying it can't be done, but I am saying that XML will feel like a 
second class format.  This mostly has to do with figuring out when something 
should be an attribute of an element vs when it should be a value of an 
element.  I think we ran into some issues around collections that were 
non-auto-translatable as well, but I'm struggling to remember them.

We can decide to just pick a translation and go with it, of course.  Although 
perhaps we need an expert on enterprise tools to make sure that the XML we 
generate properly translates into sane objects in those enterprise tools.

 
  Note that other openstack projects only support json, and there are
  already java bindings that use json so option 3) isn't terrible, but
  we don't want to go that route without discussing it with the
  community first. If anyone has alternative solutions or suggestions,
  feel free to let me know.
 
 If we can get to a position where we auto-generate XML from JSON for
 Nova, we could do the same for other projects too
 
 Regards,
 Daniel
 --
 |: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
 |: http://libvirt.org  -o- http://virt-manager.org :|
 |: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
 |: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] [nova] Call for Help -- OpenStack API XML Support

2012-08-10 Thread Gabe Westmaas


 -Original Message-
 From: openstack-
 bounces+gabe.westmaas=rackspace@lists.launchpad.net
 [mailto:openstack-
 bounces+gabe.westmaas=rackspace@lists.launchpad.net] On Behalf Of
 Gabe Westmaas
 Sent: Friday, August 10, 2012 9:15 AM
 To: Daniel P. Berrange; Vishvananda Ishaya
 Cc: OpenStack Development Mailing List; openstack@lists.launchpad.net
 (openstack@lists.launchpad.net)
 Subject: Re: [Openstack] [nova] Call for Help -- OpenStack API XML Support
 
 
 
  -Original Message-
  From: openstack-
  bounces+gabe.westmaas=rackspace@lists.launchpad.net
  [mailto:openstack-
  bounces+gabe.westmaas=rackspace@lists.launchpad.net] On Behalf
 Of
  Daniel P. Berrange
  Sent: Friday, August 10, 2012 8:48 AM
  To: Vishvananda Ishaya
  Cc: OpenStack Development Mailing List; openstack@lists.launchpad.net
  (openstack@lists.launchpad.net)
  Subject: Re: [Openstack] [nova] Call for Help -- OpenStack API XML
  Support
 
  On Thu, Aug 09, 2012 at 03:25:01PM -0700, Vishvananda Ishaya wrote:
   Hello Everyone,
  
   We are in the unfortunate position of not knowing how good our
   OpenStack API XML support is. All of our integration tests use json.
   Many of the compute extensions don't even have XML deserializers. We
   also assume that there bugs we don't even know about due to underuse.
   We need to do something about XML by Folsom, because releasing a
   buggy
  api isn't good for anyone.
 
  I don't know this area of Nova code at all, but I must say I'm
  surprised that it actually needs explicit extra work to accept or output 
  XML,
 instead of JSON.
  It should be possible to auto generate an XML document from a JSON
  document, and vica-verca.
  At which point you'd not need to have 2 sets of tests for JSON vs XML,
  all you need test is the XML-JSON conversions.
 
  I can imagine this isn't done because of a need to maintain compat
  with some special XML schema that isn't a direct 1-1 mapping from the
 JSON schema ?
  Are there other complications preventing this  being done
 
 Correct.  Extensions also cause some issues, though it all basically comes 
 back
 to not being a 1-1 mapping.  The reason it's not 1-1 is not because of 
 different
 data, but just the representation of the same data.
 
 
   1) We get a lot of community support and we manage to get XML into
  usable shape by Folsom.
  
   2) We get enough community support to get the core api working and
   the
  most important extensions in place. We release clear documentation on
  what is expected to work.
  
   3) We get no support, in which case we mark XML support deprecated
   and
  encourage people to use JSON only.
 
  4) Deprecate the current XML schemas, and declare new XML schemas
 which are a 1-1 mapping from the JSON
 
 The biggest problem with this is that either json or XML ends up feeling
 second class.  If you were writing XML for XML's sake it wouldn't come out
 looking like XML generated from json schemas.  I will say that the reason it
 came out like this in the current API is that XML was first class with auto-
 generated JSON, which was pretty bad.  Rather than going the other way, we
 opted to keep both optimized for development against the API rather than
 for development of the API.
 
 Anyway, not saying it can't be done, but I am saying that XML will feel like a
 second class format.  This mostly has to do with figuring out when something
 should be an attribute of an element vs when it should be a value of an
 element.  I think we ran into some issues around collections that were non-
 auto-translatable as well, but I'm struggling to remember them.
 
 We can decide to just pick a translation and go with it, of course.  Although
 perhaps we need an expert on enterprise tools to make sure that the XML
 we generate properly translates into sane objects in those enterprise tools.
 

Oh, and, even if we do this, that does not remove the need for additional tests 
around XML, of course.  We still need to make sure that is working correctly.

 
   Note that other openstack projects only support json, and there are
   already java bindings that use json so option 3) isn't terrible, but
   we don't want to go that route without discussing it with the
   community first. If anyone has alternative solutions or suggestions,
   feel free to let me know.
 
  If we can get to a position where we auto-generate XML from JSON for
  Nova, we could do the same for other projects too
 
  Regards,
  Daniel
  --
  |: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/
 :|
  |: http://libvirt.org  -o- http://virt-manager.org 
  :|
  |: http://autobuild.org   -o- http://search.cpan.org/~danberr/ 
  :|
  |: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc 
  :|
 
  ___
  Mailing list: https://launchpad.net/~openstack
  Post to : openstack@lists.launchpad.net
  Unsubscribe : https