On Fri, Jan 25, 2013 at 4:35 PM, Rohit Yadav <[email protected]> wrote: > Awesome chip!!! > > I've a suggestion: To make automatic wrapping of apis and its usage > you can use api discovery you can get a json (during build time or > release time of the library against a running mgmt server) or can get > it via processing commands.xml from tools/apidoc/target; this json > will have all available apis with their command name, description, > helpdoc, request and response params etc. (related api as well). I bet > you can write a ruby code generator with this approach in less than > 100 lines to create api boilerplate classes (the way marvin does it) > :)
Indeed - I could look at that. Honestly though, I simply add ruby support to the CS client generator [1], and then wrapped the result up in a gem (including a base client class). [1] https://github.com/jasonhancock/cloudstack-client-generator > I'm doing that and more on cloudmonkey but for runtime and I'll cut a > final stable version based on original design of cloudmonkey on > http://pypi.python.org/pypi/cloudmonkey After which pypi channel would > be only used for official/voted releases. > > Regards. > PS. I created my own cloudmonkey distribution channel called > clouddonkey (suggested by my brother, it carries the load :P) where > I'll do my personal releases to share latest/snapshots; (and I checked > clouddonkey is not copyrighted :P) > http://pypi.python.org/pypi/clouddonkey/4.1.0 > > > On Fri, Jan 25, 2013 at 10:53 AM, Chip Childers > <[email protected]> wrote: >> I'm pretty new to Ruby, but I just released a CloudStack ruby client: >> https://rubygems.org/gems/cloudstack_ruby_client >> >> Code is here: https://github.com/chipchilders/cloudstack_ruby_client >> >> Comments and help welcome! >> >> To install: >> gem install cloudstack_ruby_client >> >> >> Basic usage (the creds are from my devcloud install): >> require 'cloudstack_ruby_client' >> URL = 'http://192.168.56.10:8080/client/api/' >> APIKEY = >> 'yy0sfCPpyKnvREhgpeIWzXORIIvyteq_iCgFpKXnqpdbnHuoYiK78nprSggG4hcx-hxwW897nU-XvGB0Tq8YFw' >> SECKEY = >> 'Pse4fqYNnr1xvoRXlAe8NQKCSXeK_VGdwUxUzyLEPVQ7B3cI1Q7B8jmZ42FQpz2jIICFax1foIzg2716lJFZVw' >> client = CloudstackRubyClient::Client.new(URL, APIKEY, SECKEY, false) >> puts client.listNetworkOfferings() >
