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