I have created a driver to work with the Opsource Cloud API 0.9.3.
All of the core libcloud functions are implemented. list_sizes() is the only strange one, because Opsource does not have the concept of picking sizes at creation time, so list_sizes() will always return one size. Instead, sizes are part of the images. Images can be resized after they are created. Pre-defined Opsource images ("base images" in opsource terms) are supported but "customer images" (snapshots) are not yet supported.
Some additional Opsource specific functions (eg: ex_list_networks()) have been included, but there are many more in the 0.9.3 api spec that have not been implemented yet, but I hope to in the future.
I merged in quite a lot of changes from trunk since I started working on this driver, but the tests all seem to pass. I have not implemented any pricing functions yet.
code is on github, in 'opsource-driver' branch: https://github.com/joemiller/libcloud