[Openstack] OpenStack Java API

Jorge Williams jorge.williams at rackspace.com
Tue Feb 21 17:42:58 UTC 2012


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 at gmail.com<mailto:cp16net at gmail.com>> 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 at woorea.es<mailto:luis at woorea.es>> 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 at fathomdb.com<mailto:justin at fathomdb.com>> 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 at woorea.es<mailto:luis at woorea.es>> 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 at enstratus.com<mailto:george.reese at enstratus.com>> 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 at gmail.com<mailto:marton.kiss at gmail.com>
<mailto:marton.kiss at gmail.com<mailto:marton.kiss at gmail.com>>> 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 at woorea.es<mailto:luis at woorea.es> <mailto:luis at woorea.es<mailto:luis at woorea.es>>>:
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 at woorea.es<mailto:luis at woorea.es> <mailto:luis at woorea.es<mailto:luis at woorea.es>>

_______________________________________________
Mailing list: https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
Post to     : openstack at lists.launchpad.net<mailto:openstack at lists.launchpad.net>
   <mailto:openstack at lists.launchpad.net<mailto:openstack at lists.launchpad.net>>
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 at woorea.es<mailto:luis at woorea.es> <mailto:luis at woorea.es<mailto:luis at woorea.es>>


_______________________________________________
Mailing list: https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
Post to     : openstack at lists.launchpad.net<mailto:openstack at lists.launchpad.net>
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 at lists.launchpad.net<mailto:openstack at lists.launchpad.net>
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 at enstratus.com<mailto:george.reese at enstratus.com>    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 at lists.launchpad.net<mailto:openstack at lists.launchpad.net>
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 at lists.launchpad.net<mailto:openstack at lists.launchpad.net>
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 at lists.launchpad.net<mailto:openstack at lists.launchpad.net>
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20120221/40c796b2/attachment.html>


More information about the Openstack mailing list