ldap/admin/src/scripts/DSSharedLib.in | 177 +++++++++++++-------- ldap/admin/src/scripts/DSUtil.pm.in | 115 +++++++++---- ldap/admin/src/scripts/bak2db.in | 12 - ldap/admin/src/scripts/bak2db.pl.in | 4 ldap/admin/src/scripts/cleanallruv.pl.in | 4 ldap/admin/src/scripts/db2bak.in | 13 - ldap/admin/src/scripts/db2bak.pl.in | 6 ldap/admin/src/scripts/db2index.in | 15 - ldap/admin/src/scripts/db2index.pl.in | 4 ldap/admin/src/scripts/db2ldif.in | 15 - ldap/admin/src/scripts/db2ldif.pl.in | 4 ldap/admin/src/scripts/dbverify.in | 12 - ldap/admin/src/scripts/dn2rdn.in | 13 - ldap/admin/src/scripts/fixup-linkedattrs.pl.in | 4 ldap/admin/src/scripts/fixup-memberof.pl.in | 4 ldap/admin/src/scripts/ldif2db.in | 12 - ldap/admin/src/scripts/ldif2db.pl.in | 4 ldap/admin/src/scripts/ldif2ldap.in | 12 - ldap/admin/src/scripts/monitor.in | 11 - ldap/admin/src/scripts/ns-accountstatus.pl.in | 4 ldap/admin/src/scripts/ns-activate.pl.in | 4 ldap/admin/src/scripts/ns-inactivate.pl.in | 4 ldap/admin/src/scripts/ns-newpwpolicy.pl.in | 4 ldap/admin/src/scripts/restart-dirsrv.in | 28 --- ldap/admin/src/scripts/restoreconfig.in | 13 - ldap/admin/src/scripts/saveconfig.in | 13 - ldap/admin/src/scripts/schema-reload.pl.in | 4 ldap/admin/src/scripts/start-dirsrv.in | 38 +--- ldap/admin/src/scripts/stop-dirsrv.in | 33 +-- ldap/admin/src/scripts/suffix2instance.in | 12 - ldap/admin/src/scripts/syntax-validate.pl.in | 4 ldap/admin/src/scripts/upgradedb.in | 13 - ldap/admin/src/scripts/upgradednformat.in | 12 - ldap/admin/src/scripts/usn-tombstone-cleanup.pl.in | 4 ldap/admin/src/scripts/verify-db.pl.in | 4 ldap/admin/src/scripts/vlvindex.in | 12 - 36 files changed, 359 insertions(+), 288 deletions(-)
New commits: commit 6fb5b261d8a97a761b52e57bf8ccdc203c74ea8c Author: Rich Megginson rmeggins@redhat.com Date: Mon Apr 15 21:26:49 2013 -0600
Ticket #47299 - allow cmdline scripts to work with non-root user
https://fedorahosted.org/389/ticket/47299 Reviewed by: nhosoi (Thanks!) Branch: master Fix Description: Handle the case where the directory server userid is a real user on the system, and allow that user to run the command line scripts against that server without using sudo. I also centralized the handling of the initconfig (/etc/sysconfig/dirsrv-*) files in DSSharedLib and DSUtil.pm. I changed the way the scripts work - the sh scripts need the "normalized" server id and the CONFIG_DIR (/etc/dirsrv/slapd-$servid) - we first find the initconfig file for the given instance, then we just source it - CONFIG_DIR is one of the settings in the file - no need to parse in sh because source does that. In perl, do the same thing, except have to parse the initconfig file to get the CONFIG_DIR. Platforms tested: RHEL6 x86_64 Flag Day: no Doc impact: no
diff --git a/ldap/admin/src/scripts/DSSharedLib.in b/ldap/admin/src/scripts/DSSharedLib.in index 1a66e28..8d2edc4 100644 --- a/ldap/admin/src/scripts/DSSharedLib.in +++ b/ldap/admin/src/scripts/DSSharedLib.in @@ -4,23 +4,45 @@ libpath_add() LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1 }
-# -# get_server_id() -# -# First grab all the server instances -# Then check if a server id was provided, if not, set -# the server id if there is only one instance. -# If a servid was provided, make sure its a valid instance name. -# -get_server_id() +# pass in a string that ends in dirsrv-name or slapd-name +# and convert it to just "name" +# the string could be a path name or not +# if the string did not match @package_name@-name or slapd-name it +# will be returned as is +# want to be able to handle weird cases like /slapd-@package_name@-foo +# that should normalize to the strange @package_name@-foo e.g. +# someone named the instance "@package_name@-foo" +normalize_server_id() { - dir=$1 - servid=$2 - first="yes" - inst_count=0 - instances="<none>" - rc=0 + echo "$1" | sed ' +# save the current line +h +# delete leading path components if any (i.e. basename) +s/^.*///;ta +:a +# begins with @package_name@- ; remove it and exit +s/^@package_name@-//;tx +# begins with slapd- ; remove it and exit +s/^slapd-//;tx +# no match - return original string +g +:x +' +}
+# look for all initconfig files in the given directory +# the initconfig files are the files used in the startup scripts +# to start each instance +# e.g. /etc/sysconfig/dirsrv-INST +# these scripts contain the pointer CONFIG_DIR to where the instance +# configuration files are to be found +# if the given directory is empty, look in @initconfigdir@ +# if not running as root, look for non-system instances in +# $HOME/.dirsrv +# ignore the dirsrv-admin admin server config file +get_initconfig_files() +{ + dir=${1:-@initconfigdir@} # convert # uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),..... # to @@ -29,61 +51,96 @@ get_server_id() userid=`id | awk -F'[=(]+' '{print $2}'` if [ "$userid" -ne 0 ] ; then # magic - see start-dirsrv, DSCreate.pm::get_initconfigdir, etc. - dir=$HOME/.@package_name@ + extradir=$HOME/.@package_name@ + if [ -d $extradir ] ; then + extra="$extradir/@package_name@-*" + fi fi + # setting the env var forces the use of it and nothing else if [ -n "$INITCONFIGDIR" ] ; then dir=$INITCONFIGDIR + extra= fi - - # look first in user provided INITCONFIGDIR, then in the system/build location, - # then in the users home dir - cases - # 1. system install but running as non-root user - # in this case, we want to use the instance from $dir - it will - # fallback to $homedir in that case, and if that is a problem, the user will - # just have to temporarily move $homedir/dirsrv-sysinstancename out of the way - # while working on the system instance - # 2. prefix/non-system install - # in this case, we want to use $homedir - if for some reason there is a system - # instance in $dir with the same name, the user can use INITCONFIGDIR to - # override that and force the use of the one from $homedir - for i in `ls $dir/@package_name@-* 2>/dev/null` - do - if [ $i != "$dir/@package_name@-admin" ] - then - inst_count=`expr $inst_count + 1` - id=$(expr "$i" : ".*@package_name@-([^)]*).*") - if [ $first == "yes" ] - then - instances=$id - first="no" - else - instances=$instances", $id" - fi - name=$id + retfiles= + found=1 + for file in $dir/@package_name@-* $extra ; do + if [ ! -r "$file" ] ; then continue ; fi + case "$file" in */@package_name@-admin) continue ;; esac + if [ -z "$retfiles" ] ; then + retfiles=$file + else + retfiles="$retfiles $file" fi + found=0 done + echo $retfiles + return $found # 0 return means success - at least one found +} + +# +# get_init_file() +# +# The init file is the instance specific file under +# the @initconfig@ directory e.g. +# /etc/sysconfig/dirsrv-instance +# The presence and readability of this file means this is a +# valid instance of directory server (except @package_name@-admin) +# The CONFIG_DIR directive in this file tells us where to +# look for the main server config +# First grab all the @package_name@ init files +# Then check if a server id was provided, if not, return the +# one found if there is only one +# If a servid was provided, make sure there is an init file +# for that instance +# Return the @initconfigdir@/@package_name@-$servid file name +# +get_init_file() +{ + dir=$1 + servid=$2 + first="yes" + inst_count=0 + instances="<none>" + rc=0
- if [ -z $servid ] + # normalize servid, if given + if [ -n "$servid" ] then - # server id not provided, check if there is only one instance - if [ $inst_count -eq 1 ] + servid=`normalize_server_id $servid` + fi + + for i in `get_initconfig_files $dir` + do + inst_count=`expr $inst_count + 1` + id=`normalize_server_id $i` + if [ -n "$servid" -a "$id" = "$servid" ] then - servid=$name - else - # multiple instances, can not set server id. Return list of instances - servid=$instances - rc=1; + # found it + echo $i + exit 0 fi - elif [ $servid == slapd-* ] - then - servid=`echo "$servid" | sed -e 's/slapd-//'` - elif [ $servid == @package_name@-* ] - then - servid=`echo "$servid" | sed -e 's/@package_name@-//'` + if [ $first == "yes" ] + then + instances=$id + first="no" + else + instances=$instances", $id" + fi + name=$i + done + + if [ -n $servid ] ; then + # if we got here, we did not find a match + echo $instances + exit 1 fi - if ! [ -a "$dir/@package_name@-$servid" ] + + # server id not provided, check if there is only one instance + if [ $inst_count -eq 1 ] then - # invalid instance name, return the "valid" instance names + servid=$name + else + # multiple instances, can not set server id. Return list of instances servid=$instances rc=1 fi @@ -97,9 +154,9 @@ get_server_id() # process_dse () { - servid=$1 + configdir=$1 pid=$2 - file="@instconfigdir@/slapd-$servid/dse.ldif" + file="$configdir/dse.ldif" shopt -s nocasematch OLD_IFC=$IFC IFS="" diff --git a/ldap/admin/src/scripts/DSUtil.pm.in b/ldap/admin/src/scripts/DSUtil.pm.in index b69cbb5..e439ea4 100644 --- a/ldap/admin/src/scripts/DSUtil.pm.in +++ b/ldap/admin/src/scripts/DSUtil.pm.in @@ -1205,11 +1205,10 @@ sub libpath_add { sub get_info { my %info = (); my $dir = shift; - my $servID = shift; $info{host} = shift; $info{port} = shift; $info{rootdn} = shift; - my $dse_file = "$dir/slapd-$servID/dse.ldif"; + my $dse_file = "$dir/dse.ldif"; my $foundcfg = "no"; my $value; my $entry; @@ -1277,7 +1276,7 @@ sub get_info { }
# -# Grab the server instance ID +# return the normalized server id and the server config dir (contains dse.ldif) # sub get_server_id { my $servid = shift; @@ -1287,54 +1286,106 @@ sub get_server_id { my $instances = "<none>"; my $name; my $file; + my @extra = (); + my $extradir = "";
if (getLogin ne 'root') { - $dir = "$ENV{HOME}/.@package_name@"; + $extradir = "$ENV{HOME}/.@package_name@"; + if (-d $extradir) { + opendir(EXTRADIR, $extradir); + @extra = map {$_ = "$extradir/$_"} readdir(EXTRADIR); + closedir(EXTRADIR); + } }
if (defined $ENV{INITCONFIGDIR}) { $dir = $ENV{INITCONFIGDIR}; + @extra = (); # only use what was provided + $extradir = ""; } - - opendir(DIR, "$dir"); - my @files = readdir(DIR); - foreach $file (@files){ - if($file =~ /^@package_name@-/ && $file ne "@package_name@-admin"){ - $instance_count++; - if($file =~ /@package_name@-(.*)/){ - if($first eq "yes"){ - $instances=$1; - $first = "no"; - } else { - $instances=$instances . ", $1"; - } - $name = $1; - } - } - } - if($servid eq ""){ - if ($instance_count == 1){ - $servid = $name; - } else { - print "You must supply a valid server instance identifier. Use -Z to specify instance name\n"; - print "Available instances: $instances\n"; - exit (1); - } + + # normalize the given servid + if (!$servid) { + # not given } elsif ($servid =~ /^@package_name@-/){ # strip off "@package_name@-" $servid =~ s/^@package_name@-//; } elsif ($servid =~ /^slapd-/){ # strip off "slapd-" $servid =~ s/^slapd-//; + } # else assume already normalized + + opendir(DIR, "$dir"); + my @files = map {$_ = "$dir/$_"} readdir(DIR); + closedir(DIR); + push @files, @extra; + my $found = 0; + foreach $file (@files){ + next if(! -r $file); # skip unreadable files + # skip admin server + if($file =~ m,/@package_name@-([^/]+)$, && $file !~ m,/@package_name@-admin$,){ + $name = $file; + my $inst = $1; + $instance_count++; + if ($servid && ($servid eq $inst)) { + $found = 1; + last; + } + if($first eq "yes"){ + $instances=$inst; + $first = "no"; + } else { + $instances=$instances . ", $inst"; + } + } + } + + if ($servid && !$found) { # if we got here, did not find given serverid + print (STDERR "Invalid server identifer: $servid\n"); + print (STDERR "Available instances in $dir $extradir: $instances\n"); + exit (1); + } + + if ($instance_count == 0){ + print "No instances found in $dir\n"; + exit (1); + } + + if ($instance_count > 1){ + print "You must supply a valid server instance identifier. Use -Z to specify instance name\n"; + print "Available instances: $instances\n"; + exit (1); }
- unless ( -e "$dir/@package_name@-$servid" ){ + unless ( -e "$file" ){ print (STDERR "Invalid server identifer: $servid\n"); - print (STDERR "Available instances in $dir: $instances\n"); + print (STDERR "Available instances in $dir $extradir: $instances\n"); + exit (1); + } + + # now grab the CONFIG_DIR from the file $name + if (open(INSTFILE, "$name")) { + print (STDERR "Error: could not open $name: $!"); + exit (1); + } + + my $confdir; + while (<INSTFILE>) { + if (/^CONFIG_DIR=/) { + s/^CONFIG_DIR=//; + s/ ; export CONFIG_DIR//; + $confdir = $_; + last; + } + } + close INSTFILE; + + if (!$confdir) { + print (STDERR "Error: no CONFIG_DIR found in $name\n"); exit (1); }
- return $servid; + return ($servid, $confdir); }
# diff --git a/ldap/admin/src/scripts/bak2db.in b/ldap/admin/src/scripts/bak2db.in index aef7f5b..f0cede4 100755 --- a/ldap/admin/src/scripts/bak2db.in +++ b/ldap/admin/src/scripts/bak2db.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@nss_libdir@" libpath_add "@libdir@" libpath_add "@pcre_libdir@" @@ -54,16 +54,16 @@ do esac done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +. $initfile
if [ 1 = `expr $archivedir : "/"` ] then @@ -73,4 +73,4 @@ else archivedir=`pwd`/$archivedir fi
-@sbindir@/ns-slapd archive2db -D $configdir -a $archivedir $args +@sbindir@/ns-slapd archive2db -D $CONFIG_DIR -a $archivedir $args diff --git a/ldap/admin/src/scripts/bak2db.pl.in b/ldap/admin/src/scripts/bak2db.pl.in index 3ecd7cb..7e76838 100644 --- a/ldap/admin/src/scripts/bak2db.pl.in +++ b/ldap/admin/src/scripts/bak2db.pl.in @@ -99,8 +99,8 @@ while ($i <= $#ARGV) { # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; if ($verbose == 1){ diff --git a/ldap/admin/src/scripts/cleanallruv.pl.in b/ldap/admin/src/scripts/cleanallruv.pl.in index 0fe89b6..79b8f2b 100644 --- a/ldap/admin/src/scripts/cleanallruv.pl.in +++ b/ldap/admin/src/scripts/cleanallruv.pl.in @@ -108,8 +108,8 @@ while ($i <= $#ARGV) # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; if ($verbose == 1){ diff --git a/ldap/admin/src/scripts/db2bak.in b/ldap/admin/src/scripts/db2bak.in index 79cf59a..dacd7b0 100755 --- a/ldap/admin/src/scripts/db2bak.in +++ b/ldap/admin/src/scripts/db2bak.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@nss_libdir@" libpath_add "@libdir@" libpath_add "@pcre_libdir@" @@ -55,16 +55,17 @@ do done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +servid=`normalize_server_id $initfile` +. $initfile
if [ -z $bak_dir ] then @@ -72,4 +73,4 @@ then fi
echo "Back up directory: $bak_dir" -@sbindir@/ns-slapd db2archive -D $configdir -a $bak_dir $args +@sbindir@/ns-slapd db2archive -D $CONFIG_DIR -a $bak_dir $args diff --git a/ldap/admin/src/scripts/db2bak.pl.in b/ldap/admin/src/scripts/db2bak.pl.in index 8e57c9d..aee8486 100644 --- a/ldap/admin/src/scripts/db2bak.pl.in +++ b/ldap/admin/src/scripts/db2bak.pl.in @@ -96,8 +96,8 @@ while ($i <= $#ARGV) { # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; if ($verbose == 1){ @@ -136,4 +136,4 @@ if($rc == 0){ print "Failed to add task entry "$dn" error ($rc)\n"; }
-exit($rc); \ No newline at end of file +exit($rc); diff --git a/ldap/admin/src/scripts/db2index.in b/ldap/admin/src/scripts/db2index.in index 6f524d8..a1321ea 100755 --- a/ldap/admin/src/scripts/db2index.in +++ b/ldap/admin/src/scripts/db2index.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@nss_libdir@" libpath_add "@libdir@" libpath_add "@pcre_libdir@" @@ -58,25 +58,26 @@ then exit 1; fi
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +servid=`normalize_server_id $initfile` +. $initfile
if [ $# -eq 0 ] then bak_dir=@localstatedir@/lib/@PACKAGE_NAME@/slapd-$servid/bak/reindex_`date +%Y_%m_%d_%H_%M_%S` - @sbindir@/ns-slapd upgradedb -D $configdir -a "$bak_dir" + @sbindir@/ns-slapd upgradedb -D $CONFIG_DIR -a "$bak_dir" elif [ $# -lt 2 ] then usage exit 1 else - @sbindir@/ns-slapd db2index -D $configdir $args + @sbindir@/ns-slapd db2index -D $CONFIG_DIR $args fi diff --git a/ldap/admin/src/scripts/db2index.pl.in b/ldap/admin/src/scripts/db2index.pl.in index f640f4c..ad60045 100644 --- a/ldap/admin/src/scripts/db2index.pl.in +++ b/ldap/admin/src/scripts/db2index.pl.in @@ -105,8 +105,8 @@ while ($i <= $#ARGV) { # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; if ($verbose){ diff --git a/ldap/admin/src/scripts/db2ldif.in b/ldap/admin/src/scripts/db2ldif.in index 4e12d15..cca4e95 100755 --- a/ldap/admin/src/scripts/db2ldif.in +++ b/ldap/admin/src/scripts/db2ldif.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@nss_libdir@" libpath_add "@libdir@" libpath_add "@pcre_libdir@" @@ -137,16 +137,17 @@ then exit 1 fi
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +servid=`normalize_server_id $initfile` +. $initfile
ldif_file=`make_ldiffile $@` rn=$? @@ -154,7 +155,7 @@ rn=$? echo "Exported ldif file: $ldif_file" if [ $rn -eq 1 ] then - @sbindir@/ns-slapd db2ldif -D $configdir $benameopt $includeSuffix $excludeSuffix $outputFile $args + @sbindir@/ns-slapd db2ldif -D $CONFIG_DIR $benameopt $includeSuffix $excludeSuffix $outputFile $args else - @sbindir@/ns-slapd db2ldif -D $configdir $benameopt $includeSuffix $excludeSuffix $args -a $ldif_file + @sbindir@/ns-slapd db2ldif -D $CONFIG_DIR $benameopt $includeSuffix $excludeSuffix $args -a $ldif_file fi diff --git a/ldap/admin/src/scripts/db2ldif.pl.in b/ldap/admin/src/scripts/db2ldif.pl.in index a846fd9..baece55 100644 --- a/ldap/admin/src/scripts/db2ldif.pl.in +++ b/ldap/admin/src/scripts/db2ldif.pl.in @@ -190,8 +190,8 @@ while ($i <= $#ARGV) { # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $ldifdir = "@localstatedir@/lib/@PACKAGE_NAME@/slapd-$servid/ldif"; $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; diff --git a/ldap/admin/src/scripts/dbverify.in b/ldap/admin/src/scripts/dbverify.in index 58c238c..6306a07 100755 --- a/ldap/admin/src/scripts/dbverify.in +++ b/ldap/admin/src/scripts/dbverify.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@nss_libdir@" libpath_add "@libdir@" libpath_add "@pcre_libdir@" @@ -44,18 +44,18 @@ do esac done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +. $initfile
-@sbindir@/ns-slapd dbverify -D $configdir $args +@sbindir@/ns-slapd dbverify -D $CONFIG_DIR $args if [ $display_version == "yes" ]; then exit 0 fi diff --git a/ldap/admin/src/scripts/dn2rdn.in b/ldap/admin/src/scripts/dn2rdn.in index 2379afe..32a70c8 100755 --- a/ldap/admin/src/scripts/dn2rdn.in +++ b/ldap/admin/src/scripts/dn2rdn.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@nss_libdir@" libpath_add "@libdir@"
@@ -38,20 +38,21 @@ do esac done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +servid=`normalize_server_id $initfile` +. $initfile
if [ "$archive" != "provided" ]; then bak_dir=@localstatedir@/lib/@PACKAGE_NAME@/slapd-$servid/bak/reindex_`date +%Y_%m_%d_%H_%M_%S` args=$args"-a $bak_dir" fi
-@sbindir@/ns-slapd upgradedb -D $configdir -r $args +@sbindir@/ns-slapd upgradedb -D $CONFIG_DIR -r $args diff --git a/ldap/admin/src/scripts/fixup-linkedattrs.pl.in b/ldap/admin/src/scripts/fixup-linkedattrs.pl.in index 93c697c..36f4dd8 100644 --- a/ldap/admin/src/scripts/fixup-linkedattrs.pl.in +++ b/ldap/admin/src/scripts/fixup-linkedattrs.pl.in @@ -102,8 +102,8 @@ while ($i <= $#ARGV) # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; if ($verbose == 1){ diff --git a/ldap/admin/src/scripts/fixup-memberof.pl.in b/ldap/admin/src/scripts/fixup-memberof.pl.in index a495249..c7038f6 100644 --- a/ldap/admin/src/scripts/fixup-memberof.pl.in +++ b/ldap/admin/src/scripts/fixup-memberof.pl.in @@ -106,8 +106,8 @@ while ($i <= $#ARGV) # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info[9] = $protocol; if ($verbose == 1){ diff --git a/ldap/admin/src/scripts/ldif2db.in b/ldap/admin/src/scripts/ldif2db.in index 2db3287..ce15349 100755 --- a/ldap/admin/src/scripts/ldif2db.in +++ b/ldap/admin/src/scripts/ldif2db.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@nss_libdir@" libpath_add "@libdir@" libpath_add "@pcre_libdir@" @@ -81,16 +81,16 @@ do esac done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +. $initfile
if [ $# -lt 4 ] then @@ -104,6 +104,6 @@ if [ $quiet -eq 0 ]; then echo importing data ... fi
-@sbindir@/ns-slapd ldif2db -D $configdir $args 2>&1 +@sbindir@/ns-slapd ldif2db -D $CONFIG_DIR $args 2>&1
exit $? diff --git a/ldap/admin/src/scripts/ldif2db.pl.in b/ldap/admin/src/scripts/ldif2db.pl.in index 68af2a4..390f739 100644 --- a/ldap/admin/src/scripts/ldif2db.pl.in +++ b/ldap/admin/src/scripts/ldif2db.pl.in @@ -175,8 +175,8 @@ while ($i <= $#ARGV) { # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; if ($verbose == 1){ diff --git a/ldap/admin/src/scripts/ldif2ldap.in b/ldap/admin/src/scripts/ldif2ldap.in index 2ce1cde..874b1bb 100755 --- a/ldap/admin/src/scripts/ldif2ldap.in +++ b/ldap/admin/src/scripts/ldif2ldap.in @@ -1,11 +1,11 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
libpath_add "@ldapsdk_libdir@" libpath_add "@libdir@" libpath_add "@nss_libdir@" -libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/"
export LD_LIBRARY_PATH SHLIB_PATH=$LD_LIBRARY_PATH @@ -46,16 +46,18 @@ then exit 1 fi
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-process_dse $servid $$ +. $initfile + +process_dse $CONFIG_DIR $$ file="/tmp/DSSharedLib.$$" port=$(grep -i 'nsslapd-port' $file | awk '{print $2}' ) host=$(grep -i 'nsslapd-localhost' $file | awk '{print $2}' ) diff --git a/ldap/admin/src/scripts/monitor.in b/ldap/admin/src/scripts/monitor.in index abe0366..7b2058b 100755 --- a/ldap/admin/src/scripts/monitor.in +++ b/ldap/admin/src/scripts/monitor.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@ldapsdk_libdir@" libpath_add "@libdir@" libpath_add "@nss_libdir@" @@ -40,12 +40,12 @@ do esac done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
@@ -54,8 +54,9 @@ then MDN="cn=monitor" fi
+. $initfile
-process_dse $servid $$ +process_dse $CONFIG_DIR $$ file="/tmp/DSSharedLib.$$" port=$(grep -i 'nsslapd-port' $file | awk '{print $2}' ) host=$(grep -i 'nsslapd-localhost' $file | awk '{print $2}' ) diff --git a/ldap/admin/src/scripts/ns-accountstatus.pl.in b/ldap/admin/src/scripts/ns-accountstatus.pl.in index 7e492f3..a4234f7 100644 --- a/ldap/admin/src/scripts/ns-accountstatus.pl.in +++ b/ldap/admin/src/scripts/ns-accountstatus.pl.in @@ -413,8 +413,8 @@ while( $arg = shift){ # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($rootpw, $pwfile); $info{protocol} = $protocol; $info{args} = "-c -a"; diff --git a/ldap/admin/src/scripts/ns-activate.pl.in b/ldap/admin/src/scripts/ns-activate.pl.in index 7497caf..985f13f 100644 --- a/ldap/admin/src/scripts/ns-activate.pl.in +++ b/ldap/admin/src/scripts/ns-activate.pl.in @@ -413,8 +413,8 @@ while( $arg = shift) # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($rootpw, $pwfile); $info{protocol} = $protocol; $info{args} = "-c"; diff --git a/ldap/admin/src/scripts/ns-inactivate.pl.in b/ldap/admin/src/scripts/ns-inactivate.pl.in index 6340324..c92f0ec 100644 --- a/ldap/admin/src/scripts/ns-inactivate.pl.in +++ b/ldap/admin/src/scripts/ns-inactivate.pl.in @@ -413,8 +413,8 @@ while( $arg = shift) # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($rootpw, $pwfile); $info{protocol} = $protocol; $info{args} = "-c"; diff --git a/ldap/admin/src/scripts/ns-newpwpolicy.pl.in b/ldap/admin/src/scripts/ns-newpwpolicy.pl.in index 001d052..cf6500c 100755 --- a/ldap/admin/src/scripts/ns-newpwpolicy.pl.in +++ b/ldap/admin/src/scripts/ns-newpwpolicy.pl.in @@ -97,8 +97,8 @@ sub usage { { usage() if (!getopts('vD:w:j:p:P:h:U:S:Z:'));
- $opt_Z = DSUtil::get_server_id($opt_Z, "@initconfigdir@"); - %info = DSUtil::get_info("@instconfigdir@", $opt_Z, $opt_h, $opt_p, $opt_D); + ($opt_Z, $confdir) = DSUtil::get_server_id($opt_Z, "@initconfigdir@"); + %info = DSUtil::get_info($confdir, $opt_h, $opt_p, $opt_D); $info{rootdnpw} = $opt_w; $info{protocol} = $opt_P; if ($opt_j ne ""){ diff --git a/ldap/admin/src/scripts/restart-dirsrv.in b/ldap/admin/src/scripts/restart-dirsrv.in index d782124..130e06e 100644 --- a/ldap/admin/src/scripts/restart-dirsrv.in +++ b/ldap/admin/src/scripts/restart-dirsrv.in @@ -7,6 +7,8 @@ # 2: Server started successfully (was not running) # 3: Server could not be stopped
+source @datadir@/@package_name@/data/DSSharedLib + restart_instance() { SERV_ID=$1
@@ -37,33 +39,15 @@ done shift $(($OPTIND-1))
if [ "$initconfig_dir" = "" ]; then - # convert - # uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),..... - # to - # 0 - # this is the only portable, secure way to determine the id number - userid=`id | awk -F'[=(]+' '{print $2}'` - if [ "$userid" -eq 0 ] ; then - initconfig_dir=@initconfigdir@ - else - initconfig_dir=$HOME/.@package_name@ - fi + initconfig_dir=@initconfigdir@ fi
if [ "$#" -eq 0 ]; then # We're restarting all instances. ret=0 - for i in $initconfig_dir/@package_name@-*; do - if [ ! -f "$i" ] ; then - echo No instances found in $initconfig_dir - exit 1 - fi - regex=s,$initconfig_dir/@package_name@-,,g - inst=`echo $i | sed -e $regex` - # check for admin server ID used by 389-admin pkg, and ignore it - if [ "$inst" = "admin" ]; then - continue - fi + initfiles=`get_initconfig_files $initconfig_dir` || { echo No instances found in $initconfig_dir ; exit 1 ; } + for i in $initfiles; do + inst=`normalize_server_id $i` echo Restarting instance "$inst" restart_instance $inst rv=$? diff --git a/ldap/admin/src/scripts/restoreconfig.in b/ldap/admin/src/scripts/restoreconfig.in index 929f96f..9bb1acf 100755 --- a/ldap/admin/src/scripts/restoreconfig.in +++ b/ldap/admin/src/scripts/restoreconfig.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@nss_libdir@" libpath_add "@libdir@" libpath_add "@pcre_libdir@" @@ -30,20 +30,23 @@ do esac done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
+servid=`normalize_server_id $initfile` +. $initfile + conf_ldif=`ls -1t @localstatedir@/lib/@PACKAGE_NAME@/slapd-$servid/bak/$servid-*.ldif 2>/dev/null | head -1 ` if [ -z "$conf_ldif" ] then echo No configuration to restore in @localstatedir@/lib/@PACKAGE_NAME@/slapd-$servid/bak/ ; exit 1 fi echo Restoring $conf_ldif... -@sbindir@/ns-slapd ldif2db -D $configdir -i $conf_ldif -n NetscapeRoot 2>&1 +@sbindir@/ns-slapd ldif2db -D $CONFIG_DIR -i $conf_ldif -n NetscapeRoot 2>&1 exit $? diff --git a/ldap/admin/src/scripts/saveconfig.in b/ldap/admin/src/scripts/saveconfig.in index 1fa16ff..65d80f3 100755 --- a/ldap/admin/src/scripts/saveconfig.in +++ b/ldap/admin/src/scripts/saveconfig.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@libdir@" libpath_add "@nss_libdir@" libpath_add "@pcre_libdir@" @@ -30,20 +30,21 @@ do esac done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +servid=`normalize_server_id $initfile` +. $initfile
echo saving configuration... conf_ldif=@localstatedir@/lib/@PACKAGE_NAME@/slapd-$servid/bak/$servid-`date +%Y_%m_%d_%H%M%S`.ldif -@sbindir@/ns-slapd db2ldif -N -D $configdir -s "o=NetscapeRoot" -a $conf_ldif -n NetscapeRoot 2>&1 +@sbindir@/ns-slapd db2ldif -N -D $CONFIG_DIR -s "o=NetscapeRoot" -a $conf_ldif -n NetscapeRoot 2>&1 if [ "$?" -ge 1 ] then echo Error occurred while saving configuration diff --git a/ldap/admin/src/scripts/schema-reload.pl.in b/ldap/admin/src/scripts/schema-reload.pl.in index f46324f..f46bc43 100644 --- a/ldap/admin/src/scripts/schema-reload.pl.in +++ b/ldap/admin/src/scripts/schema-reload.pl.in @@ -101,8 +101,8 @@ while ($i <= $#ARGV) # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; if ($verbose == 1){ diff --git a/ldap/admin/src/scripts/start-dirsrv.in b/ldap/admin/src/scripts/start-dirsrv.in index 2173b67..a163cef 100755 --- a/ldap/admin/src/scripts/start-dirsrv.in +++ b/ldap/admin/src/scripts/start-dirsrv.in @@ -6,10 +6,7 @@ # 1: Server could not be started # 2: Server already running
-libpath_add() { - [ -z "$1" ] && return - LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1 -} +source @datadir@/@package_name@/data/DSSharedLib
# Starts a single instance start_instance() { @@ -18,9 +15,11 @@ start_instance() { SERV_ID=$1 shift
+ initfile=`get_init_file $initconfig_dir $SERV_ID` || { echo Instance $SERV_ID not found. ; return 1 ; } + # source env. for this instance - if [ -f $initconfig_dir/@package_name@-$SERV_ID ] ; then - . $initconfig_dir/@package_name@-$SERV_ID + if [ -f $initfile ] ; then + . $initfile else echo Instance $SERV_ID not found. return 1 @@ -115,33 +114,16 @@ done shift $(($OPTIND-1))
if [ "$initconfig_dir" = "" ]; then - # convert - # uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),..... - # to - # 0 - # this is the only portable, secure way to determine the id number - userid=`id | awk -F'[=(]+' '{print $2}'` - if [ "$userid" -eq 0 ] ; then - initconfig_dir=@initconfigdir@ - else - initconfig_dir=$HOME/.@package_name@ - fi + initconfig_dir=@initconfigdir@ fi
+found=0 if [ "$#" -eq 0 ]; then # We're starting all instances. ret=0 - for i in $initconfig_dir/@package_name@-*; do - if [ ! -f "$i" ] ; then - echo No instances found in $initconfig_dir - exit 1 - fi - regex=s,$initconfig_dir/@package_name@-,,g - inst=`echo $i | sed -e $regex` - # check for admin server ID used by 389-admin pkg, and ignore it - if [ "$inst" = "admin" ]; then - continue - fi + initfiles=`get_initconfig_files $initconfig_dir` || { echo No instances found in $initconfig_dir ; exit 1 ; } + for i in $initfiles; do + inst=`normalize_server_id $i` echo Starting instance "$inst" start_instance $inst rv=$? diff --git a/ldap/admin/src/scripts/stop-dirsrv.in b/ldap/admin/src/scripts/stop-dirsrv.in index 708c277..bc38134 100755 --- a/ldap/admin/src/scripts/stop-dirsrv.in +++ b/ldap/admin/src/scripts/stop-dirsrv.in @@ -6,17 +6,16 @@ # 1: Server could not be stopped # 2: Server was not running
-libpath_add() { - [ -z "$1" ] && return - LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1 -} +source @datadir@/@package_name@/data/DSSharedLib
stop_instance() { SERV_ID=$1
+ initfile=`get_init_file $initconfig_dir $SERV_ID` || { echo Instance $SERV_ID not found. ; return 1 ; } + # source env. for this instance - if [ -f $initconfig_dir/@package_name@-$SERV_ID ] ; then - . $initconfig_dir/@package_name@-$SERV_ID + if [ -f $initfile ] ; then + . $initfile else echo Instance $SERV_ID not found. return 1 @@ -67,33 +66,19 @@ done shift $(($OPTIND-1))
if [ "$initconfig_dir" = "" ]; then - # convert - # uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),..... - # to - # 0 - # this is the only portable, secure way to determine the id number - userid=`id | awk -F'[=(]+' '{print $2}'` - if [ "$userid" -eq 0 ] ; then - initconfig_dir=@initconfigdir@ - else - initconfig_dir=$HOME/.@package_name@ - fi + initconfig_dir=@initconfigdir@ fi
if [ "$#" -eq 0 ]; then # We're stopping all instances. ret=0 - for i in $initconfig_dir/@package_name@-*; do + initfiles=`get_initconfig_files $initconfig_dir` || { echo No instances found in $initconfig_dir ; exit 1 ; } + for i in $initfiles; do if [ ! -f "$i" ] ; then echo No instances found in $initconfig_dir exit 1 fi - regex=s,$initconfig_dir/@package_name@-,,g - inst=`echo $i | sed -e $regex` - # check for admin server ID used by 389-admin pkg, and ignore it - if [ "$inst" = "admin" ]; then - continue - fi + inst=`normalize_server_id $i` echo Stopping instance "$inst" stop_instance $inst rv=$? diff --git a/ldap/admin/src/scripts/suffix2instance.in b/ldap/admin/src/scripts/suffix2instance.in index 528f28e..e2f73c3 100755 --- a/ldap/admin/src/scripts/suffix2instance.in +++ b/ldap/admin/src/scripts/suffix2instance.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@libdir@" libpath_add "@nss_libdir@" libpath_add "@pcre_libdir@" @@ -38,16 +38,16 @@ then exit 1 fi
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +. $initfile
if [ $# -lt 2 ] then @@ -55,4 +55,4 @@ then exit 1 fi
-@sbindir@/ns-slapd suffix2instance -D $configdir $args 2>&1 +@sbindir@/ns-slapd suffix2instance -D $CONFIG_DIR $args 2>&1 diff --git a/ldap/admin/src/scripts/syntax-validate.pl.in b/ldap/admin/src/scripts/syntax-validate.pl.in index 2e261c6..5ceaada 100644 --- a/ldap/admin/src/scripts/syntax-validate.pl.in +++ b/ldap/admin/src/scripts/syntax-validate.pl.in @@ -108,8 +108,8 @@ while ($i <= $#ARGV) # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; if ($verbose == 1){ diff --git a/ldap/admin/src/scripts/upgradedb.in b/ldap/admin/src/scripts/upgradedb.in index b7d36f3..211bdce 100755 --- a/ldap/admin/src/scripts/upgradedb.in +++ b/ldap/admin/src/scripts/upgradedb.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@libdir@" libpath_add "@nss_libdir@" libpath_add "@pcre_libdir@" @@ -38,15 +38,16 @@ do esac done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +servid=`normalize_server_id $initfile` +. $initfile
if [ "$archive_provided" != "yes" ] then @@ -55,4 +56,4 @@ then fi
echo upgrade index files ... -@sbindir@/ns-slapd upgradedb -D $configdir $args +@sbindir@/ns-slapd upgradedb -D $CONFIG_DIR $args diff --git a/ldap/admin/src/scripts/upgradednformat.in b/ldap/admin/src/scripts/upgradednformat.in index 560db96..e9d8cab 100755 --- a/ldap/admin/src/scripts/upgradednformat.in +++ b/ldap/admin/src/scripts/upgradednformat.in @@ -1,6 +1,6 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
# upgradednformat -- upgrade DN format to the new style (RFC 4514) # Usgae: upgradednformat [-N] -n backend_instance -a db_instance_directory @@ -10,7 +10,7 @@ source @datadir@/dirsrv/data/DSSharedLib # -a db_instance_directory -- full path to the db instance dir # e.g., /var/lib/dirsrv/slapd-ID/db/userRoot
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@nss_libdir@" libpath_add "@libdir@" libpath_add "@pcre_libdir@" @@ -54,18 +54,18 @@ if [ "$be" = "" ] || [ "$dir" = "" ]; then exit 1 fi
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +. $initfile
-@sbindir@/ns-slapd upgradednformat -D $configdir $args +@sbindir@/ns-slapd upgradednformat -D $CONFIG_DIR $args rc=$?
exit $rc diff --git a/ldap/admin/src/scripts/usn-tombstone-cleanup.pl.in b/ldap/admin/src/scripts/usn-tombstone-cleanup.pl.in index d9a876d..98e962f 100644 --- a/ldap/admin/src/scripts/usn-tombstone-cleanup.pl.in +++ b/ldap/admin/src/scripts/usn-tombstone-cleanup.pl.in @@ -109,8 +109,8 @@ while ($i <= $#ARGV) # # Gather all our config settings # -$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); -%info = DSUtil::get_info("@instconfigdir@", $servid, $host, $port, $rootdn); +($servid, $confdir) = DSUtil::get_server_id($servid, "@initconfigdir@"); +%info = DSUtil::get_info($confdir, $host, $port, $rootdn); $info{rootdnpw} = DSUtil::get_password_from_file($passwd, $passwdfile); $info{protocol} = $protocol; if ($verbose == 1){ diff --git a/ldap/admin/src/scripts/verify-db.pl.in b/ldap/admin/src/scripts/verify-db.pl.in index 1bf5fb5..b182f42 100644 --- a/ldap/admin/src/scripts/verify-db.pl.in +++ b/ldap/admin/src/scripts/verify-db.pl.in @@ -43,7 +43,7 @@ use DSUtil;
DSUtil::libpath_add("@db_libdir@"); DSUtil::libpath_add("@libdir@"); -$ENV{'PATH'} = "@libdir@/dirsrv/slapd-$servid:@db_bindir@:/usr/bin:/"; +$ENV{'PATH'} = "@libdir@/@package_name@/slapd-$servid:@db_bindir@:/usr/bin:/"; $ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
my $i = 0; @@ -167,7 +167,7 @@ while ($i <= $#ARGV) { $i++; }
-$servid = DSUtil::get_server_id($servid, "@initconfigdir@"); +($servid, $notused_configdir) = DSUtil::get_server_id($servid, "@initconfigdir@");
print("*****************************************************************\n"); print("verify-db: This tool should only be run if recovery start fails\n" . diff --git a/ldap/admin/src/scripts/vlvindex.in b/ldap/admin/src/scripts/vlvindex.in index a776581..0b46b27 100755 --- a/ldap/admin/src/scripts/vlvindex.in +++ b/ldap/admin/src/scripts/vlvindex.in @@ -1,8 +1,8 @@ #!/bin/sh
-source @datadir@/dirsrv/data/DSSharedLib +source @datadir@/@package_name@/data/DSSharedLib
-libpath_add "@libdir@/dirsrv/" +libpath_add "@libdir@/@package_name@/" libpath_add "@libdir@" libpath_add "@nss_libdir@" libpath_add "@pcre_libdir@" @@ -44,16 +44,16 @@ do esac done
-servid=$(get_server_id "@initconfigdir@" $servid) +initfile=$(get_init_file "@initconfigdir@" $servid) if [ $? == 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" - echo "Available instances: $servid" + echo "Available instances: $initfile" exit 1 fi
-configdir="@instconfigdir@/slapd-$servid" +. $initfile
if [ $# -lt 4 ] then @@ -61,4 +61,4 @@ then exit 1 fi
-@sbindir@/ns-slapd db2index -D $configdir $args +@sbindir@/ns-slapd db2index -D $CONFIG_DIR $args
389-commits@lists.fedoraproject.org