class Fog::Compute::SakuraCloud::Real
Public Class Methods
new(options = {})
click to toggle source
# File lib/fog/sakuracloud/compute.rb, line 30 def initialize(options = {}) @auth_encode = Base64.strict_encode64([ options[:sakuracloud_api_token], options[:sakuracloud_api_token_secret] ].join(':')) Fog.credentials[:sakuracloud_api_token] = options[:sakuracloud_api_token] Fog.credentials[:sakuracloud_api_token_secret] = options[:sakuracloud_api_token_secret] @sakuracloud_api_url = options[:sakuracloud_api_url] || 'https://secure.sakura.ad.jp' @connection = Fog::Core::Connection.new(@sakuracloud_api_url) end
Public Instance Methods
boot_server( id )
click to toggle source
# File lib/fog/sakuracloud/requests/compute/boot_server.rb, line 6 def boot_server( id ) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'PUT', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server/#{id}/power" ) true end
create_server(options)
click to toggle source
# File lib/fog/sakuracloud/requests/compute/create_server.rb, line 6 def create_server(options) if options[:switch] switchs = options[:switch].split(',') connectedswitches = switchs.map do |sw_id| { "ID" => sw_id } end else connectedswitches = [{"Scope"=>"shared", "BandWidthMbps"=>100}] end body = { "Server" => { "Name" => options[:name], "ServerPlan" => { "ID" => options[:serverplan].to_i }, "ConnectedSwitches" => connectedswitches } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [201], :method => 'POST', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server", :body => Fog::JSON.encode(body) ) end
delete_server( id, force = false, disks = [] )
click to toggle source
# File lib/fog/sakuracloud/requests/compute/delete_server.rb, line 6 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::SAKURACLOUD_API_ENDPOINT}/server/#{id}", :body => Fog::JSON.encode(body) ) end
list_plans(options = {})
click to toggle source
# File lib/fog/sakuracloud/requests/compute/list_plans.rb, line 6 def list_plans(options = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/product/server" ) end
list_servers(options = {})
click to toggle source
# File lib/fog/sakuracloud/requests/compute/list_servers.rb, line 6 def list_servers(options = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server" ) end
list_ssh_keys(options = {})
click to toggle source
# File lib/fog/sakuracloud/requests/compute/list_ssh_keys.rb, line 6 def list_ssh_keys(options = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/sshkey" ) end
list_zones(options = {})
click to toggle source
# File lib/fog/sakuracloud/requests/compute/list_zones.rb, line 6 def list_zones(options = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/zone" ) end
request(params)
click to toggle source
# File lib/fog/sakuracloud/compute.rb, line 43 def request(params) response = parse @connection.request(params) response end
stop_server( id, force = false )
click to toggle source
# File lib/fog/sakuracloud/requests/compute/stop_server.rb, line 6 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::SAKURACLOUD_API_ENDPOINT}/server/#{id}/power", :body => Fog::JSON.encode(body) ) true end
Private Instance Methods
parse(response)
click to toggle source
# File lib/fog/sakuracloud/compute.rb, line 49 def parse(response) return response if response.body.empty? response.body = Fog::JSON.decode(response.body) response end