mirror of
https://github.com/cmur2/dyndnsd.git
synced 2024-12-30 16:54:23 +01:00
dyndnsd: allow updater to see if database changed
This commit is contained in:
parent
0cec44893d
commit
0c4c38cc6b
@ -68,6 +68,9 @@ Style/HashTransformValues:
|
||||
Style/IdenticalConditionalBranches:
|
||||
Enabled: false
|
||||
|
||||
Style/IfUnlessModifier:
|
||||
Enabled: false
|
||||
|
||||
Style/InverseMethods:
|
||||
Enabled: false
|
||||
|
||||
@ -79,3 +82,6 @@ Style/RescueModifier:
|
||||
|
||||
Style/SymbolArray:
|
||||
Enabled: false
|
||||
|
||||
Style/TrailingCommaInArrayLiteral:
|
||||
Enabled: false
|
||||
|
9
lib/dyndnsd.rb
Executable file → Normal file
9
lib/dyndnsd.rb
Executable file → Normal file
@ -56,9 +56,9 @@ module Dyndnsd
|
||||
@db.load
|
||||
@db['serial'] ||= 1
|
||||
@db['hosts'] ||= {}
|
||||
@updater.update(@db)
|
||||
if @db.changed?
|
||||
@db.save
|
||||
@updater.update(@db)
|
||||
end
|
||||
end
|
||||
|
||||
@ -193,8 +193,8 @@ module Dyndnsd
|
||||
def update_db
|
||||
@db['serial'] += 1
|
||||
Dyndnsd.logger.info "Committing update ##{@db['serial']}"
|
||||
@db.save
|
||||
@updater.update(@db)
|
||||
@db.save
|
||||
Metriks.meter('updates.committed').mark
|
||||
end
|
||||
|
||||
@ -313,7 +313,10 @@ module Dyndnsd
|
||||
private_class_method def self.setup_rack(config)
|
||||
# configure daemon
|
||||
db = Database.new(config['db'])
|
||||
updater = Updater::CommandWithBindZone.new(config['domain'], config.dig('updater', 'params')) if config.dig('updater', 'name') == 'command_with_bind_zone'
|
||||
case config.dig('updater', 'name')
|
||||
when 'command_with_bind_zone'
|
||||
updater = Updater::CommandWithBindZone.new(config['domain'], config.dig('updater', 'params'))
|
||||
end
|
||||
daemon = Daemon.new(config, db, updater)
|
||||
|
||||
# configure rack
|
||||
|
@ -14,6 +14,9 @@ module Dyndnsd
|
||||
# @param db [Dyndnsd::Database]
|
||||
# @return [void]
|
||||
def update(db)
|
||||
# do not regenerate zone file (assumed to be persistent) if DB did not change
|
||||
return if !db.changed?
|
||||
|
||||
Helper.span('updater_update') do |span|
|
||||
span.set_tag('dyndnsd.updater.name', self.class.name&.split('::')&.last || 'None')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user