]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.cms/src/org/argeo/slc/backup/vfs/OpenLdapBackup.java
Merge remote-tracking branch 'origin/unstable' into testing
[gpl/argeo-slc.git] / org.argeo.slc.cms / src / org / argeo / slc / backup / vfs / OpenLdapBackup.java
1 package org.argeo.slc.backup.vfs;
2
3 import org.apache.commons.vfs2.FileObject;
4
5 /** Backups an OpenLDAP server using slapcat */
6 public class OpenLdapBackup extends OsCallBackup {
7 private String slapcatLocation = "/usr/sbin/slapcat";
8 private String slapdConfLocation = "/etc/openldap/slapd.conf";
9 private String baseDn;
10
11 public OpenLdapBackup() {
12 super();
13 }
14
15 public OpenLdapBackup(String baseDn) {
16 super();
17 this.baseDn = baseDn;
18 }
19
20 @Override
21 public void writeBackup(FileObject targetFo) {
22 if (baseDn == null)
23 throw new MaintenanceException("Base DN must be set");
24
25 if (getCommand() == null)
26 setCommand(slapcatLocation
27 + " -f ${slapdConfLocation} -b '${baseDn}'");
28 getVariables().put("slapdConfLocation", slapdConfLocation);
29 getVariables().put("baseDn", baseDn);
30
31 super.writeBackup(targetFo);
32 }
33
34 public void setSlapcatLocation(String slapcatLocation) {
35 this.slapcatLocation = slapcatLocation;
36 }
37
38 public void setSlapdConfLocation(String slapdConfLocation) {
39 this.slapdConfLocation = slapdConfLocation;
40 }
41
42 public void setBaseDn(String baseDn) {
43 this.baseDn = baseDn;
44 }
45
46 }