summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src
diff options
context:
space:
mode:
Diffstat (limited to 'base/server/cms/src')
-rw-r--r--base/server/cms/src/org/dogtagpki/server/rest/SelfTestService.java58
1 files changed, 55 insertions, 3 deletions
diff --git a/base/server/cms/src/org/dogtagpki/server/rest/SelfTestService.java b/base/server/cms/src/org/dogtagpki/server/rest/SelfTestService.java
index de9bd04ad..e662ba9e7 100644
--- a/base/server/cms/src/org/dogtagpki/server/rest/SelfTestService.java
+++ b/base/server/cms/src/org/dogtagpki/server/rest/SelfTestService.java
@@ -18,6 +18,8 @@
package org.dogtagpki.server.rest;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLEncoder;
@@ -42,6 +44,8 @@ import com.netscape.certsrv.selftests.ISelfTestSubsystem;
import com.netscape.certsrv.selftests.SelfTestCollection;
import com.netscape.certsrv.selftests.SelfTestData;
import com.netscape.certsrv.selftests.SelfTestResource;
+import com.netscape.certsrv.selftests.SelfTestResult;
+import com.netscape.certsrv.selftests.SelfTestResults;
import com.netscape.cms.servlet.base.PKIService;
/**
@@ -144,7 +148,7 @@ public class SelfTestService extends PKIService implements SelfTestResource {
return createOKResponse(response);
} catch (Exception e) {
- e.printStackTrace();
+ CMS.debug(e);
throw new PKIException(e.getMessage());
}
}
@@ -161,7 +165,7 @@ public class SelfTestService extends PKIService implements SelfTestResource {
return createOKResponse(createSelfTestData(subsystem, selfTestID));
} catch (Exception e) {
- e.printStackTrace();
+ CMS.debug(e);
throw new PKIException(e.getMessage());
}
}
@@ -182,10 +186,58 @@ public class SelfTestService extends PKIService implements SelfTestResource {
subsystem.runSelfTestsOnDemand();
} catch (Exception e) {
- e.printStackTrace();
+ CMS.debug(e);
throw new PKIException(e.getMessage());
}
return createNoContentResponse();
}
+
+ @Override
+ public Response runSelfTests() {
+
+ CMS.debug("SelfTestService.runSelfTests()");
+
+ SelfTestResults results = new SelfTestResults();
+
+ try {
+ ISelfTestSubsystem subsystem = (ISelfTestSubsystem)CMS.getSubsystem(ISelfTestSubsystem.ID);
+ for (String selfTestID : subsystem.listSelfTestsEnabledOnDemand()) {
+ Response response = runSelfTest(selfTestID);
+ SelfTestResult result = (SelfTestResult)response.getEntity();
+ results.addEntry(result);
+ }
+
+ } catch (Exception e) {
+ CMS.debug(e);
+ throw new PKIException(e.getMessage());
+ }
+
+ return createOKResponse(results);
+ }
+
+ @Override
+ public Response runSelfTest(String selfTestID) {
+
+ CMS.debug("SelfTestService.runSelfTest(" + selfTestID + ")");
+
+ SelfTestResult result = new SelfTestResult();
+ result.setID(selfTestID);
+
+ try {
+ ISelfTestSubsystem subsystem = (ISelfTestSubsystem)CMS.getSubsystem(ISelfTestSubsystem.ID);
+ subsystem.runSelfTest(selfTestID);
+ result.setStatus("PASSED");
+
+ } catch (Exception e) {
+ result.setStatus("FAILED");
+
+ StringWriter sw = new StringWriter();
+ PrintWriter out = new PrintWriter(sw);
+ e.printStackTrace(out);
+ result.setOutput(sw.toString());
+ }
+
+ return createOKResponse(result);
+ }
}