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"}, ... ]
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 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 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 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 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 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.
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.
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.
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 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.
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 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 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 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 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 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 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
Generated with the Darkfish Rdoc Generator 2.