CLOUDSTACK-2033 Fix usage server startup and logging

Properly implement the Daemon interface

Initialize logging when the usage server is started as a daemon

Fix a few minor startup and packaging items.
This commit is contained in:
Hugo Trippaers 2013-04-16 10:52:17 +02:00
parent 32c7e1d880
commit 574e716352
6 changed files with 21 additions and 14 deletions

View File

@ -27,3 +27,4 @@ MSMNTDIR=/mnt
COMPONENTS-SPEC=components.xml COMPONENTS-SPEC=components.xml
AWSAPILOG=awsapi.log AWSAPILOG=awsapi.log
REMOTEHOST=localhost REMOTEHOST=localhost
COMMONLIBDIR=C:\Users\htrippaers\eclipse_workspace\cloudstack\client\target\cloud-client-ui-4.2.0-SNAPSHOT\WEB-INF\classes

View File

@ -58,7 +58,7 @@ export JAVA_HOME
SCP="" SCP=""
DCP="" DCP=""
UCP=`ls /usr/share/cloudstack-usage/cloud-usage-*.jar`":"`ls /usr/share/cloudstack-usage/lib/* | tr '\n' ':'` UCP=`ls /usr/share/cloudstack-usage/cloud-usage-*.jar`":"`ls /usr/share/cloudstack-usage/lib/*.jar | tr '\n' ':'`
JCP="/usr/share/java/commons-daemon.jar" JCP="/usr/share/java/commons-daemon.jar"
# We need to append the JSVC daemon JAR to the classpath # We need to append the JSVC daemon JAR to the classpath

View File

@ -447,13 +447,6 @@ if [ -f "%{_sysconfdir}/%{name}/management/db.properties" ]; then
ln -s %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/usage/db.properties ln -s %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/usage/db.properties
fi fi
if [ -f "%{_sysconfdir}/%{name}/management/log4j-cloud.xml" ]; then
echo Replacing log4j-cloud.xml with management server log4j-cloud.xml
rm -f %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
fi
#%post awsapi #%post awsapi
#if [ -d "%{_datadir}/%{name}-management" ] ; then #if [ -d "%{_datadir}/%{name}-management" ] ; then
# ln -s %{_datadir}/%{name}-bridge/webapps %{_datadir}/%{name}-management/webapps7080 # ln -s %{_datadir}/%{name}-bridge/webapps %{_datadir}/%{name}-management/webapps7080
@ -548,7 +541,7 @@ fi
%attr(0755,root,root) %{_sysconfdir}/init.d/%{name}-usage %attr(0755,root,root) %{_sysconfdir}/init.d/%{name}-usage
%attr(0644,root,root) %{_datadir}/%{name}-usage/*.jar %attr(0644,root,root) %{_datadir}/%{name}-usage/*.jar
%attr(0644,root,root) %{_datadir}/%{name}-usage/lib/*.jar %attr(0644,root,root) %{_datadir}/%{name}-usage/lib/*.jar
%dir /var/log/%{name}/usage %dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/usage
%attr(0644,root,root) %{_sysconfdir}/%{name}/usage/db.properties %attr(0644,root,root) %{_sysconfdir}/%{name}/usage/db.properties
%attr(0644,root,root) %{_sysconfdir}/%{name}/usage/log4j-cloud.xml %attr(0644,root,root) %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE %{_defaultdocdir}/%{name}-usage-%{version}/LICENSE

View File

@ -56,5 +56,5 @@ SYSCONFDIR=/etc/sysconfig
SYSTEMCLASSPATH= SYSTEMCLASSPATH=
SYSTEMJARS= SYSTEMJARS=
USAGECLASSPATH= USAGECLASSPATH=
USAGELOG=/var/log/cloudstack/usage USAGELOG=/var/log/cloudstack/usage/usage.log
USAGESYSCONFDIR=/etc/sysconfig USAGESYSCONFDIR=/etc/sysconfig

View File

@ -37,6 +37,11 @@
<version>${cs.mysql.version}</version> <version>${cs.mysql.version}</version>
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency>
<groupId>commons-daemon</groupId>
<artifactId>commons-daemon</artifactId>
<version>1.0.10</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
<defaultGoal>install</defaultGoal> <defaultGoal>install</defaultGoal>

View File

@ -19,6 +19,9 @@ package com.cloud.usage;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import org.apache.commons.daemon.Daemon;
import org.apache.commons.daemon.DaemonContext;
import org.apache.commons.daemon.DaemonInitException;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.xml.DOMConfigurator; import org.apache.log4j.xml.DOMConfigurator;
@ -29,7 +32,7 @@ import org.springframework.util.Log4jConfigurer;
import com.cloud.utils.PropertiesUtil; import com.cloud.utils.PropertiesUtil;
import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.ComponentContext;
public class UsageServer { public class UsageServer implements Daemon {
private static final Logger s_logger = Logger.getLogger(UsageServer.class.getName()); private static final Logger s_logger = Logger.getLogger(UsageServer.class.getName());
public static final String Name = "usage-server"; public static final String Name = "usage-server";
@ -39,15 +42,17 @@ public class UsageServer {
* @param args * @param args
*/ */
public static void main(String[] args) { public static void main(String[] args) {
initLog4j(); initLog4j();
UsageServer usage = new UsageServer(); UsageServer usage = new UsageServer();
usage.init(args);
usage.start(); usage.start();
} }
public void init(String[] args) { @Override
public void init(DaemonContext arg0) throws DaemonInitException, Exception {
initLog4j();
} }
@Override
public void start() { public void start() {
ApplicationContext appContext = new ClassPathXmlApplicationContext("usageApplicationContext.xml"); ApplicationContext appContext = new ClassPathXmlApplicationContext("usageApplicationContext.xml");
@ -66,10 +71,12 @@ public class UsageServer {
} }
} }
@Override
public void stop() { public void stop() {
} }
@Override
public void destroy() { public void destroy() {
} }
@ -96,4 +103,5 @@ public class UsageServer {
} }
} }
} }
} }