45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module Backup
 | |
|   Error = Class.new(StandardError)
 | |
| 
 | |
|   class FileBackupError < Backup::Error
 | |
|     attr_reader :app_files_dir, :backup_tarball
 | |
| 
 | |
|     def initialize(app_files_dir, backup_tarball)
 | |
|       @app_files_dir = app_files_dir
 | |
|       @backup_tarball = backup_tarball
 | |
|     end
 | |
| 
 | |
|     def message
 | |
|       "Failed to create compressed file '#{backup_tarball}' when trying to backup the following paths: '#{app_files_dir}'"
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   class RepositoryBackupError < Backup::Error
 | |
|     attr_reader :container, :backup_repos_path
 | |
| 
 | |
|     def initialize(container, backup_repos_path)
 | |
|       @container = container
 | |
|       @backup_repos_path = backup_repos_path
 | |
|     end
 | |
| 
 | |
|     def message
 | |
|       "Failed to create compressed file '#{backup_repos_path}' when trying to backup the following paths: '#{container.disk_path}'"
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   class DatabaseBackupError < Backup::Error
 | |
|     attr_reader :config, :db_file_name
 | |
| 
 | |
|     def initialize(config, db_file_name)
 | |
|       @config = config
 | |
|       @db_file_name = db_file_name
 | |
|     end
 | |
| 
 | |
|     def message
 | |
|       "Failed to create compressed file '#{db_file_name}' when trying to backup the main database:\n - host: '#{config[:host]}'\n - port: '#{config[:port]}'\n - database: '#{config[:database]}'"
 | |
|     end
 | |
|   end
 | |
| end
 |