diff options
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."); + } + } } |