summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/test-plugins/installDse.pl
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/servers/slapd/test-plugins/installDse.pl')
-rwxr-xr-xldap/servers/slapd/test-plugins/installDse.pl129
1 files changed, 129 insertions, 0 deletions
diff --git a/ldap/servers/slapd/test-plugins/installDse.pl b/ldap/servers/slapd/test-plugins/installDse.pl
new file mode 100755
index 00000000..6b827ab4
--- /dev/null
+++ b/ldap/servers/slapd/test-plugins/installDse.pl
@@ -0,0 +1,129 @@
+# The script is used to load the config mapping tree node for the null suffix
+# and to load the test sample plugin node into the Directory Server used to
+# demonstrate the Data Interoperability feature for Verisign.
+
+# The dse.ldif configuration file used as the default configuration by the
+# Server gets edited for adding the above mentioned two config nodes and the
+# server is restarted to load the plugin.
+
+# The loading of the DataInterop test plugin is only to demostrate the use
+# of the test plugin and can be replaced with Verisign's database plugin for use.
+
+# Written by binduk@netscape.com
+
+# Edits to be done for use
+# $host = Hostname of the Directory Server
+# $port = port used by the Server
+# $mgrdn = Bind Dn
+# $mgrpass = Password
+# $installDir = Installation root of the Server <server-root>
+
+
+###### Begin Edits ##################################
+
+$host = "trika.nscp.aoltw.net";
+$instance = "trika2";
+$port = "7775";
+$mgrdn = "cn=directory manager";
+$mgrpass = "password";
+$installDir = "/export/msyBuild/install"; # Installation root of the Server <server-root>
+
+###### End of Edits ##################################
+
+
+$dseOrgFile = "$installDir/slapd-$instance/config/dse.ldif"; # default configuration file to be edited
+$dseFile = "$installDir/slapd-$instance/config/load_dse.ldif"; # additional configuration file to be added
+$pidFile = "$installDir/slapd-$instance/logs/pid"; # pid file for the running server
+my $editedNode = 0;
+my $editedPlugin = 0;
+my $serverStatus = 1;
+
+
+ if(!(-e $pidFile)){
+ open( START_SERVER, "| $installDir/slapd-$instance/start-slapd ") || die "Can't Start the Server \n";
+ close(START_SERVER);
+
+ if(-e $pidFile){
+ print " ######## Started the Server \n";
+ }
+ else {
+ print " ######## Unable to Start the Server \n";
+ $serverStatus = 0;
+ }
+ }
+
+
+open(DSE_ORG, "$dseOrgFile") || die "Can't open $dseOrgFile for checks \n";
+ while(<DSE_ORG>){
+ $isEditedNode = 1 if (/^dn: cn=\"\",cn=mapping tree,cn=config/);
+ $isEditedPlugin = 1 if (/^dn: cn=datainterop,cn=plugins,cn=config/);
+ }
+close(DSE_ORG);
+
+open(DSE, ">$dseFile") || die "Can't open $dseFile for editing \n";
+
+ my $changesMade = 0;
+ unless($isEditedNode){
+ print DSE "dn: cn=\"\",cn=mapping tree,cn=config\n";
+ print DSE "objectClass: top\n";
+ print DSE "objectClass: extensibleObject\n";
+ print DSE "objectClass: nsMappingTree\n";
+ print DSE "cn: \"\"\n";
+ print DSE "nsslapd-state: container\n";
+ print DSE "\n";
+ $changesMade = 1;
+ }
+
+ unless($isEditedPlugin){
+ print DSE "dn: cn=datainterop,cn=plugins,cn=config\n";
+ print DSE "objectClass: top\n";
+ print DSE "objectClass: nsSlapdPlugin\n";
+ print DSE "cn: datainterop\n";
+ print DSE "nsslapd-pluginPath: $installDir/plugins/slapd/slapi/examples/libtest-plugin.so\n";
+ print DSE "nsslapd-pluginInitfunc: nullsuffix_init\n";
+ print DSE "nsslapd-pluginType: preoperation\n";
+ print DSE "nsslapd-pluginEnabled: on\n";
+ print DSE "nsslapd-pluginId: nullsuffix-preop\n";
+ print DSE "nsslapd-pluginVersion: 6.2\n";
+ print DSE "nsslapd-pluginVendor: Netscape\n";
+ print DSE "nsslapd-pluginDescription: sample pre-operation null suffix search plugin\n";
+ $changesMade = 1;
+ }
+close(DSE);
+
+
+if($changesMade){
+ chdir "$installDir/shared/bin" or die "cannot cd over error=$! \n";
+
+ open(LDAPMODIFY, "|ldapmodify -p \"${port}\" -h \"${host}\" -D \"${mgrdn}\" -w \"${mgrpass}\" -v -c -a -f $dseFile " ) || die "Can't modify the configuration of the Server \n";
+
+ close(LDAPMODIFY);
+
+ print " Modifications to the dse.ldif file have been done....restarting the server to load plugin \n";
+
+ open( STOP_SERVER, "| $installDir/slapd-$instance/stop-slapd ") || die "Can't Stop the Server \n";;
+ close(STOP_SERVER);
+
+ print " Now stopped the Server to load the plugin \n";
+
+ open( START_SERVER, "| $installDir/slapd-$instance/start-slapd ") || die "Can't Start the Server \n";
+ close(START_SERVER);
+
+ if(-e $pidFile){
+ print " Started the Server Successfully\n";
+ }
+ else{
+ $serverStatus = 0;
+ print "Failure in starting the Server - Check to see if the sample plugin has been compiled \n";
+ }
+
+}
+else {
+ if($serverStatus){
+ print " Nothing needs to be done \n";
+ }
+ else {
+ print " The Server did not Start Successfully \n";
+ }
+
+}