1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

Fixing Slicehost DNS so that a) tests pass b) token names map to what Fog expects -- record_type not record-type, value not data, etc c) creation of new DNS records possible

This commit is contained in:
Patrick McKenzie 2011-11-08 16:14:30 +09:00
parent bea05e7fcc
commit efeee6f904
5 changed files with 40 additions and 19 deletions

View file

@ -12,7 +12,7 @@ module Fog
identity :id
attribute :active
attribute :value, :aliases => 'ip'
attribute :value, :aliases => ['ip', 'data']
attribute :name
attribute :description, :aliases => 'aux'
attribute :ttl

View file

@ -11,9 +11,15 @@ module Fog
def end_element(name)
case name
when 'zone-id', 'ttl', 'id'
when 'zone_id'
@response["zone-id"] = value.to_i
when 'record_type'
@response["record-type"] = value
when 'ttl', 'id'
@response[name] = value.to_i
when 'record-type', 'name', 'data', 'active', 'aux'
when 'value'
@response["data"] = value
when 'name', 'data', 'active', 'aux'
@response[name] = value
end
end

View file

@ -6,15 +6,27 @@ module Fog
class GetRecord < Fog::Parsers::Base
def reset
@record = {}
@response = { }
end
def end_element(name)
case name
when 'zone-id', 'ttl'
@response[name] = value.to_i
when 'record-type', 'name', 'data', 'active', 'aux'
@response[name] = value
when 'id'
@record["id"] = value.to_i
when 'zone-id'
@record["zone_id"] = value.to_i
when 'record-type'
@record["record_type"] = value
when 'ttl'
@record[name] = value.to_i
when 'data'
@record["value"] = value
when 'name', 'active', 'aux'
@record[name] = value
when 'record'
@response = @record
@record = {}
end
end
@ -23,4 +35,4 @@ module Fog
end
end
end
end
end

View file

@ -12,13 +12,17 @@ module Fog
def end_element(name)
case name
when 'id'
@record["id"] = value.to_i
when 'zone-id'
@record["zone_id"] = value.to_i
when 'record-type'
@record["record_type"] = value
when 'ttl'
@record[name] = value.to_i
when 'name', 'data', 'active', 'aux'
when 'data'
@record["value"] = value
when 'name', 'active', 'aux'
@record[name] = value
when 'record'
@response['records'] << @record

View file

@ -184,10 +184,10 @@ Shindo.tests('Fog::DNS[:slicehost] | DNS requests', ['slicehost', 'dns']) do
if response.status == 200
mail_domain = 'mail.' + @domain
record = response.body['records'][0]
if (record['record-type'] == 'MX') and (record['name'] == @domain) and
(record['data'] == mail_domain) and (record['ttl'] == 3600) and (record['active'] == 'N') and
if (record['record_type'] == 'MX') and (record['name'] == @domain) and
(record['value'] == mail_domain) and (record['ttl'] == 3600) and (record['active'] == 'N') and
(record['aux'] == "10")
result= true
result = true
end
end
@ -197,7 +197,7 @@ Shindo.tests('Fog::DNS[:slicehost] | DNS requests', ['slicehost', 'dns']) do
test('get records - verify all parameters for one record') do
pending if Fog.mocking?
result= false
result = false
response = Fog::DNS[:slicehost].get_records()
if response.status == 200
@ -205,16 +205,15 @@ Shindo.tests('Fog::DNS[:slicehost] | DNS requests', ['slicehost', 'dns']) do
#find mx record
records.each {|record|
if record['record-type'] == 'MX'
if (record['record_type'] == 'MX') and (record['name'] == @domain)
mail_domain = 'mail.' + @domain
if (record['record-type'] == 'MX') and (record['name'] == @domain) and
(record['data'] == mail_domain) and (record['ttl'] == 3600) and (record['active'] == 'N') and
if (record['record_type'] == 'MX') and (record['name'] == @domain) and
(record['value'] == mail_domain) and (record['ttl'] == 3600) and (record['active'] == 'N') and
(record['aux'] == "10")
result= true
break
result = true
end
break
end
}
end