class Fog::Volume::SakuraCloud::Real
Public Class Methods
new(options = {})
click to toggle source
# File lib/fog/sakuracloud/volume.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
associate_ip_to_disk( disk_id, subnet )
click to toggle source
# File lib/fog/sakuracloud/requests/volume/associate_ip_to_disk.rb, line 6 def associate_ip_to_disk( disk_id, subnet ) body = { "UserIPAddress" => subnet[:ipaddress], "UserSubnet" => { "NetworkMaskLen" => subnet[:networkmasklen], "DefaultRoute" => subnet[:defaultroute] } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'PUT', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/config", :body => Fog::JSON.encode(body) ) end
attach_disk( disk_id, server_id )
click to toggle source
# File lib/fog/sakuracloud/requests/volume/attach_disk.rb, line 6 def attach_disk( disk_id, server_id ) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'PUT', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/to/server/#{server_id.to_s}" ) end
carve_hostname_on_disk( disk_id, hostname )
click to toggle source
# File lib/fog/sakuracloud/requests/volume/carve_hostname_on_disk.rb, line 6 def carve_hostname_on_disk( disk_id, hostname ) body = { "HostName" => hostname } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'PUT', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/config", :body => Fog::JSON.encode(body) ) end
configure_disk( disk_id, sshkey_id )
click to toggle source
# File lib/fog/sakuracloud/requests/volume/configure_disk.rb, line 6 def configure_disk( disk_id, sshkey_id ) body = { "SSHKey" => {"ID" => sshkey_id.to_s } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'PUT', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/config", :body => Fog::JSON.encode(body) ) end
create_disk( name, plan, options = {} )
click to toggle source
# File lib/fog/sakuracloud/requests/volume/create_disk.rb, line 6 def create_disk( name, plan, options = {} ) body = { "Disk" => { "Name" => name, "Plan" => { "ID" => plan.to_i } } } if !options[:source_archive].nil? body["Disk"]["SourceArchive"] = { "ID"=>options[:source_archive].to_s } end if !options[:size_mb].nil? body["Disk"]["SizeMB"] = options[:size_mb].to_i end request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [201, 202], :method => 'POST', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk", :body => Fog::JSON.encode(body) ) end
delete_disk( id )
click to toggle source
# File lib/fog/sakuracloud/requests/volume/delete_disk.rb, line 6 def delete_disk( id ) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'DELETE', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{id}" ) end
list_archives(options = {})
click to toggle source
# File lib/fog/sakuracloud/requests/volume/list_archives.rb, line 6 def list_archives(options = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/archive" ) end
list_disks(options = {})
click to toggle source
# File lib/fog/sakuracloud/requests/volume/list_disks.rb, line 6 def list_disks(options = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk" ) end
list_plans(options = {})
click to toggle source
# File lib/fog/sakuracloud/requests/volume/list_plans.rb, line 6 def list_plans(options = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/product/disk" ) end
register_note_to_disk( disk_id, notes )
click to toggle source
# File lib/fog/sakuracloud/requests/volume/register_note_to_disk.rb, line 6 def register_note_to_disk( disk_id, notes ) body = { "Notes" => notes.map {|note| { "ID" => note }} } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'PUT', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/config", :body => Fog::JSON.encode(body) ) end
request(params)
click to toggle source
# File lib/fog/sakuracloud/volume.rb, line 43 def request(params) response = parse @connection.request(params) response end
Private Instance Methods
parse(response)
click to toggle source
# File lib/fog/sakuracloud/volume.rb, line 49 def parse(response) return response if response.body.empty? response.body = Fog::JSON.decode(response.body) response end