diff --git a/lib/puppet/functions/borgbackup/noop_connection.rb b/lib/puppet/functions/borgbackup/noop_connection.rb index 8d29fe8..f41b0c0 100644 --- a/lib/puppet/functions/borgbackup/noop_connection.rb +++ b/lib/puppet/functions/borgbackup/noop_connection.rb @@ -33,13 +33,13 @@ def scope.noop_value end def scope.lookupdefaults(type) - values = super(type) + values = super # Create a new :noop parameter with the specified value (true/false) for our defaults hash noop = Puppet::Parser::Resource::Param.new( name: :noop, value: noop_value, - source: source + source: source, ) # Adding this default fixes a corner case with resource collectors diff --git a/spec/classes/borgbackup_spec.rb b/spec/classes/borgbackup_spec.rb index cf2d27d..4081969 100644 --- a/spec/classes/borgbackup_spec.rb +++ b/spec/classes/borgbackup_spec.rb @@ -7,7 +7,7 @@ { configdir: '/etc/borgbackup', ensure_ssh_directory: true, ssh_key_res: {}, - repos_defaults: {} } + repos_defaults: {}, } end shared_examples_for 'borgbackup class' do @@ -48,7 +48,7 @@ let :params do default_params.merge( repos: { 'default' => { 'passphrase' => 'secret' } }, - default_target: 'irgendwo' + default_target: 'irgendwo', ) end @@ -65,7 +65,7 @@ describe 'with non default configuration directory' do let :params do default_params.merge( - configdir: '/tmp/backupdir' + configdir: '/tmp/backupdir', ) end @@ -83,7 +83,7 @@ describe 'with create .ssh directory in default location' do let :params do default_params.merge( - ensure_ssh_directory: false + ensure_ssh_directory: false, ) end @@ -96,7 +96,7 @@ let :params do default_params.merge( ssh_key_define: 'file', - ssh_key_res: { '/etc/borgbackup/.ssh/uid' => { 'owner' => 'myowner' } } + ssh_key_res: { '/etc/borgbackup/.ssh/uid' => { 'owner' => 'myowner' } }, ) end diff --git a/spec/classes/git_spec.rb b/spec/classes/git_spec.rb index e295c14..03de310 100644 --- a/spec/classes/git_spec.rb +++ b/spec/classes/git_spec.rb @@ -8,7 +8,7 @@ { packages: %w[git gnupg], gpg_keys: {}, gpg_home: '/etc/borgbackup/.gnupg', - git_home: '/etc/borgbackup/git' } + git_home: '/etc/borgbackup/git', } end shared_examples 'borgbackup::git shared examples' do @@ -69,7 +69,7 @@ context 'with remote git repo' do let :params do default_params.merge( - gitrepo: 'somewhere/gitrepo' + gitrepo: 'somewhere/gitrepo', ) end diff --git a/spec/classes/install_spec.rb b/spec/classes/install_spec.rb index cabd159..be6acf5 100644 --- a/spec/classes/install_spec.rb +++ b/spec/classes/install_spec.rb @@ -5,7 +5,7 @@ describe 'borgbackup::install' do let :default_params do { packages: ['borgbackup'], - package_ensure: 'installed' } + package_ensure: 'installed', } end shared_examples 'borgbackup::install shared examples' do @@ -34,7 +34,7 @@ let :params do default_params.merge( packages: ['backup-whatever'], - package_ensure: 'actual' + package_ensure: 'actual', ) end diff --git a/spec/classes/server_spec.rb b/spec/classes/server_spec.rb index 68e6332..f840089 100644 --- a/spec/classes/server_spec.rb +++ b/spec/classes/server_spec.rb @@ -12,7 +12,7 @@ authorized_keys_target: '/var/lib/borgbackup/authorized-keys', authorized_keys_define: 'borgbackup::authorized_key', authorized_keys: {}, - authorized_keys_defaults: {} } + authorized_keys_defaults: {}, } end shared_examples 'borgbackup::server shared examples' do @@ -54,7 +54,7 @@ context 'with non default backuproot' do let :params do default_params.merge( - backuproot: '/tmp/backupdir' + backuproot: '/tmp/backupdir', ) end @@ -64,7 +64,7 @@ context 'with not creating user' do let :params do default_params.merge( - user_ensure: false + user_ensure: false, ) end @@ -76,7 +76,7 @@ describe 'with authorized-keys' do let :params do default_params.merge( - authorized_keys: { 'firstkey' => { 'keys' => ['key'] } } + authorized_keys: { 'firstkey' => { 'keys' => ['key'] } }, ) end @@ -100,7 +100,7 @@ let :params do default_params.merge( authorized_keys_define: 'file', - authorized_keys: { '/etc/borgbackup/.ssh/authorized-keys' => { 'owner' => 'myowner', 'group' => 'mygroup' } } + authorized_keys: { '/etc/borgbackup/.ssh/authorized-keys' => { 'owner' => 'myowner', 'group' => 'mygroup' } }, ) end diff --git a/spec/defines/archive_spec.rb b/spec/defines/archive_spec.rb index dccd880..d54d512 100644 --- a/spec/defines/archive_spec.rb +++ b/spec/defines/archive_spec.rb @@ -40,7 +40,7 @@ let :params do default_params.merge( archive_name: title, - reponame: 'myrepo' + reponame: 'myrepo', ) end @@ -59,7 +59,7 @@ default_params.merge( archive_name: title, reponame: 'anotherrepo', - do_prune: false + do_prune: false, ) end diff --git a/spec/defines/authorized_key_spec.rb b/spec/defines/authorized_key_spec.rb index a31f2d1..8ee2768 100644 --- a/spec/defines/authorized_key_spec.rb +++ b/spec/defines/authorized_key_spec.rb @@ -10,7 +10,7 @@ restrict_to_repository: 'yes', append_only: false, restricts: ['restrict'], - env_vars: {} } + env_vars: {}, } end shared_examples 'borgbackup::authorized_key shared examples' do @@ -33,7 +33,7 @@ default_params.merge( reponame: title, backuproot: 'mybackuproot', - target: 'mytarget' + target: 'mytarget', ) end @@ -47,7 +47,7 @@ reponame: title, backuproot: 'mybackuproot', target: 'mytarget', - keys: ['rsa mykey'] + keys: ['rsa mykey'], ) end diff --git a/spec/defines/repo_spec.rb b/spec/defines/repo_spec.rb index 9b58588..dc3bb7b 100644 --- a/spec/defines/repo_spec.rb +++ b/spec/defines/repo_spec.rb @@ -13,7 +13,7 @@ append_only: false, icinga_old: 90_000, crontab_define: 'cron', - crontabs: {} } + crontabs: {}, } end shared_examples 'borgbackup::repo shared examples' do @@ -55,7 +55,7 @@ let(:title) { 'mytitle' } let :params do default_params.merge( - reponame: title + reponame: title, ) end @@ -73,7 +73,7 @@ let :params do default_params.merge( reponame: title, - archives: { 'arch' => {} } + archives: { 'arch' => {} }, ) end @@ -90,7 +90,7 @@ let :params do default_params.merge( reponame: title, - crontab_define: '' + crontab_define: '', ) end @@ -108,7 +108,7 @@ 'user' => 'someuser', 'hour' => 12, 'minute' => 42, - } } + } }, ) end diff --git a/templates/archive_create.erb b/templates/archive_create.erb index 073a290..d98d898 100644 --- a/templates/archive_create.erb +++ b/templates/archive_create.erb @@ -33,6 +33,15 @@ borg create \ backup_exit=$? +if [ ${backup_exit} -ne 0 ]; +then + info "Backup Create of archive '<%= @archive_name %>' finished with exit code ${backup_exit}" + backup_summary="${backup_summary}\n * Archive '<%= @archive_name %>' finished with exit code ${backup_exit}" + if [ ${backup_exit} -gt ${global_exit} ]; then + global_exit=$backup_exit + fi +fi + # commands to run post backup creation: <% @post_commands.each do | command | -%> <%= command %> diff --git a/templates/archive_prune.erb b/templates/archive_prune.erb index 9a12784..80b842f 100644 --- a/templates/archive_prune.erb +++ b/templates/archive_prune.erb @@ -30,3 +30,12 @@ borg prune \ <% end -%> prune_exit=$? + +if [ ${prune_exit} -ne 0 ]; +then + info "Backup Prune of archive '<%= @archive_name %>' finished with exit code ${prune_exit}" + prune_summary="${prune_summary}\n * Archive '<%= @archive_name %>' finished with exit code ${prune_exit}" + if [ ${prune_exit} -gt ${global_exit} ]; then + global_exit=$prune_exit + fi +fi diff --git a/templates/repo_footer.erb b/templates/repo_footer.erb index ac82367..96ff69e 100644 --- a/templates/repo_footer.erb +++ b/templates/repo_footer.erb @@ -1,14 +1,13 @@ # use highest exit code as global exit code -global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit )) -if [ ${global_exit} -eq 1 ]; -then - info "Backup and/or Prune finished with a warning" +if [ "${backup_summary}" != '' ]; then + info "Some backups had non zero exit codes:" + echo $backup_summary fi -if [ ${global_exit} -gt 1 ]; -then - info "Backup and/or Prune finished with an error" +if [ "${prune_summary}" != '' ]; then + info "Some archive prunes had non zero exit codes:" + echo ${prune_summary} fi exit ${global_exit} diff --git a/templates/repo_header.erb b/templates/repo_header.erb index b922f05..b05a243 100644 --- a/templates/repo_header.erb +++ b/templates/repo_header.erb @@ -94,6 +94,10 @@ if [ "$CMD" != 'run' ]; then return fi +prune_summary='' +backup_summary='' +global_exit=0 + # some helpers and error handling: info() { printf "\n%s %s\n\n" "$( date )" "$*" >&2; } trap 'echo $( date ) Backup interrupted >&2; exit 2' INT TERM