]> git.argeo.org Git - gpl/argeo-slc.git/blob - cms/org.argeo.cms.integration/src/org/argeo/maintenance/backup/vfs/OpenLdapBackup.java
fb3bdf16331cd0692abc135159c13b572e6997aa
[gpl/argeo-slc.git] / cms / org.argeo.cms.integration / src / org / argeo / maintenance / backup / vfs / OpenLdapBackup.java
1 package org.argeo.maintenance.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 }