Class: Fog::Volume::SakuraCloud::Real
- Inherits:
-
Object
- Object
- Fog::Volume::SakuraCloud::Real
- Defined in:
- lib/fog/sakuracloud/volume.rb,
lib/fog/sakuracloud/requests/volume/list_disks.rb,
lib/fog/sakuracloud/requests/volume/list_plans.rb,
lib/fog/sakuracloud/requests/volume/attach_disk.rb,
lib/fog/sakuracloud/requests/volume/create_disk.rb,
lib/fog/sakuracloud/requests/volume/delete_disk.rb,
lib/fog/sakuracloud/requests/volume/list_archives.rb,
lib/fog/sakuracloud/requests/volume/configure_disk.rb
Instance Method Summary collapse
- #attach_disk(disk_id, server_id) ⇒ Object
- #configure_disk(disk_id, sshkey_id) ⇒ Object
- #create_disk(name, plan, sourcearchive) ⇒ Object
- #delete_disk(id) ⇒ Object
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
- #list_archives(options = {}) ⇒ Object
- #list_disks(options = {}) ⇒ Object
- #list_plans(options = {}) ⇒ Object
- #request(params) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/fog/sakuracloud/volume.rb', line 31 def initialize( = {}) @auth_encord = 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' @connection = Fog::Core::Connection.new(@sakuracloud_api_url) end |
Instance Method Details
#attach_disk(disk_id, server_id) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/fog/sakuracloud/requests/volume/attach_disk.rb', line 8 def attach_disk( disk_id, server_id ) request( :headers => { 'Authorization' => "Basic #{@auth_encord}" }, :expects => [200], :method => 'PUT', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/to/server/#{server_id.to_s}" ) end |
#configure_disk(disk_id, sshkey_id) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/fog/sakuracloud/requests/volume/configure_disk.rb', line 8 def configure_disk( disk_id, sshkey_id ) body = { "SSHKey" => {"ID" => sshkey_id.to_s } } request( :headers => { 'Authorization' => "Basic #{@auth_encord}" }, :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, sourcearchive) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/sakuracloud/requests/volume/create_disk.rb', line 8 def create_disk( name, plan, sourcearchive ) body = { "Disk" => { "Name" => name, "SourceArchive" => { "ID" => sourcearchive.to_s }, "Plan" => { "ID" => plan.to_i } } } request( :headers => { 'Authorization' => "Basic #{@auth_encord}" }, :expects => [202], :method => 'POST', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk", :body => Fog::JSON.encode(body) ) end |
#delete_disk(id) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/fog/sakuracloud/requests/volume/delete_disk.rb', line 8 def delete_disk( id ) request( :headers => { 'Authorization' => "Basic #{@auth_encord}" }, :expects => [200], :method => 'DELETE', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{id}" ) end |
#list_archives(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/fog/sakuracloud/requests/volume/list_archives.rb', line 7 def list_archives( = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encord}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/archive" ) end |
#list_disks(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/fog/sakuracloud/requests/volume/list_disks.rb', line 7 def list_disks( = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encord}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk" ) end |
#list_plans(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/fog/sakuracloud/requests/volume/list_plans.rb', line 7 def list_plans( = {}) request( :headers => { 'Authorization' => "Basic #{@auth_encord}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/product/disk" ) end |
#request(params) ⇒ Object
44 45 46 47 |
# File 'lib/fog/sakuracloud/volume.rb', line 44 def request(params) response = parse @connection.request(params) response end |