X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fbackup%2FSystemBackup.java;h=36d3e0b2deaa91b7b15d9a5d796ae62e7d239b8d;hb=40af4cc6795ab669ec9432d1444f0779f9594952;hp=5036cc481aa9ad65db557a8d78d22b43a8d0be69;hpb=0a63088e055dcd5ff397ce4e98d008c62c84dc98;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/backup/SystemBackup.java b/org.argeo.cms/src/org/argeo/cms/internal/backup/SystemBackup.java index 5036cc481..36d3e0b2d 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/backup/SystemBackup.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/backup/SystemBackup.java @@ -29,7 +29,8 @@ import org.apache.commons.vfs2.FileSystemOptions; import org.apache.commons.vfs2.Selectors; import org.apache.commons.vfs2.UserAuthenticator; import org.apache.commons.vfs2.impl.DefaultFileSystemConfigBuilder; -import org.argeo.ArgeoException; +import org.argeo.cms.CmsException; +import org.argeo.util.LangUtils; /** * Combines multiple backups and transfer them to a remote location. Purges @@ -52,25 +53,22 @@ public class SystemBackup implements Runnable { @Override public void run() { if (atomicBackups.size() == 0) - throw new ArgeoException("No atomic backup listed"); + throw new CmsException("No atomic backup listed"); List failures = new ArrayList(); - SimpleBackupContext backupContext = new SimpleBackupContext( - fileSystemManager, backupsBase, systemName); + SimpleBackupContext backupContext = new SimpleBackupContext(fileSystemManager, backupsBase, systemName); // purge older backups FileSystemOptions opts = new FileSystemOptions(); try { - DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator( - opts, userAuthenticator); + DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, userAuthenticator); } catch (FileSystemException e) { - throw new ArgeoException("Cannot create authentication", e); + throw new CmsException("Cannot create authentication", e); } try { - backupPurge.purge(fileSystemManager, backupsBase, systemName, - backupContext.getDateFormat(), opts); + backupPurge.purge(fileSystemManager, backupsBase, systemName, backupContext.getDateFormat(), opts); } catch (Exception e) { failures.add("Purge " + backupsBase + " failed: " + e.getMessage()); log.error("Purge of " + backupsBase + " failed", e); @@ -79,19 +77,16 @@ public class SystemBackup implements Runnable { // perform backup for (AtomicBackup atomickBackup : atomicBackups) { try { - String target = atomickBackup.backup(fileSystemManager, - backupsBase, backupContext, opts); + String target = atomickBackup.backup(fileSystemManager, backupsBase, backupContext, opts); if (log.isDebugEnabled()) log.debug("Performed backup " + target); } catch (Exception e) { - String msg = "Atomic backup " + atomickBackup.getName() - + " failed: " + ArgeoException.chainCausesMessages(e); + String msg = "Atomic backup " + atomickBackup.getName() + " failed: " + + LangUtils.chainCausesMessages(e); failures.add(msg); log.error(msg); if (log.isTraceEnabled()) - log.trace( - "Stacktrace of atomic backup " - + atomickBackup.getName() + " failure.", e); + log.trace("Stacktrace of atomic backup " + atomickBackup.getName() + " failure.", e); } } @@ -104,33 +99,25 @@ public class SystemBackup implements Runnable { // authentication FileSystemOptions remoteOpts = new FileSystemOptions(); try { - DefaultFileSystemConfigBuilder.getInstance() - .setUserAuthenticator(remoteOpts, auth); - backupPurge.purge(fileSystemManager, remoteBase, systemName, - backupContext.getDateFormat(), remoteOpts); + DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(remoteOpts, auth); + backupPurge.purge(fileSystemManager, remoteBase, systemName, backupContext.getDateFormat(), remoteOpts); } catch (Exception e) { - failures.add("Purge " + remoteBase + " failed: " - + e.getMessage()); + failures.add("Purge " + remoteBase + " failed: " + e.getMessage()); log.error("Cannot purge " + remoteBase, e); } try { - localBaseFo = fileSystemManager.resolveFile(backupsBase + '/' - + backupContext.getRelativeFolder(), opts); - remoteBaseFo = fileSystemManager.resolveFile(remoteBase + '/' - + backupContext.getRelativeFolder(), remoteOpts); + localBaseFo = fileSystemManager.resolveFile(backupsBase + '/' + backupContext.getRelativeFolder(), + opts); + remoteBaseFo = fileSystemManager.resolveFile(remoteBase + '/' + backupContext.getRelativeFolder(), + remoteOpts); remoteBaseFo.copyFrom(localBaseFo, Selectors.SELECT_ALL); if (log.isDebugEnabled()) - log.debug("Copied backup to " + remoteBaseFo + " from " - + localBaseFo); + log.debug("Copied backup to " + remoteBaseFo + " from " + localBaseFo); // } } catch (Exception e) { - failures.add("Dispatch to " + remoteBase + " failed: " - + e.getMessage()); - log.error( - "Cannot dispatch backups from " - + backupContext.getRelativeFolder() + " to " - + remoteBase, e); + failures.add("Dispatch to " + remoteBase + " failed: " + e.getMessage()); + log.error("Cannot dispatch backups from " + backupContext.getRelativeFolder() + " to " + remoteBase, e); } BackupUtils.closeFOQuietly(localBaseFo); BackupUtils.closeFOQuietly(remoteBaseFo); @@ -140,14 +127,11 @@ public class SystemBackup implements Runnable { if (failures.size() > 0) { StringBuffer buf = new StringBuffer(); for (String failure : failures) { - buf.append('\n').append(failureCount).append(" - ") - .append(failure); + buf.append('\n').append(failureCount).append(" - ").append(failure); failureCount++; } - throw new ArgeoException(failureCount - + " error(s) when running the backup," - + " check the logs and the backups as soon as possible." - + buf); + throw new CmsException(failureCount + " error(s) when running the backup," + + " check the logs and the backups as soon as possible." + buf); } } @@ -179,53 +163,54 @@ public class SystemBackup implements Runnable { this.remoteBases = remoteBases; } -// public static void main(String args[]) { -// while (true) { -// try { -// StandardFileSystemManager fsm = new StandardFileSystemManager(); -// fsm.init(); -// -// SystemBackup systemBackup = new SystemBackup(); -// systemBackup.setSystemName("mySystem"); -// systemBackup -// .setBackupsBase("/home/mbaudier/dev/src/commons/server/runtime/org.argeo.server.core/target"); -// systemBackup.setFileSystemManager(fsm); -// -// List atomicBackups = new ArrayList(); -// -// MySqlBackup mySqlBackup = new MySqlBackup("root", "", "test"); -// atomicBackups.add(mySqlBackup); -// PostgreSqlBackup postgreSqlBackup = new PostgreSqlBackup( -// "argeo", "argeo", "gis_template"); -// atomicBackups.add(postgreSqlBackup); -// SvnBackup svnBackup = new SvnBackup( -// "/home/mbaudier/tmp/testsvnrepo"); -// atomicBackups.add(svnBackup); -// -// systemBackup.setAtomicBackups(atomicBackups); -// -// Map remoteBases = new HashMap(); -// StaticUserAuthenticator userAuthenticator = new StaticUserAuthenticator( -// null, "demo", "demo"); -// remoteBases.put("sftp://localhost/home/mbaudier/test", -// userAuthenticator); -// systemBackup.setRemoteBases(remoteBases); -// -// systemBackup.run(); -// -// fsm.close(); -// } catch (FileSystemException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// System.exit(1); -// } -// -// // wait -// try { -// Thread.sleep(120 * 1000); -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } -// } -// } + // public static void main(String args[]) { + // while (true) { + // try { + // StandardFileSystemManager fsm = new StandardFileSystemManager(); + // fsm.init(); + // + // SystemBackup systemBackup = new SystemBackup(); + // systemBackup.setSystemName("mySystem"); + // systemBackup + // .setBackupsBase("/home/mbaudier/dev/src/commons/server/runtime/org.argeo.server.core/target"); + // systemBackup.setFileSystemManager(fsm); + // + // List atomicBackups = new ArrayList(); + // + // MySqlBackup mySqlBackup = new MySqlBackup("root", "", "test"); + // atomicBackups.add(mySqlBackup); + // PostgreSqlBackup postgreSqlBackup = new PostgreSqlBackup( + // "argeo", "argeo", "gis_template"); + // atomicBackups.add(postgreSqlBackup); + // SvnBackup svnBackup = new SvnBackup( + // "/home/mbaudier/tmp/testsvnrepo"); + // atomicBackups.add(svnBackup); + // + // systemBackup.setAtomicBackups(atomicBackups); + // + // Map remoteBases = new HashMap(); + // StaticUserAuthenticator userAuthenticator = new StaticUserAuthenticator( + // null, "demo", "demo"); + // remoteBases.put("sftp://localhost/home/mbaudier/test", + // userAuthenticator); + // systemBackup.setRemoteBases(remoteBases); + // + // systemBackup.run(); + // + // fsm.close(); + // } catch (FileSystemException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // System.exit(1); + // } + // + // // wait + // try { + // Thread.sleep(120 * 1000); + // } catch (InterruptedException e) { + // e.printStackTrace(); + // } + // } + // } }