63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# File 'lib/dynect_rest/resource.rb', line 63
def get(fqdn = nil, record_id=nil)
if record_id && fqdn
raw_rr = @dynect.get("#{resource_path}/#{fqdn}/#{record_id}")
DynectRest::Resource.new(dynect,
raw_rr["record_type"],
raw_rr["zone"],
raw_rr["fqdn"],
raw_rr["record_id"],
raw_rr["ttl"],
raw_rr["rdata"])
elsif fqdn
results = @dynect.get("#{resource_path}/#{fqdn}")
raw_rr_list = results.map do |record|
if (record =~ /^#{resource_path(:full)}\/#{Regexp.escape(fqdn)}\/(\d+)$/)
self.get(fqdn, $1)
else
record
end
end
case raw_rr_list.length
when 0
raise DynectRest::Exceptions::RequestFailed, "Cannot find #{record_type} record for #{fqdn}"
when 1
raw_rr_list[0]
else
raw_rr_list
end
else
@dynect.get(resource_path)
end
end
|