Class Rightscale::Slicehost
In: lib/right_slicehost.rb
Parent: Object

# 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"}, ... ]

Methods

Included Modules

RightSlicehostInterface

Public Class methods

Public Instance methods

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"}, ... ]

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"}

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}

Delete a record.

 sl.delete_record(348257) #=> true

Delete a slice.

 sl.delete_slice(26831) #=> true

Delete a zone.

 sl.delete_zone(45486) #=> true

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}

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}

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"}

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"}, ... ]

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"]}, ...]

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}

Reboot a slice (soft reboot is by default).

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

Rebuild a slice.

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

Update a record.

 sl.update_record(348257, :ttl => 777, :data=>"oops.my-domain.com") #=> true

Update a slice.

 sl.update_slice(26831, :name => 'my-awesome-slice') #=> true

Update a zone.

 sl.update_zone(45486, :acive => false, :ttl => 333) #=> true

[Validate]