summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src/scripts/DSCreate.pm.in
diff options
context:
space:
mode:
authorNathan Kinder <nkinder@redhat.com>2009-08-14 08:28:01 -0700
committerNathan Kinder <nkinder@redhat.com>2009-08-14 08:28:01 -0700
commit1cc186ad31449aebff4fa220bff7c90a45472fcd (patch)
treef96ddf1eaf1455dd8c210a7d81153d0286a2704b /ldap/admin/src/scripts/DSCreate.pm.in
parent20d6a63f0a776f0726a24fdcddf94399b9d880b1 (diff)
downloadds-1cc186ad31449aebff4fa220bff7c90a45472fcd.tar.gz
ds-1cc186ad31449aebff4fa220bff7c90a45472fcd.tar.xz
ds-1cc186ad31449aebff4fa220bff7c90a45472fcd.zip
Add centralized start/stop/restart scipts.
This adds centralized start, stop, and restart scripts for ns-slapd. These scripts live in the sbin directory and will act upon all instances if an instance identifier is not specified (similar to the init script). The instance specific scripts have been modified to call the new centralized scripts. The instance specific parameters needed by the new scripts are located in the instance specific initconfig scripts, which are now created by setup-ds.pl with values mapped from the inf file.
Diffstat (limited to 'ldap/admin/src/scripts/DSCreate.pm.in')
-rw-r--r--ldap/admin/src/scripts/DSCreate.pm.in33
1 files changed, 33 insertions, 0 deletions
diff --git a/ldap/admin/src/scripts/DSCreate.pm.in b/ldap/admin/src/scripts/DSCreate.pm.in
index 66183e88..d33f13af 100644
--- a/ldap/admin/src/scripts/DSCreate.pm.in
+++ b/ldap/admin/src/scripts/DSCreate.pm.in
@@ -421,6 +421,16 @@ sub createConfigFile {
sub makeOtherConfigFiles {
my $inf = shift;
my @errs;
+ my %maptable = (
+ "DS-ROOT" => $inf->{General}->{prefix},
+ "SERVER-DIR" => $inf->{General}->{ServerRoot},
+ "CONFIG-DIR" => $inf->{slapd}->{config_dir},
+ "INST-DIR" => $inf->{slapd}->{inst_dir},
+ "RUN-DIR" => $inf->{slapd}->{run_dir},
+ "PRODUCT-NAME" => "slapd",
+ "SERVERBIN-DIR" => $inf->{slapd}->{sbindir},
+ );
+
# install certmap.conf at <configdir>
my $src = "$inf->{General}->{prefix}@configdir@/certmap.conf";
my $dest = "$inf->{slapd}->{config_dir}/certmap.conf";
@@ -444,6 +454,29 @@ sub makeOtherConfigFiles {
return @errs;
}
+ # install instance specific initconfig script
+ $src = "$inf->{General}->{prefix}@configdir@/template-initconfig";
+ $dest = "$inf->{General}->{prefix}@initconfigdir@/@package_name@-$inf->{slapd}->{ServerIdentifier}";
+ $! = 0; # clear errno
+
+ if (!open(SRC, "< $src")) {
+ return ("error_opening_scripttmpl", $src, $!);
+ }
+ if (!open(DEST, "> $dest")) {
+ return ("error_opening_scripttmpl", $dest, $!);
+ }
+ my $contents; # slurp entire file into memory
+ read SRC, $contents, int(-s $src);
+ close(SRC);
+ while (my ($key, $val) = each %maptable) {
+ $contents =~ s/\{\{$key\}\}/$val/g;
+ }
+ print DEST $contents;
+ close(DEST);
+ if (@errs = changeOwnerMode($inf, 4, $dest)) {
+ return @errs;
+ }
+
return ();
}