summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/common/src/com/netscape/certsrv/common/Constants.java1
-rw-r--r--base/server/cmscore/src/com/netscape/cmscore/apps/CMSEngine.java4
-rw-r--r--base/server/tomcat/src/com/netscape/cms/tomcat/PKIListener.java100
3 files changed, 96 insertions, 9 deletions
diff --git a/base/common/src/com/netscape/certsrv/common/Constants.java b/base/common/src/com/netscape/certsrv/common/Constants.java
index 100b91110..e37d80734 100644
--- a/base/common/src/com/netscape/certsrv/common/Constants.java
+++ b/base/common/src/com/netscape/certsrv/common/Constants.java
@@ -553,7 +553,6 @@ public interface Constants {
*========================================================*/
public final static String SERVER_STARTUP_WARNING_MESSAGE = "CMS Warning: ";
- public final static String SERVER_STARTUP_MESSAGE = "Server is started.";
public final static String SERVER_SHUTDOWN_MESSAGE = "Shutting down.";
public final static String SERVER_SHUTDOWN_ERROR_MESSAGE = "Error Starting CMS: ";
public final static String SERVER_SHUTDOWN_EXTENDED_ERROR_MESSAGE = "Extended error information: ";
diff --git a/base/server/cmscore/src/com/netscape/cmscore/apps/CMSEngine.java b/base/server/cmscore/src/com/netscape/cmscore/apps/CMSEngine.java
index 729fb4a80..02c8ab41d 100644
--- a/base/server/cmscore/src/com/netscape/cmscore/apps/CMSEngine.java
+++ b/base/server/cmscore/src/com/netscape/cmscore/apps/CMSEngine.java
@@ -1183,7 +1183,9 @@ public class CMSEngine implements ICMSEngine {
*/
Logger.getLogger().log(ILogger.EV_SYSTEM, ILogger.S_ADMIN,
ILogger.LL_INFO, CMS.getLogMessage("SERVER_STARTUP"));
- System.out.println(Constants.SERVER_STARTUP_MESSAGE);
+
+ String type = mConfig.get("cs.type");
+ System.out.println(type + " is started.");
isStarted = true;
}
diff --git a/base/server/tomcat/src/com/netscape/cms/tomcat/PKIListener.java b/base/server/tomcat/src/com/netscape/cms/tomcat/PKIListener.java
index abd88c1a6..5d1d0db23 100644
--- a/base/server/tomcat/src/com/netscape/cms/tomcat/PKIListener.java
+++ b/base/server/tomcat/src/com/netscape/cms/tomcat/PKIListener.java
@@ -1,7 +1,33 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2015 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
package com.netscape.cms.tomcat;
+
+import java.io.File;
+
+import org.apache.catalina.Context;
+import org.apache.catalina.Engine;
+import org.apache.catalina.Host;
import org.apache.catalina.Lifecycle;
import org.apache.catalina.LifecycleEvent;
import org.apache.catalina.LifecycleListener;
+import org.apache.catalina.Server;
+import org.apache.catalina.Service;
import org.apache.commons.lang.StringUtils;
import com.redhat.nuxwdog.WatchdogClient;
@@ -12,22 +38,82 @@ public class PKIListener implements LifecycleListener {
@Override
public void lifecycleEvent(LifecycleEvent event) {
- String method = "NuxwdogReader:lifecycleEvent";
- if (event.getType().equals(Lifecycle.BEFORE_INIT_EVENT)) {
- System.out.println(method + ": before init event");
+
+ String type = event.getType();
+ System.out.println("PKIListener: " + event.getLifecycle().getClass().getName() + "[" + type + "]");
+
+ if (type.equals(Lifecycle.BEFORE_INIT_EVENT)) {
+
String wdPipeName = System.getenv("WD_PIPE_NAME");
if (StringUtils.isNotEmpty(wdPipeName)) {
startedByWD = true;
- System.out.println(method + ": Initializing the watchdog");
+ System.out.println("PKIListener: Initializing the watchdog");
WatchdogClient.init();
}
- } else if (event.getType().equals(Lifecycle.AFTER_START_EVENT)) {
- System.out.println(method + "After start event");
+
+ } else if (type.equals(Lifecycle.AFTER_START_EVENT)) {
+
if (startedByWD) {
- System.out.println(method + ": Sending endInit to the Watchdog");
+ System.out.println("PKIListener: Sending endInit to the Watchdog");
WatchdogClient.sendEndInit(0);
}
+
+ verifySubsystems((Server)event.getLifecycle());
}
}
+ public void verifySubsystems(Server server) {
+
+ Service service = server.findService("Catalina");
+ Engine engine = (Engine)service.getContainer();
+ String defaultHost = engine.getDefaultHost();
+ Host host = (Host)engine.findChild(defaultHost);
+
+ File instanceDir = new File(System.getProperty("catalina.base"));
+ String instanceName = instanceDir.getName();
+
+ for (File file : instanceDir.listFiles()) {
+
+ if (!file.isDirectory()) continue;
+
+ File csCfg = new File(file, "conf" + File.separator + "CS.cfg");
+ if (!csCfg.exists()) continue;
+
+ String subsystemName = file.getName();
+
+ File contextXml = new File(
+ instanceDir,
+ "conf" + File.separator + "Catalina" + File.separator +
+ defaultHost + File.separator + subsystemName + ".xml");
+
+ if (!contextXml.exists()) {
+
+ System.out.println("PKIListener: Subsystem " + subsystemName.toUpperCase() + " is disabled.");
+
+ String selftestsLog = "/var/log/pki/" + instanceName + "/" + subsystemName + "/selftests.log";
+ System.out.println("PKIListener: Check " + selftestsLog + " for possible errors.");
+
+ System.out.println("PKIListener: To enable the subsystem:");
+ System.out.println("PKIListener: pki-server subsystem-enable -i " + instanceName + " " + subsystemName);
+
+ continue;
+ }
+
+ Context context = (Context)host.findChild("/" + subsystemName);
+
+ if (context == null) {
+
+ System.out.println("PKIListener: " + "Subsystem " + subsystemName.toUpperCase() + " is not deployed.");
+
+ String catalinaLog = "/var/log/pki/" + instanceName + "/catalina.*.log";
+ System.out.println("PKIListener: Check " + catalinaLog);
+ System.out.println("PKIListener: and Tomcat's standard output and error for possible errors:");
+ System.out.println("PKIListener: journalctl -u pki-tomcatd@" + instanceName + ".service");
+
+ continue;
+ }
+
+ System.out.println("PKIListener: Subsystem " + subsystemName.toUpperCase() + " is running.");
+ }
+ }
}