openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #07800
Re: OpenStack Java API
Some thoughts,
Using the binding to generate WADLs and XSDs would definitely be useful -- especially since a lot of the extensions are currently undocumented. Certainly we can use these as a starting point for our documentation efforts.
Keep in mind, though, that extensions are optional and the extensions your binding will encounter will vary from one deployment to the next. You should be making a call to /extensions to auto detect what extensions are available on the server side and adjust accordingly.
Don't make the assumption that because an auto generated schema validates against a stock OpenStack install, that it will validate against all OpenStack deployments. Vendors may choose to remove and add features, only the core API is guaranteed.
The schemas that we're currently publishing in
https://github.com/openstack/compute-api
have forward compatibility rules that keep them ticking in the presence of new extensions. Any schema's you produce should have similar rules. See the
@XmlAnyElement and @XmlAnyAttribute
as a means of capturing and exposing these extra attributes with JAXB.
Once you produce these XSDs/WADLs would you mind sending them to our Docs team?
Things like:
http://api.openstack.org/ and
http://docs.openstack.org/api/
are all driven by them.
Thanks,
-jOrGe W.
On Feb 16, 2012, at 9:16 AM, Luis Gervaso wrote:
You can use schemagen to generate the XSD from the java classes. You can try, this it's working from now.
We have not published yet because the schemas are unstable. I have planned to publish them starting with Essex release.
We will not publish any WADL since we are on the client side. I'm evaluating to create extra services for the server side regarding to the
billing part and they will have WADL.
Regards
On Thu, Feb 16, 2012 at 8:48 AM, Craig Vyvial <cp16net@xxxxxxxxx<mailto:cp16net@xxxxxxxxx>> wrote:
Once you have the API implemented in with Jersey you can get the XSD like you said and also a valid up to date WADL. That could be very useful for docs and/or other devs.
Great work!
-Craig Vyvial
On Wed, Feb 15, 2012 at 8:19 PM, Luis Gervaso <luis@xxxxxxxxx<mailto:luis@xxxxxxxxx>> wrote:
Hi Justin,
Great!
I have tried a variety of options to implement this in a clean way. As you can see Jersey afford it in the most clean way.
My thoughts to make this are:
1. Start with a handcoded JAXB annotations, since the schemas are out-of-date and then we will create the XSD super easy.
2. I have seen than in servers endpoint the structure of XML and JSON are not the same (networks / addresses part). Then i decided
to start the binding from XML in order to have as soon as posible the generated schemas and then apply any patch to make it work
with JSON as well.
3. For my point of view HATEOAS is a must. The Client API must be easy integrated with any business process or workflow. I know that
this will be funny since we are on the cutting edge, I think the next version of Jersey have an early support for this.
Cheers!
Luis
On Thu, Feb 16, 2012 at 12:14 AM, Justin Santa Barbara <justin@xxxxxxxxxxxx<mailto:justin@xxxxxxxxxxxx>> wrote:
This is awesome. I was working on a binding myself, but your use of jersey makes for much less code.
I've extended your work in a github fork. I added a CLI so that I could test it out; the few bits of functionality that I added work great and I'm going to try using it as my primary interface and fixing/adding things that aren't working.
One goal I have is to do extensions "right". So we should allow people to code extensions without changing the core API code (equivalently, we shouldn't assume that we know all the extensions when we build the API). I have an example of how this can be done where extra XML attributes are returned (which happens on an out-of-the-box server listing); I'm going to do more work on more advanced scenarios (extra elements, extra REST endpoints). I would eventually like to use the (hand-coded) Java models to generate valid XSD files.
My fork is here: https://github.com/justinsb/openstack-java-sdk I'd like to work together on this!
Justin
---
Justin Santa Barbara
Founder, FathomDB
On Mon, Feb 13, 2012 at 8:53 AM, Luis Gervaso <luis@xxxxxxxxx<mailto:luis@xxxxxxxxx>> wrote:
The Dasein Arch is great and the code is very clean. Congrats for it.
I can't find a fully implementation of OS API.
are using EC2 API to talk with OS?
Cheers!
On Sat, Feb 11, 2012 at 8:15 PM, George Reese <george.reese@xxxxxxxxxxxxx<mailto:george.reese@xxxxxxxxxxxxx>> wrote:
There's also Dasein Cloud if you are interested at http://dasein-cloud.sf.net<http://dasein-cloud.sf.net/>.
-George
On Feb 11, 2012, at 12:28 AM, Monty Taylor wrote:
Hi!
Awesome, and thanks for the work!
Just in case you didn't know about it:
http://www.jclouds.org/
Is a Java library with multi-cloud support, including OpenStack, which
might be a fun place for you to hack - and I know Adrian loves contributors.
On the other hand, any amount of Java story for OpenStack is good news.
Thanks!
Monty
On 02/10/2012 12:08 PM, Luis Gervaso wrote:
Till i know Nova 1.0 is deprecated, so it will not be implemented.
Nova 1.1 is almost implemented (working now with extensions : volumes /
snapshots / storagearrays)
Nova 2.0 is a must
Glance (working now on it, this is the most easy to implement API)
Swift Java API from Rackspace is stable enough, so I will integrate at
the end.
Hope to hear about this roadmap.
Luis
On Fri, Feb 10, 2012 at 8:56 PM, Marton Kiss <marton.kiss@xxxxxxxxx<mailto:marton.kiss@xxxxxxxxx>
<mailto:marton.kiss@xxxxxxxxx<mailto:marton.kiss@xxxxxxxxx>>> wrote:
Hi,
Nice start Luis. Do you have some plans to support different OS API
versions? Anybody knows about a similar effort to write a PHP client?
Regards,
Márton Kiss, CTO
Xemeti
2012/2/10 Luis Gervaso <luis@xxxxxxxxx<mailto:luis@xxxxxxxxx> <mailto:luis@xxxxxxxxx<mailto:luis@xxxxxxxxx>>>:
Hi,
My name is Luis Gervaso. I just upload a developer preview of
OpenStack Java
SDK on
https://github.com/woorea/openstack-java-sdk/
I want to know if other development efforts have been done in this
way in
order to contribute.
Regards
--
Luis Alberto Gervaso Martín
Java EE Architect & Instructor
C/ Cuenca 4A, 2ºB
Getafe (Madrid)
SPAIN
luis@xxxxxxxxx<mailto:luis@xxxxxxxxx> <mailto:luis@xxxxxxxxx<mailto:luis@xxxxxxxxx>>
_______________________________________________
Mailing list: https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
Post to : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>
<mailto:openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>>
Unsubscribe : https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
More help : https://help.launchpad.net/ListHelp
--
Luis Alberto Gervaso Martín
Java EE Architect & Instructor
C/ Cuenca 4A, 2ºB
Getafe (Madrid)
SPAIN
mobile: (+34) 627983344<tel:%28%2B34%29%20627983344>
luis@xxxxxxxxx<mailto:luis@xxxxxxxxx> <mailto:luis@xxxxxxxxx<mailto:luis@xxxxxxxxx>>
_______________________________________________
Mailing list: https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
Post to : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
More help : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
Post to : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
More help : https://help.launchpad.net/ListHelp
--
George Reese - Chief Technology Officer, enStratus
e: george.reese@xxxxxxxxxxxxx<mailto:george.reese@xxxxxxxxxxxxx> Skype: nspollution t: @GeorgeReese p: +1.207.956.0217<tel:%2B1.207.956.0217>
enStratus: Enterprise Cloud Management - @enStratus - http://www.enstratus.com<http://www.enstratus.com/>
To schedule a meeting with me: http://tungle.me/GeorgeReese
_______________________________________________
Mailing list: https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
Post to : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
More help : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
Post to : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
More help : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~openstack
More help : https://help.launchpad.net/ListHelp
Follow ups
References