class Fog::DNS::SakuraCloud::Real
Public Class Methods
new(options = {})
click to toggle source
# File lib/fog/sakuracloud/dns.rb, line 20 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
create_zone(options)
click to toggle source
# File lib/fog/sakuracloud/requests/dns/create_zone.rb, line 6 def create_zone(options) name = options[:name] ? options[:name] : options[:zone] body = { "CommonServiceItem"=>{ "Name"=>name, "Status"=>{"Zone"=>options[:zone]}, "Provider"=>{"Class"=>"dns"}, "Description"=> options[:description], "Settings" => { "DNS" => { "ResourceRecordSets" => options[:rr_sets] } } } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => 201, :method => 'POST', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/commonserviceitem", :body => Fog::JSON.encode(body) ) end
delete_zone( id )
click to toggle source
# File lib/fog/sakuracloud/requests/dns/delete_zone.rb, line 6 def delete_zone( id ) request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => [200], :method => 'DELETE', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/commonserviceitem/#{id}" ) end
list_zones(options = {})
click to toggle source
# File lib/fog/sakuracloud/requests/dns/list_zones.rb, line 6 def list_zones(options = {}) filter = { "Filter" => { "Provider.Class" => "dns" } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :method => 'GET', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/commonserviceitem", :query => URI.encode(Fog::JSON.encode(filter)) ) end
modify_zone(options)
click to toggle source
# File lib/fog/sakuracloud/requests/dns/modify_zone.rb, line 6 def modify_zone(options) body = { "CommonServiceItem"=>{ "Settings" => options[:settings] } } request( :headers => { 'Authorization' => "Basic #{@auth_encode}" }, :expects => 200, :method => 'PUT', :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/commonserviceitem/#{options[:id]}", :body => Fog::JSON.encode(body) ) end
request(params)
click to toggle source
# File lib/fog/sakuracloud/dns.rb, line 33 def request(params) response = parse @connection.request(params) response end
Private Instance Methods
parse(response)
click to toggle source
# File lib/fog/sakuracloud/dns.rb, line 39 def parse(response) return response if response.body.empty? response.body = Fog::JSON.decode(response.body) response end