Hey everyone, This Wednesday (2011-02-01) my office (Rackspace SF) is hosting a Twisted Hackday - http://www.eventbrite.com/event/2777737287. As part of the hack day project, I will work on a thing called "libcloud.http".
Short description and project milestones are included bellow. If you are interested in participating, but you can't physically join us at the Rackspace SF office, you can join us on #libcloud at freenode. Ideally, we would also use some kind of voice chat (Google Hangout, Skype, ...), because this makes communication easier. Description: HTTP interface for Libcloud (http://libcloud.apache.org/) which exposes all the Libcloud functionality through a RESTful API. Currently Libcloud has a big limitation - you can only use it with Python. Adding a REST interface would allow users to leverage Libcloud functionality through an arbitrary language which knows how to talk HTTP. Project with a similar goal already exists - Deltacloud ( http://deltacloud.apache.org), but benefit of libcloud.http over Deltacloud would be that we support way more providers and APIs and we also have a lot more tests. Milestones: 1. MVP - basic REST-y framework build on top of twisted.web - basic validation for input data (argument types, etc.) - use introspection and magic to build most of the functionality, no copy and paste! - basic auth mechanism - user sends provider credentials in X header with every request - for now use threads.deferToThread when calling libcloud methods - API versioning based on the libcloud release version - Support for compute API 2. Support for provider specific arguments and methods (ex_foo) - parse / introspect docstrings to figure out provider specific methods + arguments and their types - hook it up with the rest of the system - discovery of provider capabilities through an endpoints 3. Pluggable caching & better auth mechanism - Pluggable caching system (file, memory, memcache, redis, ...) - Cache credentials, session id,... - Cache provider responses 4. Support for other APIs: - DNS - Load balancers - Storage (might be a bit tricky because of upload and download functionality) 5. Other - auto-generate clients in different languages - libcloud driver for libcloud.http (meta, baby!) I have no idea how many steps / milestones will be completed during the hack day, but hopefully at least #1 will be fully done. Thanks, Tomaz
