class ServerBackups::WebsiteRestore

Public Instance Methods

do_restore() click to toggle source
# File lib/server_backups/website_restore.rb, line 12
def do_restore
    logger.warn "Moving old #{config.web_root} ---->>> #{config.web_root}.backup\n" \
                'You will have to delete it yourself.'
    make_copy_of_existing_web_root
    files_to_restore.each_with_index { |file, index| restore_file(file, index) }
end
files_to_restore() click to toggle source
# File lib/server_backups/website_restore.rb, line 7
def files_to_restore
    [all_files.full_backup_for(restore_point),
     *all_files.incremental_backups_for(restore_point)]
end

Private Instance Methods

make_copy_of_existing_web_root() click to toggle source
# File lib/server_backups/website_restore.rb, line 21
def make_copy_of_existing_web_root
    FileUtils.mv config.web_root, "#{config.web_root}.backup" \
        if File.exist?(config.web_root)
    FileUtils.mkdir config.web_root
end
restore_file(s3object, ordinal) click to toggle source
# File lib/server_backups/website_restore.rb, line 31
def restore_file(s3object, ordinal)
    local_filename = File.join(working_dir, "#{ordinal}.tgz")
    s3object.get response_target: local_filename
    system untar_command(local_filename)
    unless last_command_succeeded?
        raise BackupCreationError.new("Received #{$CHILD_STATUS} from tar command.",
                                      self.class, 'restore')
    end
    logger.info "Restored #{File.basename(s3object.key)}"
end
s3_prefix() click to toggle source
# File lib/server_backups/website_restore.rb, line 27
def s3_prefix
    File.join(config.prefix, 'website_backup', '/')
end
untar_command(local_filename) click to toggle source
# File lib/server_backups/website_restore.rb, line 42
        def untar_command(local_filename)
            <<-CMD
                tar zxp -C '/' --listed-incremental=/dev/null \
                --no-check-device \
                --file=#{local_filename}
            CMD
        end