diff options
Diffstat (limited to 'base/server')
| -rw-r--r-- | base/server/cms/src/org/dogtagpki/server/rest/SelfTestService.java | 58 | ||||
| -rw-r--r-- | base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestSubsystem.java | 75 |
2 files changed, 94 insertions, 39 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); + } } diff --git a/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestSubsystem.java b/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestSubsystem.java index 14fab26e4..4b89aa49e 100644 --- a/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestSubsystem.java +++ b/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestSubsystem.java @@ -501,16 +501,11 @@ public class SelfTestSubsystem Enumeration<SelfTestOrderedInstance> instances = mOnDemandOrder.elements(); while (instances.hasMoreElements()) { - SelfTestOrderedInstance instance = instances.nextElement(); - String instanceFullName = null; + SelfTestOrderedInstance instance = instances.nextElement(); String instanceName = instance.getSelfTestName(); - if (instanceName != null) { - instanceName = instanceName.trim(); - instanceFullName = getFullName(mPrefix, - instanceName); - } else { + if (instanceName == null) { log(mLogger, CMS.getLogMessage( "CMSCORE_SELFTESTS_PROPERTY_NAME_IS_NULL")); @@ -518,37 +513,11 @@ public class SelfTestSubsystem throw new EMissingSelfTestException(); } - if (mSelfTestInstances.containsKey(instanceName)) { - ISelfTest test = mSelfTestInstances.get(instanceName); - - try { - if (CMS.debugOn()) { - CMS.debug("SelfTestSubsystem::runSelfTestsOnDemand():" - + " running \"" - + test.getSelfTestName() - + "\""); - } - - test.runSelfTest(mLogger); - - } catch (Exception e) { - - CMS.debug(e); - - // Check to see if the self test was critical: - if (isSelfTestCriticalOnDemand(instanceName)) { - log(mLogger, - CMS.getLogMessage( - "CMSCORE_SELFTESTS_RUN_ON_DEMAND_FAILED", - instanceFullName)); + instanceName = instanceName.trim(); - // shutdown the system gracefully - CMS.shutdown(); + String instanceFullName = getFullName(mPrefix, instanceName); - return; - } - } - } else { + if (!mSelfTestInstances.containsKey(instanceName)) { // self test plugin instance property name is not present log(mLogger, CMS.getLogMessage( @@ -557,6 +526,27 @@ public class SelfTestSubsystem throw new EMissingSelfTestException(instanceFullName); } + + try { + runSelfTest(instanceName); + + } catch (Exception e) { + + CMS.debug(e); + + // Check to see if the self test was critical: + if (isSelfTestCriticalOnDemand(instanceName)) { + log(mLogger, + CMS.getLogMessage( + "CMSCORE_SELFTESTS_RUN_ON_DEMAND_FAILED", + instanceFullName)); + + // shutdown the system gracefully + CMS.shutdown(); + + return; + } + } } if (CMS.debugOn()) { @@ -565,6 +555,19 @@ public class SelfTestSubsystem } } + public void runSelfTest(String instanceName) throws Exception { + + CMS.debug("SelfTestSubsystem.runSelfTest(" + instanceName + ")"); + + ISelfTest test = mSelfTestInstances.get(instanceName); + + if (test == null) { + throw new EMissingSelfTestException(instanceName); + } + + test.runSelfTest(mLogger); + } + // // methods associated with the list of startup self tests // |
