インタフェース・メソッド
このページでは Rackspace の CloudServers と CloudFiles サービスへインタフェースするためのメソッドを説明します。Ruby メソッド
CloudFiles アクセスのための Ruby メソッドは、下記のリファレンスの cloudfiles gem に基づいています:http://github.com/rackspace/ruby-cloudfiles
この gem は Control Plan Editor と一緒にパッケージされているので、これらの Ruby メソッドは、コントロールプランの Ruby タスクの中で使われるかも知れません。下記のサンプルは、データをリストしたり、プットやゲットするのに cloudfile メソッドをどのように使用するかを示します。
# $: << './jrubylib/mime-types-1.16/lib' $: << './jrubylib/rackspace-cloudfiles-1.4.0.0/lib' $: << './jrubylib/jruby-openssl-0.5.2/lib' $: << './jrubylib' # require 'rubygems' require 'cloudfiles' USERNAME='user' API_KEY='apikey' # Log into the Cloud Files system cf = CloudFiles::Connection.new(USERNAME, API_KEY) # Get a listing of all containers under this account c = cf.containers # => ["backup", "Books", "cftest", "test", "video", "webpics"] c.each { |x| puts "container=#{x}" } # Access a specific container container = cf.container('test_container') # See how many objects are under this container puts "Number of objects in test_container=#{container.count}" # List the objects objectname = nil container.objects.each { |o| puts "object=#{o}" objectname = o } # Select an object object = container.object(objectname) # Get that object's data puts "Object content\n" puts object.data
Rackspace の CloudServer API は、ここで文書化されています。 Tap In は CloudServer を呼び出すために使用できる CloudServers パッケージを開発しました。
このパッケージは、a class="wiki_link_ext" href="http://www.tapinsystems.com/downloads/rackspace/TIS_CloudServers.rb" rel="nofollow" target="_blank">ここからダウンロードできます。 TIS_CloudServers.rb パッケージは Control Plan Editer の jrubylib ディレクトリの中にインストールされます。
下記のサンプル RS_flavor_list.xml は、サーバの種類(flavors)をリストするのに、このパッケージを使用します。
$: << './jrubylib/json_pure-1.1.9/lib' $: << './jrubylib' require 'TIS_CloudServers' require 'json' cf = Connection.new($USERNAME, $API_KEY) path = "/flavors" resp = cf.cfreq("GET",cf.servermgmthost,cf.servermgmtpath+path,cf.servermgmtport,cf.servermgmtscheme) puts resp.body $flavors = JSON.parse(resp.body) $flavors['flavors'].each { |i| puts "Flavor #{i['name']}, #{i['id']}" }これは、コンソールへ下記のように出力します。
{"flavors":[{"id":1,"name":"256 server"},{"id":2,"name":"512 server"},{"id":3,"name":"1GB server"},
{"id":4,"name":"2GB server"},{"id":5,"name":"4GB server"},{"id":6,"name":"8GB server"},{"id":7,"name":"15.5GB server"}]} Flavor 256 server, 1 Flavor 512 server, 2 Flavor 1GB server, 3 Flavor 2GB server, 4 Flavor 4GB server, 5 Flavor 8GB server, 6 Flavor 15.5GB server, 7