function end_backup($err = null, $success = null)
{
    global $WPBackitup, $wp_backup, $logger, $backup_job;
    $logger->log_info(__METHOD__, "Begin");
    $logger->log('Zip up all the logs.');
    //Zip up all the logs in the log folder
    $logs_path = WPBACKITUP__PLUGIN_PATH . 'logs';
    $zip_file_path = $wp_backup->backup_project_path . 'logs_' . $backup_job->backup_id . '.zip';
    //copy/replace WP debug file
    $wpdebug_file_path = WPBACKITUP__CONTENT_PATH . '/debug.log';
    $logger->log_info(__METHOD__, "Copy WP Debug: " . $wpdebug_file_path);
    if (file_exists($wpdebug_file_path)) {
        copy($wpdebug_file_path, $logs_path . '/wpdebug.log');
    }
    $zip = new WPBackItUp_Zip($logger, $zip_file_path);
    $zip->zip_files_in_folder($logs_path, $backup_job->backup_id, '*.log');
    $zip->close();
    WPBackItUp_Backup::end();
    //Release the lock
    $current_datetime = current_time('timestamp');
    $WPBackitup->set_backup_lastrun_date($current_datetime);
    $util = new WPBackItUp_Utility($logger);
    $seconds = $util->timestamp_diff_seconds($backup_job->get_job_start_time(), $backup_job->get_job_end_time());
    $processing_minutes = round($seconds / 60);
    $processing_seconds = $seconds % 60;
    $logger->log('Script Processing Time:' . $processing_minutes . ' Minutes ' . $processing_seconds . ' Seconds');
    if (true === $success) {
        $logger->log("Backup completed: SUCCESS");
    }
    if (false === $success) {
        $logger->log("Backup completed: ERROR");
    }
    $logger->log("*** END BACKUP ***");
    //Send Notification email
    $logger->log('Send Email notification');
    $logs_attachment = array($zip_file_path);
    send_backup_notification_email($err, $success, $logs_attachment);
    $logFileName = $logger->logFileName;
    $logFilePath = $logger->logFilePath;
    $logger->close_file();
    //COPY the log if it exists
    $newlogFilePath = $wp_backup->backup_project_path . $logFileName;
    if (null != $success && file_exists($logFilePath)) {
        copy($logFilePath, $newlogFilePath);
    }
    echo 'Backup has completed';
    exit(0);
}
function end_job($err = null, $success = null)
{
    global $WPBackitup, $logger, $cleanup_job;
    $logger->log_info(__METHOD__, "Begin");
    WPBackItUp_Backup::end();
    //Release the lock
    $current_datetime = current_time('timestamp');
    $WPBackitup->set_cleanup_lastrun_date($current_datetime);
    $util = new WPBackItUp_Utility($logger);
    $seconds = $util->timestamp_diff_seconds($cleanup_job->get_job_start_time(), $cleanup_job->get_job_end_time());
    $processing_minutes = round($seconds / 60);
    $processing_seconds = $seconds % 60;
    $logger->log('Script Processing Time:' . $processing_minutes . ' Minutes ' . $processing_seconds . ' Seconds');
    if (true === $success) {
        $logger->log("Cleanup completed: SUCCESS");
    }
    if (false === $success) {
        $logger->log("Cleanup completed: ERROR");
    }
    $logger->log("*** END JOB ***");
    $logger->close_file();
    echo 'cleanup has completed';
    exit(0);
}