class Fog::DNS::Dreamhost::Real

Public Class Methods

new(options={}) click to toggle source
# File lib/fog/dreamhost/dns.rb, line 44
def initialize(options={})
  @dreamhost_api_key  = options[:dreamhost_api_key]
  if options[:dreamhost_url]
    uri = URI.parse(options[:dreamhost_url])
    options[:host]    = uri.host
    options[:port]    = uri.port
    options[:scheme]  = uri.scheme
  end
  @host       = options[:host]        || "api.dreamhost.com"
  @persistent = options[:persistent]  || false
  @port       = options[:port]        || 443
  @scheme     = options[:scheme]      || 'https'
  @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent)
end

Public Instance Methods

create_record(record, type, value, comment = "") click to toggle source
# File lib/fog/dreamhost/requests/dns/create_record.rb, line 11
def create_record(record, type, value, comment = "")
  request( :expects  => 200,
           :method   => 'GET',
           :path     => "/",
           :query    => {
             :record    => record,
             :type      => type,
             :value     => value,
             :cmd       => 'dns-add_record',
             :comment   => comment
           }
         )
end
delete_record(name, type, value) click to toggle source
# File lib/fog/dreamhost/requests/dns/delete_record.rb, line 11
def delete_record(name, type, value)
  request( :expects  => 200,
           :method   => "GET",
           :path     => "/",
           :query    => {
             :cmd      => 'dns-remove_record',
             :type     => type,
             :record   => name,
             :value    => value,
           }
         )
end
list_records() click to toggle source
# File lib/fog/dreamhost/requests/dns/list_records.rb, line 11
def list_records
  request( :expects  => 200,
           :method   => "GET",
           :path     => "/",
           :query    => { :cmd => 'dns-list_records' } )
end
reload() click to toggle source
# File lib/fog/dreamhost/dns.rb, line 59
def reload
  @connection.reset
end
request(params) click to toggle source
# File lib/fog/dreamhost/dns.rb, line 63
def request(params)
  params[:query].merge!( { :key => @dreamhost_api_key,
                           :format => 'json' } )
  response = @connection.request(params)

  unless response.body.empty?
    response.body = Fog::JSON.decode(response.body)
  end
  if response.body['result'] != 'success'
    raise response.body['data']
  end
  response
end