Class: Fog::DNS::SakuraCloud::Real
- Inherits:
-
Object
- Object
- Fog::DNS::SakuraCloud::Real
- Includes:
- SakuraCloud::Utils::Request
- Defined in:
- lib/fog/sakuracloud/dns.rb,
lib/fog/sakuracloud/requests/dns/list_zones.rb,
lib/fog/sakuracloud/requests/dns/create_zone.rb,
lib/fog/sakuracloud/requests/dns/delete_zone.rb,
lib/fog/sakuracloud/requests/dns/modify_zone.rb
Instance Method Summary collapse
- #create_zone(options) ⇒ Object
- #delete_zone(id) ⇒ Object
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
- #list_zones(options = {}) ⇒ Object
- #modify_zone(options) ⇒ Object
Methods included from SakuraCloud::Utils::Request
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/fog/sakuracloud/dns.rb', line 22 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
#create_zone(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 |
# File 'lib/fog/sakuracloud/requests/dns/create_zone.rb', line 7 def create_zone() name = [:name] ? [:name] : [:zone] body = { "CommonServiceItem"=>{ "Name"=>name, "Status"=>{"Zone"=>[:zone]}, "Provider"=>{"Class"=>"dns"}, "Description"=> [:description], "Settings" => { "DNS" => { "ResourceRecordSets" => [:rr_sets] } } } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => 201, :method => 'POST', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/commonserviceitem", :body => Fog::JSON.encode(body) ) end |
#delete_zone(id) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/fog/sakuracloud/requests/dns/delete_zone.rb', line 7 def delete_zone( id ) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'DELETE', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/commonserviceitem/#{id}" ) end |
#list_zones(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/fog/sakuracloud/requests/dns/list_zones.rb', line 7 def list_zones( = {}) filter = { "Filter" => { "Provider.Class" => "dns" } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/commonserviceitem", :query => URI.encode(Fog::JSON.encode(filter)) ) end |
#modify_zone(options) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/sakuracloud/requests/dns/modify_zone.rb', line 7 def modify_zone() body = { "CommonServiceItem"=>{ "Settings" => [:settings] } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => 200, :method => 'PUT', :path => "#{Fog::SakuraCloud.build_endpoint(@api_zone)}/commonserviceitem/#{[:id]}", :body => Fog::JSON.encode(body) ) end |