lib/fog/rackspace/models/dns/record.rb in fog-1.8.0 vs lib/fog/rackspace/models/dns/record.rb in fog-1.9.0
- old
+ new
@@ -22,20 +22,20 @@
attribute :created
attribute :updated
def destroy
requires :zone, :identity
- wait_for_job connection.remove_record(@zone.identity, identity).body['jobId']
+ wait_for_job service.remove_record(@zone.identity, identity).body['jobId']
true
end
def zone
@zone
end
def save
- if identity
+ if persisted?
update
else
create
end
end
@@ -49,28 +49,32 @@
:name => name,
:type => type,
:data => value
}
+ if ttl
+ options[:ttl] = ttl
+ end
+
if priority
options[:priority] = priority
end
- response = wait_for_job connection.add_records(@zone.identity, [options]).body['jobId']
+ response = wait_for_job service.add_records(@zone.identity, [options]).body['jobId']
- matching_record = response.body['response']['records'].find do |record|
+ matching_record = response.body['response']['records'].find do |record|
if ['A', 'AAAA'].include?(self.type.upcase)
# If this is an A or AAAA record, match by normalized IP address value.
(record['name'] == self.name) && (record['type'] == self.type) && (IPAddr.new(record['data']) == IPAddr.new(self.value))
else
# Other record types are matched by the raw value.
(record['name'] == self.name) && (record['type'] == self.type) && (record['data'] == self.value)
- end
+ end
end
-
+
merge_attributes(matching_record)
-
+
true
end
def update
requires :identity, :zone
@@ -78,11 +82,12 @@
options = {}
options[:name] = name if name
options[:type] = type if type
options[:data] = value if value
options[:priority] = priority if priority
+ options[:ttl] = ttl if ttl
- wait_for_job connection.modify_record(@zone.identity, identity, options).body['jobId']
+ wait_for_job service.modify_record(@zone.identity, identity, options).body['jobId']
true
end
def zone=(new_zone)
@zone = new_zone