private boolean emailOnFailure() { BackupConfig backupConfig = backupConfig(); return backupConfig != null && backupConfig.isEmailOnFailure(); }
String replaceStringLiterals(String content) { content = content.replaceAll("%backup_initiated_by%", HtmlUtils.htmlEscape(backupService.backupRunningSinceISO8601())); content = content.replaceAll("%backup_started_by%", HtmlUtils.htmlEscape(backupService.backupStartedBy())); return content; }
@RequestMapping(value = "/backups/delete") @ResponseBody public String deleteAllBackups() { backupService.deleteAll(); return "Deleted"; }
private ServerBackup doPerformBackup(Username username, HttpLocalizedOperationResult result, DateTime backupTime) { GoMailSender mailSender = goConfigService.getMailSender(); synchronized (BACKUP_MUTEX) { final File destDir = new File(backupLocation(), BACKUP + backupTime.toString("YYYYMMdd-HHmmss")); if (!destDir.mkdirs()) { result.internalServerError("Failed to perform backup. Reason: Could not create the backup directory."); backupRunningSince = backupTime; backupStartedBy = username.getUsername().toString(); backupVersion(destDir); backupConfig(destDir); configRepository.doLocked(new VoidThrowingFn<IOException>() { @Override backupDb(destDir); ServerBackup serverBackup = new ServerBackup(destDir.getAbsolutePath(), backupTime.toDate(), username.getUsername().toString()); serverBackupRepository.save(serverBackup); if (emailOnSuccess()) { mailSender.send(EmailMessageDrafter.backupSuccessfullyCompletedMessage(destDir.getAbsolutePath(), goConfigService.adminEmail(), username)); result.internalServerError("Failed to perform backup. Reason: " + e.getMessage()); LOGGER.error("[Backup] Failed to backup Go.", e); if (emailOnFailure()) { mailSender.send(EmailMessageDrafter.backupFailedMessage(e.getMessage(), goConfigService.adminEmail()));
private ServerBackup performBackupWithoutAuthentication(Username username, HttpLocalizedOperationResult result, BackupInitiator initiatedBy) { DateTime backupTime = timeProvider.currentDateTime(); ServerBackup serverBackup = doPerformBackup(username, result, backupTime); String postBackupScriptFile = postBackupScriptFile(); if (isNotBlank(postBackupScriptFile)) { PostBackupScript postBackupScript = new PostBackupScript(postBackupScriptFile, initiatedBy, username, serverBackup, backupLocation(), backupTime.toDate()); if (postBackupScript.execute()) { // only set message, retain the original status result.setMessage(joinSentences(result.message(), "Post backup script executed successfully.")); } else { result.internalServerError(joinSentences(result.message(), "Post backup script exited with an error, check the server log for details.")); } } return serverBackup; }
private void performBackup() { HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); backupService.backupViaTimer(result); if (result.isSuccessful()) { clearServerHealthError(); } else { setServerHealthError("Unable to perform scheduled backup.", result.message()); } }
private boolean emailOnSuccess() { BackupConfig backupConfig = backupConfig(); return backupConfig != null && backupConfig.isEmailOnSuccess(); }
private String postBackupScriptFile() { BackupConfig backupConfig = backupConfig(); if (backupConfig != null) { String postBackupScript = backupConfig.getPostBackupScript(); return StringUtils.stripToNull(postBackupScript); } return null; }