Parent

Class/Module Index [+]

Quicksearch

Rightscale::Slicehost

# Slices:

sl = Rightscale::Slicehost.new('12345...uvwxyz')

sl.list_images #=>

 [{:sls_id=>2, :name=>"CentOS 5.2"},
  {:sls_id=>3, :name=>"Gentoo 2008.0"},
  {:sls_id=>4, :name=>"Debian 4.0 (etch)"},
  {:sls_id=>5, :name=>"Fedora 9"},
  {:sls_id=>9, :name=>"Arch 2007.08"},
  {:sls_id=>10, :name=>"Ubuntu 8.04.1 LTS (hardy)"},
  {:sls_id=>11, :name=>"Ubuntu 8.10 (intrepid)"}]

sl.list_flavors #=>
 [{:sls_id=>1, :name=>"256 slice", :price=>2000, :ram=>256},
  {:sls_id=>2, :name=>"512 slice", :price=>3800, :ram=>512},
  {:sls_id=>3, :name=>"1GB slice", :price=>7000, :ram=>1024},
  {:sls_id=>4, :name=>"2GB slice", :price=>13000, :ram=>2048},
  {:sls_id=>5, :name=>"4GB slice", :price=>25000, :ram=>4096},
  {:sls_id=>6, :name=>"8GB slice", :price=>45000, :ram=>8192},
  {:sls_id=>7, :name=>"15.5GB slice", :price=>80000, :ram=>15872}]

sl.create_slice(:flavor_id=>1 , :image_id=>2, :name=>'my-slice' ) #=>

{:flavor_sls_id=>1,
 :addresses=>["173.45.224.125"],
 :bw_in=>0.0,
 :sls_id=>26831,
 :name=>"my-slice",
 :status=>"build",
 :bw_out=>0.0,
 :ip_address=>"173.45.224.125",
 :progress=>0,
 :image_sls_id=>2,
 :root_password=>"my-slicen57"}

sl.rebuild_slice(26831, :image_id => 3) #=> true

sl.reboot_slice(26832, :hard) #=> true

sl.delete_slice(26832) #=> true

# DNS:

sl.list_zones #=>

[ {:origin=>"a1.my-domain.com.", :ttl=>300, :sls_id=>45486, :active=>true},
  {:origin=>"a2.my-domain.com.", :ttl=>300, :sls_id=>45485, :active=>true},
  {:origin=>"a3.my-domain.com.", :ttl=>300, :sls_id=>45487, :active=>false}, ... ]

sl.list_records #=>

[ { :sls_id=>"348257",
    :zone_id=>45687,
    :data=>"woo-hoo.my-domain.com",
    :aux=>"0",
    :name=>"wooooohooooo",
    :ttl=>86400,
    :active=>true,
    :record_type=>"CNAME"}, ... ]

Public Class Methods

new(slicehost_password=nil, params={}) click to toggle source
# File lib/right_slicehost.rb, line 106
def initialize(slicehost_password=nil, params={})
  slicehost_password ||= ENV['SLICEHOST_PASSWORD']
  init slicehost_password, params
end

Public Instance Methods

create_record(params={}) click to toggle source

Create a new record.

sl.create_record(:zone_id => 45687, :data=>"woo-hoo.my-domain.com", :name=>"wooooohooooo", :data=>"woo-hoo.my-domain.com") #=>
  [ { :sls_id=>348257,
      :zone_id=>45687,
      :data=>"woo-hoo.my-domain.com",
      :aux=>"0",
      :name=>"wooooohooooo",
      :ttl=>86400,
      :active=>true,
      :record_type=>"CNAME"}, ... ]
# File lib/right_slicehost.rb, line 411
def create_record(params={})
  params[:active] = (params[:active] ? 'Y' : 'N') unless params[:active].nil?
  # POST /records.xml
  req = generate_request(Net::HTTP::Post, build_path(:records))
  req[:request].body = build_xml(:record, params)
  request_info(req, RecordsParser.new(:logger => @logger)).first
end
create_slice(params={}) click to toggle source

Create a new slice.

sl.create_slice(:flavor_id=>1 , :image_id=>2, :name=>'my-slice' ) #=>
  {:flavor_sls_id=>1,
   :addresses=>["173.45.224.125"],
   :bw_in=>0.0,
   :sls_id=>26831,
   :name=>"my-slice",
   :status=>"build",
   :bw_out=>0.0,
   :ip_address=>"173.45.224.125",
   :progress=>0,
   :image_sls_id=>2,
   :root_password=>"my-slicen57"}
# File lib/right_slicehost.rb, line 254
def create_slice(params={})
  # POST /slices.xml
  req = generate_request(Net::HTTP::Post, build_path(:slices))
  req[:request].body = build_xml(:slice, params)
  request_info(req, SlicesParser.new(:logger => @logger)).first
end
create_zone(params={}) click to toggle source

Create a new zone.

sl.create_zone(:origin => 'a4.my_domain.ru', :ttl => 111, :active => false) #=>
  { :origin=>"a4.my-domain.com.",
    :ttl=>111,
    :sls_id=>45689,
    :active=>false}
# File lib/right_slicehost.rb, line 343
def create_zone(params={})
  params[:active] = (params[:active] ? 'Y' : 'N') unless params[:active].nil?
  # POST /zones.xml
  req = generate_request(Net::HTTP::Post, build_path(:zones))
  req[:request].body = build_xml(:zone, params)
  request_info(req, ZonesParser.new(:logger => @logger)).first
end
delete_record(sls_id) click to toggle source

Delete a record.

sl.delete_record(348257) #=> true
# File lib/right_slicehost.rb, line 435
def delete_record(sls_id)
  # DELETE /records/id.xml
  req = generate_request(Net::HTTP::Delete, build_path(:records, sls_id))
  request_info(req, RightHttp2xxParser.new(:logger => @logger))
end
delete_slice(sls_id) click to toggle source

Delete a slice.

sl.delete_slice(26831) #=> true
# File lib/right_slicehost.rb, line 302
def delete_slice(sls_id)
  # DELETE /slices/id.xml
  req = generate_request(Net::HTTP::Delete, build_path(:slices, sls_id))
  request_info(req, RightHttp2xxParser.new(:logger => @logger))
end
delete_zone(sls_id) click to toggle source

Delete a zone.

sl.delete_zone(45486) #=> true
# File lib/right_slicehost.rb, line 367
def delete_zone(sls_id)
  # DELETE /zones/id.xml
  req = generate_request(Net::HTTP::Delete, build_path(:zones, sls_id))
  request_info(req, RightHttp2xxParser.new(:logger => @logger))
end
list_backups(sls_id=nil) click to toggle source

List backups.

sl.list_backups #=>
  [{:sls_id=>"5-6507",
    :slice_sls_id=>26831,
    :name=>"backup 1",
    :date=>Wed Dec 10 00:43:20 UTC 2008}, ...]

sl.list_backups("5-6507") #=>
  {:sls_id=>"5-6507",
   :slice_sls_id=>26831,
   :name=>"backup 1",
   :date=>Wed Dec 10 00:43:20 UTC 2008}
# File lib/right_slicehost.rb, line 204
def list_backups(sls_id=nil)
  req    = generate_request(Net::HTTP::Get, build_path(:backups, sls_id))
  result = request_cache_or_info(:list_backups, req, BackupsParser, sls_id.nil?)
  sls_id ? result.first : result
rescue
  on_exception
end
list_flavors(sls_id=nil) click to toggle source

List flavors.

sl.list_flavors #=> 
 [{:sls_id=>1, :name=>"256 slice", :price=>2000, :ram=>256},
  {:sls_id=>2, :name=>"512 slice", :price=>3800, :ram=>512},
  {:sls_id=>3, :name=>"1GB slice", :price=>7000, :ram=>1024},
  {:sls_id=>4, :name=>"2GB slice", :price=>13000, :ram=>2048},
  {:sls_id=>5, :name=>"4GB slice", :price=>25000, :ram=>4096},
  {:sls_id=>6, :name=>"8GB slice", :price=>45000, :ram=>8192},
  {:sls_id=>7, :name=>"15.5GB slice", :price=>80000, :ram=>15872}]

   sl.list_flavors(6) #=> {:sls_id=>6, :name=>"8GB slice", :price=>45000, :ram=>8192}
# File lib/right_slicehost.rb, line 176
def list_flavors(sls_id=nil)
  req    = generate_request(Net::HTTP::Get, build_path(:flavors, sls_id))
  result = request_cache_or_info(:list_flavors, req, FlavorsParser, sls_id.nil?)
  sls_id ? result.first : result
rescue
  on_exception
end
list_images(sls_id=nil) click to toggle source

List images.

sl.list_images #=>
  [{:sls_id=>2, :name=>"CentOS 5.2"},
   {:sls_id=>3, :name=>"Gentoo 2008.0"},
   {:sls_id=>4, :name=>"Debian 4.0 (etch)"},
   {:sls_id=>5, :name=>"Fedora 9"},
   {:sls_id=>9, :name=>"Arch 2007.08"},
   {:sls_id=>10, :name=>"Ubuntu 8.04.1 LTS (hardy)"},
   {:sls_id=>11, :name=>"Ubuntu 8.10 (intrepid)"}]

sl.list_images(9) #=> {:sls_id=>9, :name=>"Arch 2007.08"}
# File lib/right_slicehost.rb, line 151
def list_images(sls_id=nil)
  req    = generate_request(Net::HTTP::Get, build_path(:images, sls_id))
  result = request_cache_or_info(:list_images, req, ImagesParser, sls_id.nil?)
  sls_id ? result.first : result
rescue
  on_exception
end
list_records(sls_id=nil) click to toggle source

List DNS Records

sl.list_records #=>
  [ { :sls_id=>"348257",
      :zone_id=>45687,
      :data=>"woo-hoo.my-domain.com",
      :aux=>"0",
      :name=>"wooooohooooo",
      :ttl=>86400,
      :active=>true,
      :record_type=>"CNAME"}, ... ]
# File lib/right_slicehost.rb, line 389
def list_records(sls_id=nil)
  # GET /records.xml
  # GET /records/id.xml
  req    = generate_request(Net::HTTP::Get, build_path(:records, sls_id))
  result = request_cache_or_info(:list_records, req, RecordsParser, sls_id.nil?)
  sls_id ? result.first : result
rescue
  on_exception
end
list_slices(sls_id=nil) click to toggle source

List slices.

sl.list_slices #=>
  [{:bw_in=>0.05,
    :sls_id=>26706,
    :bw_out=>0.0,
    :ip_address=>"173.45.233.125",
    :progress=>100,
    :status=>"active",
    :name=>"slice26706",
    :image_sls_id=>11,
    :flavor_sls_id=>1,
    :addresses=>["173.45.233.125"]}, ...]
# File lib/right_slicehost.rb, line 230
def list_slices(sls_id=nil)
  # GET /slices.xml
  req    = generate_request(Net::HTTP::Get, build_path(:slices, sls_id))
  result = request_cache_or_info(:list_slices, req, SlicesParser, sls_id.nil?)
  sls_id ? result.first : result
rescue
  on_exception
end
list_zones(sls_id=nil) click to toggle source

List DNS Zones.

# bunch of zones
sl.list_zones #=>
  [ {:origin=>"a1.my-domain.com.", :ttl=>300, :sls_id=>45486, :active=>true},
    {:origin=>"a2.my-domain.com.", :ttl=>300, :sls_id=>45485, :active=>true},
    {:origin=>"a3.my-domain.com.", :ttl=>300, :sls_id=>45487, :active=>false} ]

# single zone
sl.list_zones(45486) #=> 
  {:origin=>"a1.my-domain.com.", :ttl=>300, :sls_id=>45486, :active=>true}
# File lib/right_slicehost.rb, line 325
def list_zones(sls_id=nil)
  # GET /zones.xml
  # GET /zones/id.xml
  req    = generate_request(Net::HTTP::Get, build_path(:zones, sls_id))
  result = request_cache_or_info(:list_zones, req, ZonesParser, sls_id.nil?)
  sls_id ? result.first : result
rescue
  on_exception
end
reboot_slice(sls_id, hard_reboot = false) click to toggle source

Reboot a slice (soft reboot is by default).

sl.reboot_slice(26831) #=> true
sl.reboot_slice(26832, :hard) #=> true
# File lib/right_slicehost.rb, line 289
def reboot_slice(sls_id, hard_reboot = false)
  # PUT /slices/id/reboot.xml
  action = hard_reboot ? :hard_reboot : :reboot
  req = generate_request(Net::HTTP::Put, build_path(:slices, sls_id, action))
  request_info(req, RightHttp2xxParser.new)
rescue
  on_exception
end
rebuild_slice(sls_id, params) click to toggle source

Rebuild a slice.

sl.rebuild_slice(26831, :image_id => 3) #=> true
# File lib/right_slicehost.rb, line 276
def rebuild_slice(sls_id, params)
  # PUT /slices/id/rebuild.xml?params
  req = generate_request(Net::HTTP::Put, build_path(:slices, sls_id, :rebuild), params)
  request_info(req, RightHttp2xxParser.new)
rescue
  on_exception
end
update_record(sls_id, params={}) click to toggle source

Update a record.

sl.update_record(348257, :ttl => 777, :data=>"oops.my-domain.com") #=> true
# File lib/right_slicehost.rb, line 423
def update_record(sls_id, params={})
  params[:active] = (params[:active] ? 'Y' : 'N') unless params[:active].nil?
  # PUT /zones/id.xml
  req = generate_request(Net::HTTP::Put, build_path(:records, sls_id))
  req[:request].body = build_xml(:record, params)
  request_info(req, RightHttp2xxParser.new(:logger => @logger))
end
update_slice(sls_id, params={}) click to toggle source

Update a slice.

sl.update_slice(26831, :name => 'my-awesome-slice') #=> true
# File lib/right_slicehost.rb, line 265
def update_slice(sls_id, params={})
  # PUT /slices/id.xml
  req = generate_request(Net::HTTP::Put, build_path(:slices, sls_id))
  req[:request].body = build_xml(:slice, params)
  request_info(req, RightHttp2xxParser.new(:logger => @logger))
end
update_zone(sls_id, params={}) click to toggle source

Update a zone.

sl.update_zone(45486, :acive => false, :ttl => 333) #=> true
# File lib/right_slicehost.rb, line 355
def update_zone(sls_id, params={})
  params[:active] = (params[:active] ? 'Y' : 'N') unless params[:active].nil?
  # PUT /zones/id.xml
  req = generate_request(Net::HTTP::Put, build_path(:zones, sls_id))
  req[:request].body = build_xml(:zone, params)
  request_info(req, RightHttp2xxParser.new(:logger => @logger))
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.