mirror of
				https://github.com/krislamo/puppet-rsnapshot
				synced 2025-10-31 00:38:34 +00:00 
			
		
		
		
	Merge branch 'feature/rewrite_to_use_deep_merge' into develop
- rewrite large parts of cron file generation - now using deep_merge to merge possible overrides into the default hash (eliminates a lit of spaghetti code)
This commit is contained in:
		| @@ -11,7 +11,7 @@ class rsnapshot::config ( | |||||||
|   $lockpath               = pick($rsnapshot::lockpath, $rsnapshot::params::config_lockpath, '/var/run/rsnapshot') |   $lockpath               = pick($rsnapshot::lockpath, $rsnapshot::params::config_lockpath, '/var/run/rsnapshot') | ||||||
|   $conf_d                 = pick($rsnapshot::conf_d, $rsnapshot::params::conf_d, '/etc/rsnapshot') |   $conf_d                 = pick($rsnapshot::conf_d, $rsnapshot::params::conf_d, '/etc/rsnapshot') | ||||||
|   $snapshot_root          = pick($hosts['snapshot_root'], $rsnapshot::snapshot_root, '/backup') |   $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 |   # make sure lock path and conf path exist | ||||||
|   file { $conf_d: |   file { $conf_d: | ||||||
|     ensure => 'directory', |     ensure => 'directory', | ||||||
| @@ -162,57 +162,16 @@ class rsnapshot::config ( | |||||||
|     concat { $cronfile: |     concat { $cronfile: | ||||||
|     } |     } | ||||||
|     # create cron files for each backup level |     # 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| { |     $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}": |       concat::fragment { "${host}.${level}": | ||||||
|         target  => $cronfile, |         target  => $cronfile, | ||||||
|         content => template('rsnapshot/cron.erb'), |         content => template('rsnapshot/cron.erb'), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user