Project

General

Profile

« Previous | Next » 

Revision 90197e7b

Added by Marc Dequènes about 13 years ago

  • ID 90197e7bd70d31f0ef7cd6dde8f2e95b6dc08ab5

[evol] MapMaker API and internals rework §1, going forward to Dependency Injection using Needle

View differences:

lib/cyborghood-mapmaker/interface/_zone/0_base.rb
zone = Services::DNS::Zone.new(node_name)
bot.services.dnssec.flush_cache
zone = bot.services.zone(node_name)
on_request do |request|
request.reply.results = {
:master => zone.master?,
:signed => zone.signed?,
:serial => zone.serial_in_dns
}
if zone.master?
request.reply.results.merge!({
:serial_in_zone_file => zone.serial_in_zone_file,
:serial_in_signed_zone_file => zone.serial_in_signed_zone_file
})
end
request.reply.results = zone.info
end
node 'content' do
......
return
end
zone.content = content
if zone.changed?
check_result = zone.check
if check_result[:ok]
request.reply.warnings = check_result[:warnings]
# zone signer automatically handles serial bump
if check_result[:serial] > zone.serial or zone.signed?
zone.save
zone.activate
else
request.reply.errors << _("Zone serial is not superior to current serial.")
end
else
request.reply.errors = check_result[:errors]
zone.cancel_changes
end
else
request.reply.warnings << _("Zone is unmodified (same content)")
zone.cancel_changes
begin
zone.content = content
rescue CyberError => e
request.reply.errors << e.message
end
end
end

Also available in: Unified diff