From 83b0cc9a33af29ab2f10e3ce7c9e48d60923fdd6 Mon Sep 17 00:00:00 2001
From: el_kaboing <el_kaboing@localhost>
Date: Fri, 01 Sep 2006 18:07:47 +0000
Subject: [PATCH] Implemented an isAlive() method for polling the OpenDS as it is starting. The isAlive() method determines whether the OpenDS has started by sending a simple search query.
---
opends/tests/integration-tests-testng/src/server/org/opends/server/OpenDSIntegrationTests.java | 49 +++++++++++++++++++++++++++++++++++++------------
1 files changed, 37 insertions(+), 12 deletions(-)
diff --git a/opends/tests/integration-tests-testng/src/server/org/opends/server/OpenDSIntegrationTests.java b/opends/tests/integration-tests-testng/src/server/org/opends/server/OpenDSIntegrationTests.java
index 4ba273f..d56a85c 100644
--- a/opends/tests/integration-tests-testng/src/server/org/opends/server/OpenDSIntegrationTests.java
+++ b/opends/tests/integration-tests-testng/src/server/org/opends/server/OpenDSIntegrationTests.java
@@ -27,8 +27,9 @@
package org.opends.server;
import java.io.*;
-//import org.opends.server.OpenDSAdmin;
-import org.opends.server.tools.StopDS;
+import org.opends.server.OpenDSMgr;
+import org.opends.server.tools.StopDS;
+import org.opends.server.tools.LDAPSearch;
/**
* This class defines a base test case that should be subclassed by all
@@ -41,7 +42,7 @@
// The print stream to use for printing error messages.
private PrintStream errorStream;
protected OpenDSTestOutput ds_output = new OpenDSTestOutput();
- //protected OpenDSAdmin dsAdmin = null;
+ protected OpenDSMgr dsMgr = null;
/**
* Creates a new instance of this test case with the provided name.
@@ -89,6 +90,8 @@
System.out.println("Return code is " + Integer.toString(retCode) + ", expecting " + Integer.toString(expCode));
if (retCode != expCode )
{
+ if (retCode == 999)
+ System.out.println("OpenDS could not restart");
// throw a fail in the testng framewok
assert retCode==expCode;
}
@@ -105,25 +108,41 @@
return outStr;
}
- public void startOpenDS(String dsee_home, String port) throws Exception
+ public int startOpenDS(String dsee_home, String hostname, String port, String bindDN, String bindPW, String logDir) throws Exception
{
+ int isAliveCounter = 0;
String osName = new String(System.getProperty("os.name"));
- String exec_cmd = "";
System.out.println("OpenDS is starting.....");
-
+
if (osName.indexOf("Windows") >= 0) // For Windows
{
- exec_cmd = "CMD /C " + dsee_home + "\\bin\\start-ds";
+ dsMgr = new OpenDSMgr(dsee_home, port);
+ dsMgr.start();
}
else
{
- exec_cmd = dsee_home + "/bin/start-ds.sh -nodetach";
+ String exec_cmd = dsee_home + "/bin/start-ds.sh -nodetach";
+ Runtime rtime = Runtime.getRuntime();
+ Process child = rtime.exec(exec_cmd);
}
- Runtime rtime = Runtime.getRuntime();
- Process child = rtime.exec(exec_cmd);
- Thread.sleep(30000);
+ ds_output.redirectOutput(logDir, "Redirect.txt");
+ while(isAlive(hostname, port, bindDN, bindPW) != 0)
+ {
+ if(isAliveCounter % 50 == 0)
+ {
+ ds_output.resetOutput();
+ System.out.println("OpenDS has not yet started.....");
+ ds_output.redirectOutput(logDir, "Redirect.txt");
+ }
+
+ if(isAliveCounter++ > 5000)
+ return 1;
+ }
+
+ ds_output.resetOutput();
System.out.println("OpenDS has started.");
+ return 0;
}
public void stopOpenDS(String dsee_home, String port) throws Exception
@@ -134,5 +153,11 @@
System.out.println("OpenDS has stopped.");
}
-}
+ public int isAlive(String hostname, String port, String bindDN, String bindPW)
+ {
+ String isAlive_args[] = {"-h", hostname, "-p", port, "-D", bindDN, "-w", bindPW, "-b", "", "-s", "base", "(objectclass=*)"};
+ return(LDAPSearch.mainSearch(isAlive_args));
+ }
+
+}
--
Gitblit v1.10.0