X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=server%2Fruntime%2Forg.argeo.server.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fbackup%2FOpenLdapBackup.java;fp=server%2Fruntime%2Forg.argeo.server.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fbackup%2FOpenLdapBackup.java;h=50d68812e6d772b823b9cbdddc5c13c75b17d7ab;hb=9eb1585fe9b213d55398aedfdd48c998c30b46dc;hp=0000000000000000000000000000000000000000;hpb=2c6cfdbdc82a3ca09d7c8407386665f744002738;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/backup/OpenLdapBackup.java b/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/backup/OpenLdapBackup.java new file mode 100644 index 000000000..50d68812e --- /dev/null +++ b/server/runtime/org.argeo.server.core/src/main/java/org/argeo/server/backup/OpenLdapBackup.java @@ -0,0 +1,35 @@ +package org.argeo.server.backup; + +import org.apache.commons.vfs.FileObject; +import org.argeo.ArgeoException; + +/** Backups an OpenLDAP server using slapcat */ +public class OpenLdapBackup extends OsCallBackup { + private String slapcatLocation = "/usr/sbin/slapcat"; + private String slapdConfLocation = "/etc/openldap/slapd.conf"; + private String baseDn; + + public OpenLdapBackup() { + super(); + } + + public OpenLdapBackup(String baseDn) { + super(); + this.baseDn = baseDn; + } + + @Override + public void writeBackup(FileObject targetFo) { + if (baseDn == null) + throw new ArgeoException("Base DN must be set"); + + if (getCommand() == null) + setCommand(slapcatLocation + + " -f ${slapdConfLocation} -b '${baseDn}'"); + getVariables().put("slapdConfLocation", slapdConfLocation); + getVariables().put("baseDn", baseDn); + + super.writeBackup(targetFo); + } + +}