Created: 2011-07-12 20:51
Updated: 2018-05-04 12:11
License: other


Provides support for interacting with IBM SmartCloud API and CLI tools



gem install cft_smartcloud


rake build
gem install pkg/[name of generated gem]


Please set up SMARTCLOUD_USERNAME and SMARTCLOUD_PASSWORD in your .bash_profile

export SMARTCLOUD_USERNAME=[your username]
export SMARTCLOUD_PASSWORD=[your password]

You can now also supply the username and password on the command line using -u and -p Use smartcloud help to get a list of all optoins.

Using the console

>> @smartcloud.display_instances
>> @smartcloud.display_volumes(:Location => 101)
>> @smartcloud.display_instances(:Location => 82, :Name => "namematch")
>> @smartcloud.poll_for_volume_state(12345, :unmounted)

The console predefines the @smartcloud instance variable that is set up from the environment variables SMARTCLOUD_USERNAME and SMARTCLOUD_PASSWORD automatically (it's created at the bottom of smartcloud.rb)

Using the commandline

To see a list of methods:

smartcloud help


  smartcloud display_volumes
  smartcloud display_volumes Location=82 State=MOUNTED
  smartcloud display_instances
  smartcloud delete_instances 12345 12346 12347
  smartcloud display_images Name="Red Hat"
  smartcloud display_instances Name="Red Hat" Location=82

The 'display_*' methods are intended to generate pretty human readable displays, while the describe methods will return pretty-formatted hashes, or singular values.

To save time when dealing with large responses, such as the describe_images call, you can save a response in its native XML format:

  smartcloud display_images -S /tmp/images.xml

You can then replay the response, using filters on it

  smartcloud display_images Name='Red Hat' -R /tmp/images.xml

RestClient vs CurlHttpClient

Sometimes RestClient and friends have trouble communicating with certain API's such as IBM SmartCloud, returning 500 errors. We found in some cases the only thing that truly works is pure curl (not even libcurl ruby wrappers). Therefore there is a provided simple CurlHttpClient library which emulates the RestClient interface, and wraps command line calls to curl.

The choice of client is determined inside of config.yml


This project uses the jeweler gem for packaging. See the tasks:

rake version:bump:...
rake build

Screencast (somewhat outdated)


Copyright (c) 2011 CohesiveFT. See LICENSE for details.

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more