From 0235f202b47809b2e803e94556766bb3ef360748 Mon Sep 17 00:00:00 2001 From: Norbert Varzariu Date: Fri, 22 Jan 2016 09:08:12 +0100 Subject: [PATCH 1/2] rewrite cron file generation using deep_merge (why is this function undocumented?) --- manifests/config.pp | 59 +++++++-------------------------------------- 1 file changed, 9 insertions(+), 50 deletions(-) diff --git a/manifests/config.pp b/manifests/config.pp index 210fb84..0d2cf1a 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -11,7 +11,7 @@ class rsnapshot::config ( $lockpath = pick($rsnapshot::lockpath, $rsnapshot::params::config_lockpath, '/var/run/rsnapshot') $conf_d = pick($rsnapshot::conf_d, $rsnapshot::params::conf_d, '/etc/rsnapshot') $snapshot_root = pick($hosts['snapshot_root'], $rsnapshot::snapshot_root, '/backup') - $default_cron = assert_empty_hash($::rsnapshot::cron) + # make sure lock path and conf path exist file { $conf_d: ensure => 'directory', @@ -162,57 +162,16 @@ class rsnapshot::config ( concat { $cronfile: } # create cron files for each backup level + # merge possible cron definitions to one + $real_cron = deep_merge($rsnapshot::params::cron, $rsnapshot::cron, $hash[cron]) + $backup_levels.each |String $level| { + $minute = rand_from_array($real_cron[$level][minute], "${host}.${level}.minute") + $hour = rand_from_array($real_cron[$level][hour], "${host}.${level}.hour") + $monthday = rand_from_array($real_cron[$level][monthday], "${host}.${level}.monthday") + $month = rand_from_array($real_cron[$level][month], "${host}.${level}.month") + $weekday = rand_from_array($real_cron[$level][weekday], "${host}.${level}.weekday") - # allow to globally override ranges, create random numbers for backup_levels daily, weekly, monthly - if has_key($hash,cron){ - if has_key($hash[cron], $level) { - $cron = $hash[cron][$level] - } else { - if has_key($default_cron, $level) { - $cron = $default_cron[$level] - } else { - $cron = $rsnapshot::params::cron[$level] - } - } - } else { - if has_key($default_cron, $level) { - $cron = $default_cron[$level] - } else { - $cron = $rsnapshot::params::cron[$level] - } - } - - if has_key($cron, minute) { - $c_min = $cron[minute] - } else { - $c_min = $rsnapshot::params::cron[$level][minute] - } - if has_key($cron, hour) { - $c_hour = $cron[hour] - } else { - $c_hour = $rsnapshot::params::cron[$level][hour] - } - if has_key($cron, monthday) { - $c_monthday = $cron[monthday] - } else { - $c_monthday = $rsnapshot::params::cron[$level][monthday] - } - if has_key($cron, month) { - $c_month = $cron[month] - } else { - $c_month = $rsnapshot::params::cron[$level][month] - } - if has_key($cron, weekday) { - $c_weekday = $cron[weekday] - } else { - $c_weekday = $rsnapshot::params::cron[$level][weekday] - } - $minute = rand_from_array($c_min, "${host}.${level}.minute") - $hour = rand_from_array($c_hour, "${host}.${level}.hour") - $monthday = rand_from_array($c_monthday, "${host}.${level}.monthday") - $month = rand_from_array($c_month, "${host}.${level}.month") - $weekday = rand_from_array($c_weekday, "${host}.${level}.weekday") concat::fragment { "${host}.${level}": target => $cronfile, content => template('rsnapshot/cron.erb'), From e8a287c4f86dae4546642f3dfbd3b4a5c093d5c3 Mon Sep 17 00:00:00 2001 From: Norbert Varzariu Date: Fri, 22 Jan 2016 09:10:12 +0100 Subject: [PATCH 2/2] bump version to 0.5.0 --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 8f0a997..5d6e248 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "loomsen-rsnapshot", - "version": "0.4.2", + "version": "0.5.0", "author": "loomsen", "summary": "Configures rsnapshot.", "license": "Apache-2.0",