Class: Fog::Compute::SakuraCloud::Real
- Inherits:
-
Object
- Object
- Fog::Compute::SakuraCloud::Real
- Includes:
- SakuraCloud::Utils::Request
- Defined in:
- lib/fog/sakuracloud/compute.rb,
lib/fog/sakuracloud/requests/compute/list_plans.rb,
lib/fog/sakuracloud/requests/compute/list_zones.rb,
lib/fog/sakuracloud/requests/compute/boot_server.rb,
lib/fog/sakuracloud/requests/compute/stop_server.rb,
lib/fog/sakuracloud/requests/compute/list_servers.rb,
lib/fog/sakuracloud/requests/compute/create_server.rb,
lib/fog/sakuracloud/requests/compute/delete_server.rb,
lib/fog/sakuracloud/requests/compute/list_ssh_keys.rb
Instance Method Summary collapse
- #boot_server(id) ⇒ Object
- #create_server(options) ⇒ Object
- #delete_server(id, force = false, disks = []) ⇒ Object
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
- #list_plans(options = {}) ⇒ Object
- #list_servers(options = {}) ⇒ Object
- #list_ssh_keys(options = {}) ⇒ Object
- #list_zones(options = {}) ⇒ Object
- #stop_server(id, force = false) ⇒ Object
Methods included from SakuraCloud::Utils::Request
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/fog/sakuracloud/compute.rb', line 32 def initialize( = {}) @auth_encode = Base64.strict_encode64([ [:sakuracloud_api_token], [:sakuracloud_api_token_secret] ].join(':')) Fog.credentials[:sakuracloud_api_token] = [:sakuracloud_api_token] Fog.credentials[:sakuracloud_api_token_secret] = [:sakuracloud_api_token_secret] @sakuracloud_api_url = [:sakuracloud_api_url] || 'https://secure.sakura.ad.jp' @api_zone = [:api_zone] || Fog.credentials[:sakuracloud_api_zone] || 'is1b' Fog::SakuraCloud.validate_api_zone!(@api_zone) @connection = Fog::Core::Connection.new(@sakuracloud_api_url) end |
Instance Method Details
#boot_server(id) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/fog/sakuracloud/requests/compute/boot_server.rb', line 7 def boot_server( id ) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'PUT', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/server/#{id}/power" ) true end |
#create_server(options) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/fog/sakuracloud/requests/compute/create_server.rb', line 7 def create_server() if [:switch] switchs = [:switch].split(',') connectedswitches = switchs.map do |sw_id| { "ID" => sw_id } end else connectedswitches = [{"Scope"=>"shared", "BandWidthMbps"=>100}] end body = { "Server" => { "Name" => [:name], "ServerPlan" => { "ID" => [:serverplan].to_i }, "ConnectedSwitches" => connectedswitches } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [201], :method => 'POST', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/server", :body => Fog::JSON.encode(body) ) end |
#delete_server(id, force = false, disks = []) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/sakuracloud/requests/compute/delete_server.rb', line 7 def delete_server( id, force = false, disks = [] ) body = { "Force" => force, 'WithDisk' => disks } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'DELETE', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/server/#{id}", :body => Fog::JSON.encode(body) ) end |
#list_plans(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/fog/sakuracloud/requests/compute/list_plans.rb', line 7 def list_plans( = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/product/server" ) end |
#list_servers(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/fog/sakuracloud/requests/compute/list_servers.rb', line 7 def list_servers( = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/server" ) end |
#list_ssh_keys(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/fog/sakuracloud/requests/compute/list_ssh_keys.rb', line 7 def list_ssh_keys( = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/sshkey" ) end |
#list_zones(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/fog/sakuracloud/requests/compute/list_zones.rb', line 7 def list_zones( = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/zone" ) end |
#stop_server(id, force = false) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/sakuracloud/requests/compute/stop_server.rb', line 7 def stop_server( id, force = false ) if force body = { "Force" => true } else body = {} end request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200,202], :method => 'DELETE', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/server/#{id}/power", :body => Fog::JSON.encode(body) ) true end |