Re: [Openstack] Image API v2 Draft 4

2012-04-13 Thread Kiall Mac Innes
On Fri, Apr 13, 2012 at 1:28 AM, Jorge Williams 
jorge.willi...@rackspace.com wrote:

 Having said all of that,  I realize that our devs are working in a dynamic
 language, and don't see a lot of value in XML.  It's important to take that
 into consideration, but we should also be asking whether there's value to
 our current clients and potential clients.  Like it or not, there's a lot
 of folks out there using static languages.


I actually think this is an important point (But in favor of JSON!).

The OpenStack developers are writing in a dynamic language, python. This
means the tooling and experience available will be biased towards JSON over
XML for the most part. This, IMHO, will result in a less than perfect XML
implementation. I would much prefer to see a single great XML or
JSON implementation rather than two poor implementations.

Combine that with the massive uptake of dynamic languages over recent
years, and I would bet JSON is a more natural fit for a higher percent of
developers and end users (Please notice I said I would bet, not I know).

Maybe RackSpace (or any other large operator..) can share some stats of the
user-agents they see in the wild?

Thanks,
Kiall (A, likely biased, dynamic language guy ;))
___
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] Image API v2 Draft 4

2012-04-12 Thread Mark Nottingham
A little fuel for the fire / entertainment before the summit:
  http://www.mnot.net/blog/2012/04/13/json_or_xml_just_decide

Cheers,


On 10/04/2012, at 3:56 PM, Vishvananda Ishaya wrote:

 On Apr 10, 2012, at 2:26 AM, Thierry Carrez wrote:
 
 Jay Pipes wrote:
 I take it you didn't attend the glorious JSON debate of a couple of
 summits ago :-)
 
 Glorious it was indeed.
 
 I think the key quote was something like:
 Please don't bastardize my JSON with your XML crap
 
 According to my twitter, the actual quote was: Don't bring your XML filth 
 into my JSON
 
 Vish
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

--
Mark Nottingham
http://www.mnot.net/





___
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] Image API v2 Draft 4

2012-04-12 Thread Justin Santa Barbara
I may disagree with a couple of the points along the way; but I agree with
the conclusion for OpenStack.

Thanks for writing it!

Justin

PS vim or emacs?



On Thu, Apr 12, 2012 at 12:58 PM, Mark Nottingham m...@mnot.net wrote:

 A little fuel for the fire / entertainment before the summit:
  http://www.mnot.net/blog/2012/04/13/json_or_xml_just_decide

 Cheers,


 On 10/04/2012, at 3:56 PM, Vishvananda Ishaya wrote:

  On Apr 10, 2012, at 2:26 AM, Thierry Carrez wrote:
 
  Jay Pipes wrote:
  I take it you didn't attend the glorious JSON debate of a couple of
  summits ago :-)
 
  Glorious it was indeed.
 
  I think the key quote was something like:
  Please don't bastardize my JSON with your XML crap
 
  According to my twitter, the actual quote was: Don't bring your XML
 filth into my JSON
 
  Vish
 
 
 
  ___
  Mailing list: https://launchpad.net/~openstack
  Post to : openstack@lists.launchpad.net
  Unsubscribe : https://launchpad.net/~openstack
  More help   : https://help.launchpad.net/ListHelp

 --
 Mark Nottingham
 http://www.mnot.net/





 ___
 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] Image API v2 Draft 4

2012-04-12 Thread Jay Pipes

On 04/12/2012 03:58 PM, Mark Nottingham wrote:

A little fuel for the fire / entertainment before the summit:
   http://www.mnot.net/blog/2012/04/13/json_or_xml_just_decide


I *have* to point out that your article is published on Friday the 13th.

Just sayin' :)

-jay

___
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] Image API v2 Draft 4

2012-04-12 Thread Jorge Williams
Generally, I agree with a lot of what you're saying, but I want to point out a 
couple of things:

1.  Static language folks gravitate to XML, not simply because they're invested 
in it, but because it solves a real problem:

In a static language, I want to to say something like:

myServer.name = hello;

if I misspell name

myServer.nam = hello;

I should see an error...if I assign it to an integer...

myServer.name=10;

I should also see an error...

and I should see those errors at compile time or while I'm authoring my code if 
a have a good editor or IDEI shouldn't have to wait until my program is run 
to catch those errors. 

Sure, I can parse some JSON turn the result into a hashtable and if I'm using 
something like Scala, I can do  this

myServer(name) = hello

but at that point, there's very little benefit to having a static language, 
because I don't have the assurances and guarantees that the language provides. 
So I don't see a lot of Java folks dealing with JSON in that manner.  Most devs 
will  need to build a class before hand.  So, you decrease barriers for static 
language clients because there's a set of tools that can extract the relevant 
info from XML schema languages and generate a set of class files at compile 
time.   There's nothing saying you can't do something similar with JSON, but 
those sort of tools aren't there  yet.

2.  Then there's the issue of extensibilityespecially distributed 
extensibility. XML has that notion built in, JSON has no concept of it...and we 
are building extensible APIs. There are no standard way in JSON to introduce a  
new property without guaranteeing that there won't be  clash.  You've mention 
the need for namespaces in JSON precisely to  deal with this sort of issue 
(http://www.mnot.net/blog/2011/10/12/thinking_about_namespaces_in_json). 
In the absence of a standard method, we're been using prefixes, which has 
worked out well, but most JSON tools don't know how to deal with them and they 
seem alien to folk that are used to using JSON day to day. This is a big deal 
because dynamic language folks are more likely to deal with the JSON 
directly...Static language folks are generally not dealing with XML in the same 
way.  In XML, the notion of extensibility is build into parsers  and data 
binding tools directly.  Most folks don't have to worry too much about it.  In 
fact extensible protocols like XMPP and Atom Pub generally benefit from the 
extensibility that's already  built in:  
http://metajack.im/2010/02/01/json-versus-xml-not-as-simple-as-you-think/ 

Given that, if we're going to go the route of just picking one format, I think 
the fact that our API is extensible means that we might want to ask ourselves 
whether XML isn't a better fit :-)

Having said all of that,  I realize that our devs are working in a dynamic 
language, and don't see a lot of value in XML.  It's important to take that 
into consideration, but we should also be asking whether there's value to our 
current clients and potential clients.  Like it or not, there's a lot of folks 
out there using static languages. 

You're right in stating that if we had really good language bindings for Java 
and .Net, then issue #1 would essentially go away -- especially if we had 
language binding that was flexible enough to  remove the need to go down to the 
HTTP level.  Also, if the language binding itself was extensible we could also 
deal with issue 2.  As things stand today though, I don't thing that we are 
even remotely there yet.

-jOrGe W.


On Apr 12, 2012, at 2:58 PM, Mark Nottingham wrote:

 A little fuel for the fire / entertainment before the summit:
  http://www.mnot.net/blog/2012/04/13/json_or_xml_just_decide
 
 Cheers,
 
 
 On 10/04/2012, at 3:56 PM, Vishvananda Ishaya wrote:
 
 On Apr 10, 2012, at 2:26 AM, Thierry Carrez wrote:
 
 Jay Pipes wrote:
 I take it you didn't attend the glorious JSON debate of a couple of
 summits ago :-)
 
 Glorious it was indeed.
 
 I think the key quote was something like:
 Please don't bastardize my JSON with your XML crap
 
 According to my twitter, the actual quote was: Don't bring your XML filth 
 into my JSON
 
 Vish
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 --
 Mark Nottingham
 http://www.mnot.net/
 
 
 
 
 
 ___
 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] Image API v2 Draft 4

2012-04-10 Thread Thierry Carrez
Jay Pipes wrote:
 I take it you didn't attend the glorious JSON debate of a couple of
 summits ago :-)
 
 Glorious it was indeed.

I think the key quote was something like:
Please don't bastardize my JSON with your XML crap

-- 
Thierry Carrez (ttx)
Release Manager, OpenStack

___
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] Image API v2 Draft 4

2012-04-10 Thread Eoghan Glynn


 APPENDIX B: Outstanding issues
 ...
 2) How do we fit the existing 'copy_from' functionality in?


Is the v2 API retaining some equivalent of the existing
x-image-meta-location header, to allow an externally-stored
image be registered with glance?

e.g. via an image field specified on create or update:

  POST /images HTTP/1.1
  {external-location: s3://access:sec...@s3.amzonaws.com/image, ...}

or:

  PUT /images/IMAGE_ID HTTP/1.1
  {external-location: s3://access:sec...@s3.amzonaws.com/image, ...}

If so, the most straight-forward approach for copy-from would be to
follow a similar pattern with an image field such as:

  POST /images HTTP/1.1
  {copy-from: s3://access:sec...@s3.amzonaws.com/image, ...}

... etc.

Cheers,
Eoghan


___
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] Image API v2 Draft 4

2012-04-10 Thread Jay Pipes
FWIW, Nova already has this kind of abstraction, with views and 
serializers... I wasn't planning on reinventing any wheels with the 2.0 
Images API implementation; just using what Nova had (and hopefully 
moving it to openstack-common before bringing the code into Glance).


Best,
-jay

On 04/10/2012 06:51 AM, Doug Hellmann wrote:



On Mon, Apr 9, 2012 at 5:14 PM, Justin Santa Barbara
jus...@fathomdb.com mailto:jus...@fathomdb.com wrote:

When you're designing JSON considering only JSON, you'd
probably use {

key1: value1 } - as you have done.  If you're designing
generically,
you'd probably use { key: key1, value: value1 }.


You mean we'd have to do dumb crap because XML doesn't have the
native concept of a list? ;)


XML has lists, as does Avro, ProtocolBuffers  Thrift.  XML supports
extensible lists, which is why the syntax is different.

You'd *think* this would work. In practice, however, it
really doesn't. Neither does (good, valid) code generation...


Of course it works!  Every JAX-RS webserver does this.  You just
can't start with JSON first and expect everything to magically be OK.

If you think it doesn't work, can you provide an example?

You start with an abstract model, and then check what it looks like
in JSON, in XML, in ProtocolBuffers, in Avro, in Thrift, in HPSTR,
etc...  If you start with JSON, then of course it won't work.  If
we're going to treat XML as an afterthought, then I'd rather we just
didn't support XML at all (and yes, I absolutely mean that - it is
good that Glance is honest that they don't support XML.)


Kevin Dangoor and Christophe de Vienne have done some work on
abstracting the view of data inside and outside of the API with
TGWebServices [1] (a TurboGears add-on) and the more recent Web
Services Made Easy [2], which is framework agnostic. I have used TGWS
in the past to create an API using SOAP and JSON (it also supports
generic XML, but we didn't need that). I found that it worked well for
our purposes at the time.

[1] http://code.google.com/p/tgws/
[2] http://packages.python.org/WSME/


___
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] Image API v2 Draft 4

2012-04-10 Thread Jay Pipes
I'll let Waldon answer this, but I know that it is marked as to be 
determined currently in his notes on the API...


On 04/10/2012 09:21 AM, Eoghan Glynn wrote:

APPENDIX B: Outstanding issues
...
2) How do we fit the existing 'copy_from' functionality in?



Is the v2 API retaining some equivalent of the existing
x-image-meta-location header, to allow an externally-stored
image be registered with glance?

e.g. via an image field specified on create or update:

   POST /images HTTP/1.1
   {external-location: s3://access:sec...@s3.amzonaws.com/image, ...}

or:

   PUT /images/IMAGE_ID  HTTP/1.1
   {external-location: s3://access:sec...@s3.amzonaws.com/image, ...}

If so, the most straight-forward approach for copy-from would be to
follow a similar pattern with an image field such as:

   POST /images HTTP/1.1
   {copy-from: s3://access:sec...@s3.amzonaws.com/image, ...}

... etc.

Cheers,
Eoghan


___
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] Image API v2 Draft 4

2012-04-10 Thread Doug Hellmann
+1 on reusing existing code and the move

On Tue, Apr 10, 2012 at 10:47 AM, Jay Pipes jaypi...@gmail.com wrote:

 FWIW, Nova already has this kind of abstraction, with views and
 serializers... I wasn't planning on reinventing any wheels with the 2.0
 Images API implementation; just using what Nova had (and hopefully moving
 it to openstack-common before bringing the code into Glance).

 Best,
 -jay


 On 04/10/2012 06:51 AM, Doug Hellmann wrote:



 On Mon, Apr 9, 2012 at 5:14 PM, Justin Santa Barbara
 jus...@fathomdb.com mailto:jus...@fathomdb.com wrote:

When you're designing JSON considering only JSON, you'd
probably use {

key1: value1 } - as you have done.  If you're designing
generically,
you'd probably use { key: key1, value: value1 }.


You mean we'd have to do dumb crap because XML doesn't have the
native concept of a list? ;)


XML has lists, as does Avro, ProtocolBuffers  Thrift.  XML supports
extensible lists, which is why the syntax is different.

You'd *think* this would work. In practice, however, it
really doesn't. Neither does (good, valid) code generation...


Of course it works!  Every JAX-RS webserver does this.  You just
can't start with JSON first and expect everything to magically be OK.

If you think it doesn't work, can you provide an example?

You start with an abstract model, and then check what it looks like
in JSON, in XML, in ProtocolBuffers, in Avro, in Thrift, in HPSTR,
etc...  If you start with JSON, then of course it won't work.  If
we're going to treat XML as an afterthought, then I'd rather we just
didn't support XML at all (and yes, I absolutely mean that - it is
good that Glance is honest that they don't support XML.)


 Kevin Dangoor and Christophe de Vienne have done some work on
 abstracting the view of data inside and outside of the API with
 TGWebServices [1] (a TurboGears add-on) and the more recent Web
 Services Made Easy [2], which is framework agnostic. I have used TGWS
 in the past to create an API using SOAP and JSON (it also supports
 generic XML, but we didn't need that). I found that it worked well for
 our purposes at the time.

 [1] http://code.google.com/p/tgws/
 [2] http://packages.python.org/**WSME/ http://packages.python.org/WSME/


___
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] Image API v2 Draft 4

2012-04-10 Thread Justin Santa Barbara
I'd really rather we supported one format, if they're not going to be equal
citizens (i.e. both generated from a common model).

I wasted a lot of time with nova's XML support; I'm sure the Java binding
was the only project ever to try to use it; we'd have been able to proceed
much faster if we'd just stuck with JSON - we now have a horrible hybrid,
where JSON is used for some calls because the XML has/had bugs.

You prefer working from a JSON model; you're doing the work; so JSON it is.
 Please spend the time you would have spent on XML support on making glance
2.0 the best image server there is.

Justin


On Tue, Apr 10, 2012 at 7:47 AM, Jay Pipes jaypi...@gmail.com wrote:

 FWIW, Nova already has this kind of abstraction, with views and
 serializers... I wasn't planning on reinventing any wheels with the 2.0
 Images API implementation; just using what Nova had (and hopefully moving
 it to openstack-common before bringing the code into Glance).

 Best,
 -jay


 On 04/10/2012 06:51 AM, Doug Hellmann wrote:



 On Mon, Apr 9, 2012 at 5:14 PM, Justin Santa Barbara
 jus...@fathomdb.com mailto:jus...@fathomdb.com wrote:

When you're designing JSON considering only JSON, you'd
probably use {

key1: value1 } - as you have done.  If you're designing
generically,
you'd probably use { key: key1, value: value1 }.


You mean we'd have to do dumb crap because XML doesn't have the
native concept of a list? ;)


XML has lists, as does Avro, ProtocolBuffers  Thrift.  XML supports
extensible lists, which is why the syntax is different.

You'd *think* this would work. In practice, however, it
really doesn't. Neither does (good, valid) code generation...


Of course it works!  Every JAX-RS webserver does this.  You just
can't start with JSON first and expect everything to magically be OK.

If you think it doesn't work, can you provide an example?

You start with an abstract model, and then check what it looks like
in JSON, in XML, in ProtocolBuffers, in Avro, in Thrift, in HPSTR,
etc...  If you start with JSON, then of course it won't work.  If
we're going to treat XML as an afterthought, then I'd rather we just
didn't support XML at all (and yes, I absolutely mean that - it is
good that Glance is honest that they don't support XML.)


 Kevin Dangoor and Christophe de Vienne have done some work on
 abstracting the view of data inside and outside of the API with
 TGWebServices [1] (a TurboGears add-on) and the more recent Web
 Services Made Easy [2], which is framework agnostic. I have used TGWS
 in the past to create an API using SOAP and JSON (it also supports
 generic XML, but we didn't need that). I found that it worked well for
 our purposes at the time.

 [1] http://code.google.com/p/tgws/
 [2] http://packages.python.org/**WSME/ http://packages.python.org/WSME/


___
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] Image API v2 Draft 4

2012-04-10 Thread Brian Waldon
The ability to add an external image was dropped when I removed the concept of 
image locations. I wanted to rethink how locations worked and didn't realize 
how much I was actually removing! 'copy_from' just hasn't been fit into the 
spec yet. I want both of the features to be exposed through the API, but I want 
it done cleanly. This is something that we will figure out as we implement the 
API, as there isn't a perfect solution right now. We definitely won't be 
releasing the v2 API without these features!

Waldon


On Apr 10, 2012, at 6:21 AM, Eoghan Glynn wrote:

 
 
 APPENDIX B: Outstanding issues
 ...
 2) How do we fit the existing 'copy_from' functionality in?
 
 
 Is the v2 API retaining some equivalent of the existing
 x-image-meta-location header, to allow an externally-stored
 image be registered with glance?
 
 e.g. via an image field specified on create or update:
 
  POST /images HTTP/1.1
  {external-location: s3://access:sec...@s3.amzonaws.com/image, ...}
 
 or:
 
  PUT /images/IMAGE_ID HTTP/1.1
  {external-location: s3://access:sec...@s3.amzonaws.com/image, ...}
 
 If so, the most straight-forward approach for copy-from would be to
 follow a similar pattern with an image field such as:
 
  POST /images HTTP/1.1
  {copy-from: s3://access:sec...@s3.amzonaws.com/image, ...}
 
 ... etc.
 
 Cheers,
 Eoghan
 


___
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] Image API v2 Draft 4

2012-04-10 Thread Kevin L. Mitchell
On Tue, 2012-04-10 at 10:05 -0700, Justin Santa Barbara wrote:
 I wasted a lot of time with nova's XML support; I'm sure the Java
 binding was the only project ever to try to use it; we'd have been
 able to proceed much faster if we'd just stuck with JSON - we now have
 a horrible hybrid, where JSON is used for some calls because the XML
 has/had bugs.

Well, hopefully the XML support has been a little better since my
templates stuff went in.  Either way, though, if I had the choice, I'd
rip all of nova's XML support out tomorrow…

-- 
Kevin L. Mitchell kevin.mitch...@rackspace.com


___
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] Image API v2 Draft 4

2012-04-10 Thread Justin Santa Barbara
It definitely has improved - thank you for all your work;  I didn't mean to
put down anyone's work here.  It's simply a Sisyphean task.

Either way, though, if I had the choice, I'd rip all of nova's XML support
 out tomorrow…


As a strong supporter of XML, who thinks JSON is for kids that haven't
figured out that the Easter bunny isn't real yet :-)...  +1

Justin
___
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] Image API v2 Draft 4

2012-04-10 Thread Jorge Williams
I'm also a strong supporter of XML. XML does a good job of lowering barriers 
for a key group of clients, specifically those that work with statically typed 
languages.  It offers key benefits in terms of extensibility and validation.  
I'd hate to lose it.

-jOrGe W.

On Apr 10, 2012, at 12:57 PM, Justin Santa Barbara wrote:

It definitely has improved - thank you for all your work;  I didn't mean to put 
down anyone's work here.  It's simply a Sisyphean task.

Either way, though, if I had the choice, I'd rip all of nova's XML support out 
tomorrow…

As a strong supporter of XML, who thinks JSON is for kids that haven't figured 
out that the Easter bunny isn't real yet :-)...  +1

Justin

___
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] Image API v2 Draft 4

2012-04-10 Thread Glen Campbell
I'll bring the fish

On Apr 9, 2012, at 11:05 PM, Monty Taylor wrote:

 
 
 On 04/09/2012 04:11 PM, Jay Pipes wrote:
 On 04/09/2012 07:07 PM, Jorge Williams wrote:
 
 On Apr 9, 2012, at 6:03 PM, Justin Santa Barbara wrote:
 
How about we discuss this further at the summit :-)
 
 
 I think that's a sensible proposal. We're not likely to reach a good
 conclusion here. I think my viewpoint is that even json-dressed-as-xml
 is fine; no end-user gives two hoots what our JSON/XML/HPSTR looks
 like. I'd wager most users of the EC2 API have never even seen the
 data representation!
 
 
 I take it you didn't attend the glorious JSON debate of a couple of
 summits ago :-)
 
 Glorious it was indeed.
 
 I'm up for round two,
 
 Only with beer. :) I still owe you a couple I think!
 
 I refuse to not be there for that. Please make sure I'm in the room.
 With a video camera. And a bottle of whiskey.
 
 Monty


___
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] Image API v2 Draft 4

2012-04-10 Thread Vishvananda Ishaya
On Apr 10, 2012, at 2:26 AM, Thierry Carrez wrote:

 Jay Pipes wrote:
 I take it you didn't attend the glorious JSON debate of a couple of
 summits ago :-)
 
 Glorious it was indeed.
 
 I think the key quote was something like:
 Please don't bastardize my JSON with your XML crap

According to my twitter, the actual quote was: Don't bring your XML filth into 
my JSON

Vish



___
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] Image API v2 Draft 4

2012-04-09 Thread Justin Santa Barbara

 APPENDIX B: Outstanding issues

 4) Need to write xsds :(


This is easy if you design a model which works with XML.  If you have an
XML compatible model, you can generate an XSD and a JSON model from that.
 Also, it means you can just use common middleware to map XML to JSON,
rather than coding XML parsing functions.

I think the one thing you'd have to change is that XML won't allow you to
serialize a dictionary with elements as keys (e.g. { key1: value1,
key2: value2 }, you have to do this: [ { key: key1, value:
value1 }, { key: key2, value: value2 } ]

I think this is only done in the image properties.

On the downside: The JSON isn't as JSON-ic as it could be.
On the upside: You need never worry about XML again
___
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] Image API v2 Draft 4

2012-04-09 Thread Jay Pipes

On 04/09/2012 12:56 PM, Justin Santa Barbara wrote:

APPENDIX B: Outstanding issues

4) Need to write xsds :(

This is easy if you design a model which works with XML.  If you have an
XML compatible model, you can generate an XSD and a JSON model from
that.  Also, it means you can just use common middleware to map XML to
JSON, rather than coding XML parsing functions.


Justin, what does design a model which works with XML mean?


I think the one thing you'd have to change is that XML won't allow you
to serialize a dictionary with elements as keys (e.g. { key1:
value1, key2: value2 }, you have to do this: [ { key: key1,
value: value1 }, { key: key2, value: value2 } ]

I think this is only done in the image properties.


No, the image properties have been removed in the 2.0 Images API and 
replaced with the standard concept of tags:


https://docs.google.com/document/d/1rb7ZVn0Du_5NZqUyQpqUZSmv7Qd66TMHYAtvsow7LH4/edit#heading=h.y10rq9pdt27y


On the downside: The JSON isn't as JSON-ic as it could be.


In what ways?


On the upside: You need never worry about XML again


We haven't worried about it at all up until now. And Glance has been 
perfectly fine without it. ;)


See you in a week!

-jay

___
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] Image API v2 Draft 4

2012-04-09 Thread Justin Santa Barbara

 Justin, what does design a model which works with XML mean?


Simply avoiding the handful of things that are specific to JSON (or
specific to XML).  Nothing too onerous (no angle brackets)!


 I think this is only done in the image properties.


 No, the image properties have been removed in the 2.0 Images API and
 replaced with the standard concept of tags:

 https://docs.google.com/**document/d/1rb7ZVn0Du_**
 5NZqUyQpqUZSmv7Qd66TMHYAtvsow7**LH4/edit#heading=h.**y10rq9pdt27yhttps://docs.google.com/document/d/1rb7ZVn0Du_5NZqUyQpqUZSmv7Qd66TMHYAtvsow7LH4/edit#heading=h.y10rq9pdt27y


I was looking at properties in GET /schemas/image/access and GET
/schemas/access.  In general, the Glance 2.0 model is very close to being
XML-compatible.

 On the downside: The JSON isn't as JSON-ic as it could be.


 In what ways?


When you're designing JSON considering only JSON, you'd probably use {
key1: value1 } - as you have done.  If you're designing generically, you'd
probably use { key: key1, value: value1 }.

 On the upside: You need never worry about XML again


 We haven't worried about it at all up until now. And Glance has been
 perfectly fine without it. ;)


Well yes, I agree that our XML support generally is sufficiently buggy as
to be unusable, hence unused.  I don't actually care about XML, I just care
about having a well-specified API that works.

In my opinion, the way to do that is to specify a model, and we have JSON
and XML representations of that model.  If we design the model right, JSON
 XML both just work without any code (and less code = less bugs).
 Moreover, when someone introduces another data interchange format, we
again just write one piece of middleware, one documentation generator, and
we're done.  Doing this by hand for each format is simply busywork.

I don't care whether we specify the model as a Python class, Java class,
XML schema, JSON schema, or using stick figures with long arms pointing at
boxes.  You can even specify it in JSON if you stick to a lowest common
denominator subset.  I think the only thing you need to avoid is no
changing-at-runtime keys; I think this makes it compatible with XML, Avro,
ProtocolBuffers  Thrift.

I don't think it should be a big deal for the JSON format to avoid dynamic
keys, given how much you win whenever you have to support a new format.

Incidentally, I just heard about yet another new format - apparently this
one is going to be the standard for use with node.js
- Hypertext-Powered-State-Transfer-Representation.  Apparently JSON is too
complicated now - with its strict need for quote marks and multiple data
types and all that over engineering, so HPSTR just sends the values; you
just use convention over configuration to infer the keys.  I trust it's not
going to be a lot of work for OpenStack to support it.

 See you in a week!

Looking forward to it!
___
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] Image API v2 Draft 4

2012-04-09 Thread Jay Pipes

On 04/09/2012 02:16 PM, Justin Santa Barbara wrote:

Justin, what does design a model which works with XML mean?

Simply avoiding the handful of things that are specific to JSON (or
specific to XML).  Nothing too onerous (no angle brackets)!


I see, gotcha.


I think this is only done in the image properties.

No, the image properties have been removed in the 2.0 Images API and
replaced with the standard concept of tags:


https://docs.google.com/__document/d/1rb7ZVn0Du___5NZqUyQpqUZSmv7Qd66TMHYAtvsow7__LH4/edit#heading=h.__y10rq9pdt27y

https://docs.google.com/document/d/1rb7ZVn0Du_5NZqUyQpqUZSmv7Qd66TMHYAtvsow7LH4/edit#heading=h.y10rq9pdt27y

I was looking at properties in GET /schemas/image/access and GET
/schemas/access.  In general, the Glance 2.0 model is very close to
being XML-compatible.


OK.


On the downside: The JSON isn't as JSON-ic as it could be.

In what ways?

When you're designing JSON considering only JSON, you'd probably use {
key1: value1 } - as you have done.  If you're designing generically,
you'd probably use { key: key1, value: value1 }.


You mean we'd have to do dumb crap because XML doesn't have the native 
concept of a list? ;)



On the upside: You need never worry about XML again

We haven't worried about it at all up until now. And Glance has been
perfectly fine without it. ;)

Well yes, I agree that our XML support generally is sufficiently buggy
as to be unusable, hence unused.  I don't actually care about XML, I
just care about having a well-specified API that works.


I wasn't actually talking about Nova. :) Glance doesn't have ANY support 
for XML at all. It's been using JSON and only JSON from its inception... 
 And for the record, we will absolutely NOT be generating JSON from XML 
schemas. That is pure lunacy.



In my opinion, the way to do that is to specify a model, and we have
JSON and XML representations of that model.  If we design the model
right, JSON  XML both just work without any code (and less code =
less bugs).


I shall refer you to Keystone Legacy to see how well that strategy works 
in practice.


 Moreover, when someone introduces another data interchange

format, we again just write one piece of middleware, one documentation
generator, and we're done.  Doing this by hand for each format is simply
busywork.


You'd *think* this would work. In practice, however, it really doesn't. 
Neither does (good, valid) code generation...



I don't care whether we specify the model as a Python class, Java class,
XML schema, JSON schema, or using stick figures with long arms pointing
at boxes.  You can even specify it in JSON if you stick to a lowest
common denominator subset.


In the 2.0 API we *are* specifying it in JSON. JSON Schema, specifically...

 I think the only thing you need to avoid is

no changing-at-runtime keys; I think this makes it compatible
with XML, Avro, ProtocolBuffers  Thrift.


That is antithetical to having dynamic, but discoverable, schemas. JSON 
Schema (and XSD, fwiw) provide things like additionalProperties and 
xsd:any for just this sort of thing. Making a schema entirely static 
is really only useful for generating (bad and soon-to-be-outdated) 
client code.


Having dynamic and discoverable schemas enables clients to respond to 
backwards-compatible schema changes (like the addition of standard 
properties or the addition of extra-standard additionalProperties) 
without having to recompile a client or change any client code at all...



I don't think it should be a big deal for the JSON format to avoid
dynamic keys, given how much you win whenever you have to support a new
format.


By dynamic keys, are you referring to the additionalProperties? If so, I 
disagree.



Incidentally, I just heard about yet another new format - apparently
this one is going to be the standard for use with node.js
- Hypertext-Powered-State-Transfer-Representation.


HPSTR? H(i)PST(e)R? Are you sure that wasn't an April Fool's Joke? :)

Best,
-jay

___
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] Image API v2 Draft 4

2012-04-09 Thread Kiall Mac Innes
On Mon, Apr 9, 2012 at 7:16 PM, Justin Santa Barbara jus...@fathomdb.comwrote:

 When you're designing JSON considering only JSON, you'd probably use {
 key1: value1 } - as you have done.  If you're designing generically, you'd
 probably use { key: key1, value: value1 }.


I, literally. die a little inside each and every time I see this kind of
JSON. Once you start producing JSON like this, you may as well just stick
with XML. Parsing it will be easier.

JSON and XML have different strengths and weaknesses, if you only allow the
common ground of functionality to be used you end up with a mediocre at
best implementation of both.

Thanks,
Kiall
___
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] Image API v2 Draft 4

2012-04-09 Thread Justin Santa Barbara

 When you're designing JSON considering only JSON, you'd probably use {

 key1: value1 } - as you have done.  If you're designing generically,
 you'd probably use { key: key1, value: value1 }.


 You mean we'd have to do dumb crap because XML doesn't have the native
 concept of a list? ;)


XML has lists, as does Avro, ProtocolBuffers  Thrift.  XML supports
extensible lists, which is why the syntax is different.



 You'd *think* this would work. In practice, however, it really doesn't.
 Neither does (good, valid) code generation...


Of course it works!  Every JAX-RS webserver does this.  You just can't
start with JSON first and expect everything to magically be OK.

If you think it doesn't work, can you provide an example?

You start with an abstract model, and then check what it looks like in
JSON, in XML, in ProtocolBuffers, in Avro, in Thrift, in HPSTR, etc...  If
you start with JSON, then of course it won't work.  If we're going to treat
XML as an afterthought, then I'd rather we just didn't support XML at all
(and yes, I absolutely mean that - it is good that Glance is honest that
they don't support XML.)

Even ignoring XML, I can't help but think that not having a strict
delineation between user-provided data and the structure of your document
is a pretty risky idea.


In the 2.0 API we *are* specifying it in JSON. JSON Schema, specifically...


Are JSON schemas an April Fool's joke?  Once you introduce schemas, you
might as well just go with XML ;-)


  I think the only thing you need to avoid is

 no changing-at-runtime keys; I think this makes it compatible
 with XML, Avro, ProtocolBuffers  Thrift.


 That is antithetical to having dynamic, but discoverable, schemas. JSON
 Schema (and XSD, fwiw) provide things like additionalProperties and
 xsd:any for just this sort of thing. Making a schema entirely static is
 really only useful for generating (bad and soon-to-be-outdated) client code.


 Having dynamic and discoverable schemas enables clients to respond to
 backwards-compatible schema changes (like the addition of standard
 properties or the addition of extra-standard additionalProperties)
 without having to recompile a client or change any client code at all...


I couldn't disagree more: what does it mean?  There's the implicit
contract underlying the interface; the semantics that underpin the syntax.
 e.g. syntax: a glance image id is a string, semantics: the id is unique to
a glance installation and is used to refer to an image in REST calls.

xsd:any allows you to put elements _from another schema_ into your XML
document.  That foreign schema defines the semantics of those elements.
 It's schemas all the way down, giving semantics to your syntax.

If your additional properties in Glance are properly schematized, then
that's great.  But true cross-representation schemas are an open problem, I
believe, so you're really painting yourself into a corner (how do you
support XML output, if you let people upload arbitrary JSON schemas?)


Incidentally, I just heard about yet another new format - apparently
 this one is going to be the standard for use with node.js
 - Hypertext-Powered-State-**Transfer-Representation.


 HPSTR? H(i)PST(e)R? Are you sure that wasn't an April Fool's Joke? :)


Are you sure it wasn't mine? ;-)
___
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] Image API v2 Draft 4

2012-04-09 Thread Jay Pipes

On 04/09/2012 05:14 PM, Justin Santa Barbara wrote:

When you're designing JSON considering only JSON, you'd probably
use {

key1: value1 } - as you have done.  If you're designing generically,
you'd probably use { key: key1, value: value1 }.


You mean we'd have to do dumb crap because XML doesn't have the
native concept of a list? ;)


XML has lists, as does Avro, ProtocolBuffers  Thrift.  XML supports
extensible lists, which is why the syntax is different.


Extensible lists are pointless. Lists have no attributes other than 
their length. I made this point a couple design summits ago... but 
whatever :)



You'd *think* this would work. In practice, however, it really
doesn't. Neither does (good, valid) code generation...

Of course it works!  Every JAX-RS webserver does this.  You just can't
start with JSON first and expect everything to magically be OK.


I'm not aware that I said to start with JSON first and expect 
everything to magically be OK. I believe I put both JSON Schema and 
XSDs in the Images API 2.0 proposal?



If you think it doesn't work, can you provide an example?


I was referring specifically to the Keystone Legacy code that attempted 
to generate JSON from XSDs and WADLs. But for the life of me, I can't 
now find the code in GitHub that shows what I'm talking about... meh.



You start with an abstract model, and then check what it looks like in
JSON, in XML, in ProtocolBuffers, in Avro, in Thrift, in HPSTR, etc...


I'm not opposed to using an abstract model, I was just saying that the 
easy as pie solution you offered of just having to create a new 
generator, etc isn't in practice so easy and often leads to 
hard-to-debug subtle differences in output format that aren't fixable 
just be editing the abstract model...



  If you start with JSON, then of course it won't work. If we're going
to treat XML as an afterthought, then I'd rather we just didn't support
XML at all (and yes, I absolutely mean that - it is good that Glance is
honest that they don't support XML.)


Glad we took the high road ;P


Even ignoring XML, I can't help but think that not having a strict
delineation between user-provided data and the structure of your
document is a pretty risky idea.


Not quite sure I follow you here... are you referring to dynamic schemas 
here?



In the 2.0 API we *are* specifying it in JSON. JSON Schema,
specifically...

Are JSON schemas an April Fool's joke?  Once you introduce schemas, you
might as well just go with XML ;-)


I personally find JSON Schema to be as robust, and infinitely more 
readable, as XSD.



  I think the only thing you need to avoid is

no changing-at-runtime keys; I think this makes it compatible
with XML, Avro, ProtocolBuffers  Thrift.

That is antithetical to having dynamic, but discoverable, schemas.
JSON Schema (and XSD, fwiw) provide things like additionalProperties
and xsd:any for just this sort of thing. Making a schema entirely
static is really only useful for generating (bad and
soon-to-be-outdated) client code.

Having dynamic and discoverable schemas enables clients to respond
to backwards-compatible schema changes (like the addition of
standard properties or the addition of extra-standard
additionalProperties) without having to recompile a client or change
any client code at all...

I couldn't disagree more: what does it mean?  There's the implicit
contract underlying the interface; the semantics that underpin the
syntax.  e.g. syntax: a glance image id is a string, semantics: the id
is unique to a glance installation and is used to refer to an image in
REST calls.


I think you're muddying WADL and XSD above?


xsd:any allows you to put elements _from another schema_ into your XML
document.  That foreign schema defines the semantics of those elements.
  It's schemas all the way down, giving semantics to your syntax.


That's exactly what JSON Schema's additionalProperties allows...


If your additional properties in Glance are properly schematized, then
that's great.  But true cross-representation schemas are an open
problem, I believe, so you're really painting yourself into a corner
(how do you support XML output, if you let people upload arbitrary JSON
schemas?)


They are absolutely properly schematized. They are nothing more than 
false (indicating the schema is fixed) or a list of other schemas...



Incidentally, I just heard about yet another new format - apparently
this one is going to be the standard for use with node.js
- Hypertext-Powered-State-__Transfer-Representation.

HPSTR? H(i)PST(e)R? Are you sure that wasn't an April Fool's Joke? :)

Are you sure it wasn't mine? ;-)


:)

-jay

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

Re: [Openstack] Image API v2 Draft 4

2012-04-09 Thread Jorge Williams
Justin,

From a JAX-RS / Java  persecutive, starting with an XML schema and having that 
dictate what the JSON will look like -- doesn't just make sense -- it makes 
life *A LOT* easier. And a lot of services written in Java do just that.   
Unfortunately, as you pointed out, this approach has the  tendency to create 
very  unJSONic JSON -- in that case JSON is just an afterthought..it's a 
second class citizen -- essentially it's XML with curly braces...and that 
doesn't jive well with dynamic languages.

You can go the other route and start from JSON to create XML -- and some well 
intended folks do this, but you end up in the other direction...essentially you 
have JSON/, which is essentially JSON in XML form.  That kind of XML sucks 
and it's pretty useless if you work with static languages like Java and .Net -- 
where having a static (but extensible) schema is really useful.

That's the world we live in today...static languages work really well with XML 
and dynamic languages work really well with JSON.  In my opinion, you have to 
account for both and treat both as first class citizens.   I'd vote for having 
an abstract model and treat the XML and JSON  as different renderings.   Doing 
so is not easy as pie -- but it's not rocket science either.

I am totally with you on a couple of points though:

1.  We do need to differentiate between user data and core attributes. Jay and 
I have had debates about this before.
2.  Having entirely dynamic discoverable schema, seems nice, but it has the 
potential to introduce a lot of complexity.   In particular, i'm not exactly 
sure how to process the schema and  keep the goodness that comes from using a 
statically typed language.   And, as you point out,  it's not clear how one 
would support multiple media types given that approach.

How about we discuss this further at the summit :-)

-jOrGe W.


On Apr 9, 2012, at 4:14 PM, Justin Santa Barbara wrote:

When you're designing JSON considering only JSON, you'd probably use {
key1: value1 } - as you have done.  If you're designing generically,
you'd probably use { key: key1, value: value1 }.

You mean we'd have to do dumb crap because XML doesn't have the native concept 
of a list? ;)

XML has lists, as does Avro, ProtocolBuffers  Thrift.  XML supports extensible 
lists, which is why the syntax is different.


You'd *think* this would work. In practice, however, it really doesn't. Neither 
does (good, valid) code generation...

Of course it works!  Every JAX-RS webserver does this.  You just can't start 
with JSON first and expect everything to magically be OK.

If you think it doesn't work, can you provide an example?

You start with an abstract model, and then check what it looks like in JSON, in 
XML, in ProtocolBuffers, in Avro, in Thrift, in HPSTR, etc...  If you start 
with JSON, then of course it won't work.  If we're going to treat XML as an 
afterthought, then I'd rather we just didn't support XML at all (and yes, I 
absolutely mean that - it is good that Glance is honest that they don't support 
XML.)

Even ignoring XML, I can't help but think that not having a strict delineation 
between user-provided data and the structure of your document is a pretty risky 
idea.


In the 2.0 API we *are* specifying it in JSON. JSON Schema, specifically...

Are JSON schemas an April Fool's joke?  Once you introduce schemas, you might 
as well just go with XML ;-)

 I think the only thing you need to avoid is
no changing-at-runtime keys; I think this makes it compatible
with XML, Avro, ProtocolBuffers  Thrift.

That is antithetical to having dynamic, but discoverable, schemas. JSON Schema 
(and XSD, fwiw) provide things like additionalProperties and xsd:any for just 
this sort of thing. Making a schema entirely static is really only useful for 
generating (bad and soon-to-be-outdated) client code.

Having dynamic and discoverable schemas enables clients to respond to 
backwards-compatible schema changes (like the addition of standard properties 
or the addition of extra-standard additionalProperties) without having to 
recompile a client or change any client code at all...

I couldn't disagree more: what does it mean?  There's the implicit contract 
underlying the interface; the semantics that underpin the syntax.  e.g. syntax: 
a glance image id is a string, semantics: the id is unique to a glance 
installation and is used to refer to an image in REST calls.

xsd:any allows you to put elements _from another schema_ into your XML 
document.  That foreign schema defines the semantics of those elements.  It's 
schemas all the way down, giving semantics to your syntax.

If your additional properties in Glance are properly schematized, then that's 
great.  But true cross-representation schemas are an open problem, I believe, 
so you're really painting yourself into a corner (how do you support XML 
output, if you let people upload arbitrary JSON schemas?)


Incidentally, I just heard about yet another new format - 

Re: [Openstack] Image API v2 Draft 4

2012-04-09 Thread Justin Santa Barbara

 How about we discuss this further at the summit :-)


I think that's a sensible proposal.  We're not likely to reach a good
conclusion here.  I think my viewpoint is that even json-dressed-as-xml is
fine; no end-user gives two hoots what our JSON/XML/HPSTR looks like.  I'd
wager most users of the EC2 API have never even seen the data
representation!
___
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] Image API v2 Draft 4

2012-04-09 Thread Justin Santa Barbara

 Extensible lists are pointless. Lists have no attributes other than their
 length. I made this point a couple design summits ago... but whatever :)


Looks like the Sapir-Whorf hypothesis might be true after all ;-)

Let's dust off the pugil-sticks for the design summit..
___
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] Image API v2 Draft 4

2012-04-09 Thread Jorge Williams

On Apr 9, 2012, at 6:03 PM, Justin Santa Barbara wrote:

How about we discuss this further at the summit :-)

I think that's a sensible proposal.  We're not likely to reach a good 
conclusion here.  I think my viewpoint is that even json-dressed-as-xml is 
fine; no end-user gives two hoots what our JSON/XML/HPSTR looks like.  I'd 
wager most users of the EC2 API have never even seen the data representation!


I take it you didn't attend the glorious JSON debate of a couple of summits ago 
:-)

I'm up for round two,

-jOrGe W.

___
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] Image API v2 Draft 4

2012-04-09 Thread Jay Pipes

On 04/09/2012 07:07 PM, Jorge Williams wrote:


On Apr 9, 2012, at 6:03 PM, Justin Santa Barbara wrote:


How about we discuss this further at the summit :-)


I think that's a sensible proposal. We're not likely to reach a good
conclusion here. I think my viewpoint is that even json-dressed-as-xml
is fine; no end-user gives two hoots what our JSON/XML/HPSTR looks
like. I'd wager most users of the EC2 API have never even seen the
data representation!



I take it you didn't attend the glorious JSON debate of a couple of
summits ago :-)


Glorious it was indeed.


I'm up for round two,


Only with beer. :) I still owe you a couple I think!


-jOrGe W.



___
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] Image API v2 Draft 4

2012-04-09 Thread Luis Gervaso
Hi,

I have been fighting with these issues.

Here is the proposed solution i am currently using on OpenStack Java SDK.

*Every representation should implement a common interface*

The jaxb annotations for marshalling and unmarshalling XML reside on xml
implementation class
The gson annotations for serialization and deserialization of JSON reside
on json implementation class

This approach is unobstrussive with XML/JSON representations

I think 95% of the API works well mixing jaxb/gson annotations on the same
implementation classes.

This has another advantage, you can switch from one to another service
provider sharing the same model,
that's the interfaces model but the implentation.

Does it make sense for you?

Luis

On Tue, Apr 10, 2012 at 1:11 AM, Jay Pipes jaypi...@gmail.com wrote:

 On 04/09/2012 07:07 PM, Jorge Williams wrote:


 On Apr 9, 2012, at 6:03 PM, Justin Santa Barbara wrote:

 How about we discuss this further at the summit :-)


 I think that's a sensible proposal. We're not likely to reach a good
 conclusion here. I think my viewpoint is that even json-dressed-as-xml
 is fine; no end-user gives two hoots what our JSON/XML/HPSTR looks
 like. I'd wager most users of the EC2 API have never even seen the
 data representation!



 I take it you didn't attend the glorious JSON debate of a couple of
 summits ago :-)


 Glorious it was indeed.


  I'm up for round two,


 Only with beer. :) I still owe you a couple I think!

  -jOrGe W.


 __**_
 Mailing list: 
 https://launchpad.net/~**openstackhttps://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : 
 https://launchpad.net/~**openstackhttps://launchpad.net/~openstack
 More help   : 
 https://help.launchpad.net/**ListHelphttps://help.launchpad.net/ListHelp




-- 
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@ luis.gerv...@gmail.comwoorea.es
___
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] Image API v2 Draft 4

2012-04-09 Thread Monty Taylor


On 04/09/2012 04:11 PM, Jay Pipes wrote:
 On 04/09/2012 07:07 PM, Jorge Williams wrote:

 On Apr 9, 2012, at 6:03 PM, Justin Santa Barbara wrote:

 How about we discuss this further at the summit :-)


 I think that's a sensible proposal. We're not likely to reach a good
 conclusion here. I think my viewpoint is that even json-dressed-as-xml
 is fine; no end-user gives two hoots what our JSON/XML/HPSTR looks
 like. I'd wager most users of the EC2 API have never even seen the
 data representation!


 I take it you didn't attend the glorious JSON debate of a couple of
 summits ago :-)
 
 Glorious it was indeed.
 
 I'm up for round two,
 
 Only with beer. :) I still owe you a couple I think!

I refuse to not be there for that. Please make sure I'm in the room.
With a video camera. And a bottle of whiskey.

Monty

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


[Openstack] Image API v2 Draft 4

2012-04-08 Thread Brian Waldon
The next draft of the v2 OpenStack Image API is available for review:

https://docs.google.com/document/d/1rb7ZVn0Du_5NZqUyQpqUZSmv7Qd66TMHYAtvsow7LH4/edit.
 

Unfortunately, there won't be time for an official session at the summit, but 
feel free to start a discussion through email or by using the comment system in 
the doc itself. I'll also be available at the summit to discuss this in an 
unofficial capacity. There are still a few kinks to work out, but we're finally 
getting started implementing this thing. Thanks to everyone who has helped out 
so far!

Brian Waldon


APPENDIX A: Major Changes From Draft 3

1) Removed concept of image locations - Replication and multiple image 
locations are not yet well-formed. It's unclear what information/capabilities 
we need in the API at the moment, so I've simplified it down to just GET 
/images/IMAGE_ID/file. I would prefer to keep the public-facing API as simple 
as possible, so maybe this belongs in an Admin-only API. We can iterate on this 
for the next 6 months if we need to…

2) Replaced access_type with visibility - Rather than 'public', 'private' and 
'shared', visibility can be either 'public' or 'private'. Added some 
explanation of how 'visibility' plays with 'owner' in the concepts section of 
the doc.


APPENDIX B: Outstanding issues

Some of this stuff is hard, some I just haven't put the time into figuring out 
yet:

1) Does it make sense to use tags, metadata, or both? I can see cases for both, 
but is that overkill?

2) How do we fit the existing 'copy_from' functionality in?

3) Need to properly convey link objects in json schemas

4) Need to write xsds :(

5) What link relation do we use for subcollections like tags, access, etc? 
http://www.iana.org/assignments/link-relations/link-relations.xml___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp