diff --git a/INSTALL.md b/INSTALL.md
index c69018daa15..626df91dc56 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -15,7 +15,7 @@ was tested against a CentOS 6.5 x86_64 setup.
Install tools and dependencies used for development:
$ yum install git ant ant-devel java-1.6.0-openjdk java-1.6.0-openjdk-devel
- mysql mysql-server tomcat6 mkisofs gcc python MySQL-python openssh-clients wget
+ mysql mysql-server mkisofs gcc python MySQL-python openssh-clients wget
# yum -y update
# yum -y install java-1.7.0-openjdk
@@ -124,7 +124,6 @@ To create debs install the following extra packages:
# apt-get -y install python-mysqldb
# apt-get -y install debhelper
- # apt-get -y install tomcat6
Then:
@@ -138,7 +137,6 @@ All the deb packages will be located one level down.
To create rpms, install the following extra packages:
# yum -y install rpm-build
- # yum -y install tomcat6
# yum -y install ws-commons-util
# yum -y instal gcc
# yum -y install glibc-devel
diff --git a/README.md b/README.md
index 57853280498..17a7a8f7bd9 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@ For more information on Apache CloudStack, please visit the [website](http://clo
Apache CloudStack project uses Git. The official Git repository is at:
- https://git-wip-us.apache.org/repos/asf/cloudstack.git
+ https://gitbox.apache.org/repos/asf/cloudstack.git
And a mirror is hosted on Github:
diff --git a/build/replace.properties b/build/replace.properties
index 9e0b65c6901..3d9a4597060 100644
--- a/build/replace.properties
+++ b/build/replace.properties
@@ -27,4 +27,4 @@ AGENTLOG=logs/agent.log
MSMNTDIR=/mnt
COMPONENTS-SPEC=components.xml
REMOTEHOST=localhost
-COMMONLIBDIR=client/target/cloud-client-ui-4.7.0/WEB-INF/lib/
+COMMONLIBDIR=client/target/common/
diff --git a/client/WEB-INF/web.xml b/client/WEB-INF/web.xml
index 73a755b501f..03f7d15db62 100644
--- a/client/WEB-INF/web.xml
+++ b/client/WEB-INF/web.xml
@@ -19,23 +19,20 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
-
-
- log4jConfigLocation
- classpath:log4j-cloud.xml
-
-
- org.springframework.web.util.Log4jConfigListener
-
-
-
- org.apache.cloudstack.spring.module.web.CloudStackContextLoaderListener
-
+
- contextConfigLocation
- classpath:META-INF/cloudstack/webApplicationContext.xml
+ log4jConfigLocation
+ classpath:log4j-cloud.xml
-
+
+
+ org.apache.cloudstack.spring.module.web.CloudStackContextLoaderListener
+
+
+ contextConfigLocation
+ classpath:META-INF/cloudstack/webApplicationContext.xml
+
+
cloudStartupServlet
com.cloud.servlet.CloudStartupServlet
@@ -47,40 +44,26 @@
com.cloud.api.ApiServlet
5
-
+
consoleServlet
com.cloud.servlet.ConsoleProxyServlet
6
-
-
- staticResources
- com.cloud.servlet.StaticResourceServlet
-
-
apiServlet
/api/*
-
-
- consoleServlet
- /console
-
-
- staticResources
- *.css
- *.html
- *.js
+ consoleServlet
+ /console
- java.lang.Exception
- /error.html
+ java.lang.Exception
+ /error.html
diff --git a/client/bindir/cloud-setup-management.in b/client/bindir/cloud-setup-management.in
index de76007fc80..94a08cb1e1f 100755
--- a/client/bindir/cloud-setup-management.in
+++ b/client/bindir/cloud-setup-management.in
@@ -29,13 +29,13 @@ if __name__ == '__main__':
parser = OptionParser()
parser.add_option("--https", action="store_true", dest="https", help="Enable HTTPs connection of management server")
- parser.add_option("--tomcat7", action="store_true", dest="tomcat7", help="Use Tomcat7 configuration files in Management Server")
+ parser.add_option("--tomcat7", action="store_true", dest="tomcat7", help="Depreciated option, don't use it")
parser.add_option("--no-start", action="store_true", dest="nostart", help="Do not start management server after successful configuration")
(options, args) = parser.parse_args()
if options.https:
glbEnv.svrMode = "HttpsServer"
if options.tomcat7:
- glbEnv.svrConf = "Tomcat7"
+ print "The --tomcat7 option is deprecated, CloudStack now uses embedded Jetty server."
if options.nostart:
glbEnv.noStart = True
diff --git a/client/tomcatconf/commons-logging.properties.in b/client/conf/commons-logging.properties.in
similarity index 97%
rename from client/tomcatconf/commons-logging.properties.in
rename to client/conf/commons-logging.properties.in
index 1e570d65f3b..febd7ba23ae 100644
--- a/client/tomcatconf/commons-logging.properties.in
+++ b/client/conf/commons-logging.properties.in
@@ -17,9 +17,9 @@
# under the License.
#
-# This is the logging properties that goes to the war, there are two logging conf kept at the
+# This is the logging properties that goes to the war, there are two logging conf kept at the
# svn, one for developement (one at src/test-resources) and other for producation
-
+
# Uncomment the next line to disable all logging.
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
diff --git a/client/tomcatconf/db.properties.in b/client/conf/db.properties.in
similarity index 97%
rename from client/tomcatconf/db.properties.in
rename to client/conf/db.properties.in
index ab7d7c90c16..2f1dcf0d6b8 100644
--- a/client/tomcatconf/db.properties.in
+++ b/client/conf/db.properties.in
@@ -5,9 +5,9 @@
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -16,7 +16,7 @@
# under the License.
# management server clustering parameters, change cluster.node.IP to the machine IP address
-# in which the management server(Tomcat) is running
+# in which the management server is running
cluster.node.IP=127.0.0.1
cluster.servlet.port=9090
region.id=1
@@ -47,7 +47,6 @@ db.cloud.keyStore=
db.cloud.keyStorePassword=
db.cloud.trustStore=
db.cloud.trustStorePassword=
-db.cloud.keyStorePassphrase=vmops.com
# Encryption Settings
db.cloud.encryption.type=none
diff --git a/client/tomcatconf/ehcache.xml.in b/client/conf/ehcache.xml.in
similarity index 98%
rename from client/tomcatconf/ehcache.xml.in
rename to client/conf/ehcache.xml.in
index 9443d48b83b..19bfd0f6967 100755
--- a/client/tomcatconf/ehcache.xml.in
+++ b/client/conf/ehcache.xml.in
@@ -23,7 +23,7 @@ under the License.
CacheManager Configuration
==========================
An ehcache.xml corresponds to a single CacheManager.
-
+
See instructions below or the ehcache schema (ehcache.xsd) on how to configure.
System property tokens can be specified in this file which are replaced when the configuration is loaded.
@@ -143,7 +143,7 @@ under the License.
The hostname is the hostname of the remote CacheManager peer. The port is the listening
port of the RMICacheManagerPeerListener of the remote CacheManager peer.
-
+
Configuring JGroups replication:
- This listener supports the same property than the RMICacheReplicationFactory.
+ replicateUpdates=true, replicateUpdatesViaCopy=false,
+ replicateRemovals=true,asynchronousReplicationIntervalMillis=1000"/>
+ This listener supports the same property than the RMICacheReplicationFactory.
Cluster Bootstrapping
@@ -435,7 +435,7 @@ under the License.
disk cache, which in this configuration will go to wherever java.io.tmp is
defined on your system. On a standard Linux system this will be /tmp"
-->
-
-
-
-
-
-
@@ -136,19 +136,19 @@ under the License.
-
+
-
+
-
+
-
+
diff --git a/packaging/fedora21/cloudstack-sccs b/client/conf/server.properties.in
similarity index 50%
rename from packaging/fedora21/cloudstack-sccs
rename to client/conf/server.properties.in
index e05d372c7fe..1facb0eda05 100644
--- a/packaging/fedora21/cloudstack-sccs
+++ b/client/conf/server.properties.in
@@ -1,5 +1,3 @@
-#!/bin/sh
-
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
@@ -17,4 +15,27 @@
# specific language governing permissions and limitations
# under the License.
-cat /usr/share/cloudstack-common/scripts/gitrev.txt
+# The binding interface for the management server
+bind.interface=
+
+# The service context path where URL requests should be served
+context.path=/client
+
+# The HTTP port to be used by the management server
+http.port=8080
+
+# Options to configure and enable HTTPS on management server
+#
+# For management server to pickup these configuration settings, the configured
+# keystore file should exists and be readable by the management server.
+https.enable=false
+https.port=8443
+# The keystore and manager passwords are assumed to be same.
+https.keystore=/etc/cloudstack/management/cloud.jks
+https.keystore.password=vmops.com
+
+# The path to webapp directory
+webapp.dir=/usr/share/cloudstack-management/webapp
+
+# The path to access log file
+access.log=/var/log/cloudstack/management/access.log
diff --git a/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in
deleted file mode 100755
index 03a9301f6c7..00000000000
--- a/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# @PACKAGE@-management This shell script takes care of starting and stopping Tomcat
-#
-# chkconfig: - 80 20
-#
-### BEGIN INIT INFO
-# Provides: tomcat6
-# Required-Start: $network $syslog
-# Required-Stop: $network $syslog
-# Default-Start:
-# Default-Stop:
-# Description: Release implementation for Servlet 2.5 and JSP 2.1
-# Short-Description: start and stop tomcat
-### END INIT INFO
-#
-# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
-# - heavily rewritten by Deepak Bhole and Jason Corley
-#
-
-if [ -r /etc/rc.d/init.d/functions ]; then
- . /etc/rc.d/init.d/functions
-fi
-if [ -r /lib/lsb/init-functions ]; then
- . /lib/lsb/init-functions
-fi
-
-
-NAME="$(basename $0)"
-stop() {
- SHUTDOWN_WAIT="40"
- count="0"
- if [ -f /var/run/cloud-management.pid ]; then
- pid=`cat /var/run/cloud-management.pid`
- kill $pid &>/dev/null
- until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \
- [ "$count" -gt "$SHUTDOWN_WAIT" ]
- do
- sleep 1
- let count="${count}+1"
- done
- if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then
- log_success_msg "Stopping cloud-management:"
- else
- log_failure_msg "Stopping cloud-management:"
- fi
- else
- echo "Cannot find PID file of Cloud-management"
- log_failure_msg "Stopping cloud-management:"
- fi
-}
-
-set_ulimit() {
- fd_limit=`ulimit -n`
- if [ "$fd_limit" != "4096" ]; then
- user=`whoami`
- if [ $user == "root" ]; then
- ulimit -n 4096
- fi
- fi
-}
-
-handle_pid_file() {
- if [ "$1" -ne 0 ] ; then
- echo "The pid file locates at /var/run/cloud-management.pid and lock file at /var/lock/subsys/cloud-management.
- Starting cloud-management will take care of them or you can manually clean up."
- fi
-}
-
-# See how we were called.
-case "$1" in
- status)
- status ${NAME}
- RETVAL=$?
- handle_pid_file $RETVAL
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- set start
- set_ulimit
- . /etc/rc.d/init.d/tomcat6
- ;;
- *)
- set_ulimit
- . /etc/rc.d/init.d/tomcat6
-esac
-
-exit $RETVAL
diff --git a/client/distro/centos/SYSCONFDIR/sysconfig/cloud-management.in b/client/distro/centos/SYSCONFDIR/sysconfig/cloud-management.in
deleted file mode 100644
index d22a6d5adc2..00000000000
--- a/client/distro/centos/SYSCONFDIR/sysconfig/cloud-management.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This file is loaded in /etc/init.d/vmopsmanagement
-# ATM we only do two things here:
-
-dummy=1 ; export TOMCAT_CFG=@MSCONF@/tomcat6.conf ; . @MSCONF@/tomcat6.conf
-#--------------------------
-
diff --git a/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in
deleted file mode 100755
index bbc46932738..00000000000
--- a/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# @PACKAGE@-management This shell script takes care of starting and stopping Tomcat
-#
-# chkconfig: - 80 20
-#
-### BEGIN INIT INFO
-# Provides: tomcat6
-# Required-Start: $network $syslog
-# Required-Stop: $network $syslog
-# Default-Start:
-# Default-Stop:
-# Description: Release implementation for Servlet 2.5 and JSP 2.1
-# Short-Description: start and stop tomcat
-### END INIT INFO
-#
-# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
-# - heavily rewritten by Deepak Bhole and Jason Corley
-#
-
-if [ -r /etc/rc.d/init.d/functions ]; then
- . /etc/rc.d/init.d/functions
-fi
-if [ -r /lib/lsb/init-functions ]; then
- . /lib/lsb/init-functions
-fi
-
-set_ulimit() {
- fd_limit=`ulimit -n`
- if [ "$fd_limit" != "4096" ]; then
- user=`whoami`
- if [ $user == "root" ]; then
- ulimit -n 4096
- fi
- fi
-}
-
-NAME="$(basename $0)"
-stop() {
- SHUTDOWN_WAIT="30"
- count="0"
- if [ -f /var/run/cloud-management.pid ]; then
- pid=`cat /var/run/cloud-management.pid`
- kill $pid &>/dev/null
- until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \
- [ "$count" -gt "$SHUTDOWN_WAIT" ]
- do
- sleep 1
- let count="${count}+1"
- done
- if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then
- log_success_msg "Stopping cloud-management:"
- else
- log_failure_msg "Stopping cloud-management:"
- fi
- else
- echo "Cannot find PID file of Cloud-management"
- log_failure_msg "Stopping cloud-management:"
- fi
-}
-
-handle_pid_file() {
- if [ "$1" -ne 0 ] ; then
- echo "The pid file locates at /var/run/cloud-management.pid and lock file at /var/lock/subsys/cloud-management.
- Starting cloud-management will take care of them or you can manually clean up."
- fi
-}
-
-# See how we were called.
-case "$1" in
- status)
- status ${NAME}
- RETVAL=$?
- handle_pid_file $RETVAL
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- set start
- set_ulimit
- . /etc/rc.d/init.d/tomcat6
- ;;
- *)
- set_ulimit
- . /etc/rc.d/init.d/tomcat6
-esac
-
-exit $RETVAL
diff --git a/client/distro/fedora/SYSCONFDIR/sysconfig/cloud-management.in b/client/distro/fedora/SYSCONFDIR/sysconfig/cloud-management.in
deleted file mode 100644
index d22a6d5adc2..00000000000
--- a/client/distro/fedora/SYSCONFDIR/sysconfig/cloud-management.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This file is loaded in /etc/init.d/vmopsmanagement
-# ATM we only do two things here:
-
-dummy=1 ; export TOMCAT_CFG=@MSCONF@/tomcat6.conf ; . @MSCONF@/tomcat6.conf
-#--------------------------
-
diff --git a/client/distro/opensuse/SYSCONFDIR/init.d/cloud-management.in b/client/distro/opensuse/SYSCONFDIR/init.d/cloud-management.in
deleted file mode 100755
index d071b39d2e7..00000000000
--- a/client/distro/opensuse/SYSCONFDIR/init.d/cloud-management.in
+++ /dev/null
@@ -1,239 +0,0 @@
-#!/bin/sh
-#
-# /etc/init.d/tomcat6 -- startup script for the Tomcat 6 servlet engine
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-### BEGIN INIT INFO
-# Provides: tomcat-vmops
-# Required-Start: $local_fs $remote_fs $network
-# Required-Stop: $local_fs $remote_fs $network
-# Should-Start: $named
-# Should-Stop: $named
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Start Tomcat (CloudStack).
-# Description: Start the Tomcat servlet engine that runs the CloudStack Management Server.
-### END INIT INFO
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-NAME=cloud-management
-DESC="CloudStack-specific Tomcat servlet engine"
-DAEMON=/usr/bin/jsvc
-CATALINA_HOME=@MSENVIRON@
-DEFAULT=@MSCONF@/tomcat6.conf
-JVM_TMP=/tmp/$NAME-temp
-
-if [ `id -u` -ne 0 ]; then
- echo "You need root privileges to run this script"
- exit 1
-fi
-
-# Make sure tomcat is started with system locale
-if [ -r /etc/default/locale ]; then
- . /etc/default/locale
- export LANG
-fi
-
-. /lib/lsb/init-functions
-. /etc/rc.status
-
-
-# The following variables can be overwritten in $DEFAULT
-
-# Run Tomcat 6 as this user ID
-TOMCAT6_USER=tomcat6
-
-# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
-# defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
-
-# Look for the right JVM to use
-for jdir in $JDK_DIRS; do
- if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
- JAVA_HOME="$jdir"
- fi
-done
-export JAVA_HOME
-
-# Directory for per-instance configuration files and webapps
-CATALINA_BASE=@MSENVIRON@
-
-# Use the Java security manager? (yes/no)
-TOMCAT6_SECURITY=no
-
-# Default Java options
-# Set java.awt.headless=true if JAVA_OPTS is not set so the
-# Xalan XSL transformer can work without X11 display on JDK 1.4+
-# It also looks like the default heap size of 64M is not enough for most cases
-# so the maximum heap size is set to 128M
-if [ -z "$JAVA_OPTS" ]; then
- JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
-fi
-
-# End of variables that can be overwritten in $DEFAULT
-
-# overwrite settings from default file
-if [ -f "$DEFAULT" ]; then
- . "$DEFAULT"
-fi
-
-if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then
- log_failure_msg "$NAME is not installed"
- exit 1
-fi
-
-[ -f "$DAEMON" ] || exit 0
-
-POLICY_CACHE="$CATALINA_BASE/work/catalina.policy"
-
-JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$JVM_TMP"
-
-# Set the JSP compiler if set in the tomcat6.default file
-if [ -n "$JSP_COMPILER" ]; then
- JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=$JSP_COMPILER"
-fi
-
-if [ "$TOMCAT6_SECURITY" = "yes" ]; then
- JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=$POLICY_CACHE"
-fi
-
-# Set juli LogManager if logging.properties is provided
-if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
- JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
-fi
-
-# Define other required variables
-CATALINA_PID="@PIDDIR@/$NAME.pid"
-BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
-JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"
-JSVC_CLASSPATH=$CLASSPATH:$JSVC_CLASSPATH
-
-# Look for Java Secure Sockets Extension (JSSE) JARs
-if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
- JSSE_HOME="${JAVA_HOME}/jre/"
-fi
-export JSSE_HOME
-
-case "$1" in
- start)
- if [ -z "$JAVA_HOME" ]; then
- log_failure_msg "no JDK found - please set JAVA_HOME"
- exit 1
- fi
-
- if [ ! -d "$CATALINA_BASE/conf" ]; then
- log_failure_msg "invalid CATALINA_BASE: $CATALINA_BASE"
- exit 1
- fi
-
- log_daemon_msg "Starting $DESC" "$NAME"
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
-
- # Regenerate POLICY_CACHE file
- umask 022
- echo "// AUTO-GENERATED FILE from /etc/tomcat6/policy.d/" \
- > "$POLICY_CACHE"
- echo "" >> "$POLICY_CACHE"
- if ls $CATALINA_BASE/conf/policy.d/*.policy > /dev/null 2>&1 ; then
- cat $CATALINA_BASE/conf/policy.d/*.policy \
- >> "$POLICY_CACHE"
- fi
-
- # Remove / recreate JVM_TMP directory
- rm -rf "$JVM_TMP"
- mkdir "$JVM_TMP" || {
- log_failure_msg "could not create JVM temporary directory"
- exit 1
- }
- chown $TOMCAT6_USER "$JVM_TMP"
- cd "$JVM_TMP"
-
-
- # fix storage issues on nfs mounts
- umask 000
- $DAEMON -user "$TOMCAT6_USER" -cp "$JSVC_CLASSPATH" \
- -outfile SYSLOG -errfile SYSLOG \
- -pidfile "$CATALINA_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
-
- sleep 5
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- log_end_msg 1
- else
- log_end_msg 0
- fi
- else
- log_progress_msg "(already running)"
- log_end_msg 0
- fi
- ;;
- stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user "$TOMCAT6_USER" --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- log_progress_msg "(not running)"
- else
- $DAEMON -cp "$JSVC_CLASSPATH" -pidfile "$CATALINA_PID" \
- -stop "$BOOTSTRAP_CLASS"
- fi
- rm -rf "$JVM_TMP"
- log_end_msg 0
- ;;
- status)
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
-
- if [ -f "$CATALINA_PID" ]; then
- log_success_msg "$DESC is not running, but pid file exists."
- exit 1
- else
- log_success_msg "$DESC is not running."
- exit 3
- fi
- else
- log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
- fi
- ;;
- restart|force-reload)
- if start-stop-daemon --test --stop --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- $0 stop
- sleep 1
- fi
- $0 start
- ;;
- try-restart)
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- $0 start
- fi
- ;;
- *)
- log_success_msg "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/client/distro/opensuse/SYSCONFDIR/sysconfig/cloud-management.in b/client/distro/opensuse/SYSCONFDIR/sysconfig/cloud-management.in
deleted file mode 100644
index d22a6d5adc2..00000000000
--- a/client/distro/opensuse/SYSCONFDIR/sysconfig/cloud-management.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This file is loaded in /etc/init.d/vmopsmanagement
-# ATM we only do two things here:
-
-dummy=1 ; export TOMCAT_CFG=@MSCONF@/tomcat6.conf ; . @MSCONF@/tomcat6.conf
-#--------------------------
-
diff --git a/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in
deleted file mode 100644
index b0be89e8186..00000000000
--- a/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# @PACKAGE@-management This shell script takes care of starting and stopping Tomcat
-#
-# chkconfig: - 80 20
-#
-### BEGIN INIT INFO
-# Provides: tomcat6
-# Required-Start: $network $syslog
-# Required-Stop: $network $syslog
-# Default-Start:
-# Default-Stop:
-# Description: Release implementation for Servlet 2.5 and JSP 2.1
-# Short-Description: start and stop tomcat
-### END INIT INFO
-#
-# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
-# - heavily rewritten by Deepak Bhole and Jason Corley
-#
-
-if [ -r /etc/rc.d/init.d/functions ]; then
- . /etc/rc.d/init.d/functions
-fi
-if [ -r /lib/lsb/init-functions ]; then
- . /lib/lsb/init-functions
-fi
-
-
-NAME="$(basename $0)"
-stop() {
- SHUTDOWN_WAIT="30"
- count="0"
- if [ -f /var/run/cloud-management.pid ]; then
- pid=`cat /var/run/cloud-management.pid`
- kill $pid &>/dev/null
- until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \
- [ "$count" -gt "$SHUTDOWN_WAIT" ]
- do
- sleep 1
- let count="${count}+1"
- done
- if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then
- log_success_msg "Stopping cloud-management:"
- else
- log_failure_msg "Stopping cloud-management:"
- fi
- else
- echo "Cannot find PID file of Cloud-management"
- log_failure_msg "Stopping cloud-management:"
- fi
-}
-
-set_ulimit() {
- fd_limit=`ulimit -n`
- if [ "$fd_limit" != "4096" ]; then
- user=`whoami`
- if [ $user == "root" ]; then
- ulimit -n 4096
- fi
- fi
-}
-
-
-handle_pid_file() {
- if [ "$1" -ne 0 ] ; then
- echo "The pid file locates at /var/run/cloud-management.pid and lock file at /var/lock/subsys/cloud-management.
- Starting cloud-management will take care of them or you can manually clean up."
- fi
-}
-
-# See how we were called.
-case "$1" in
- status)
- status ${NAME}
- RETVAL=$?
- handle_pid_file $RETVAL
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- set start
- set_ulimit
- . /etc/rc.d/init.d/tomcat6
- ;;
- *)
- set_ulimit
- . /etc/rc.d/init.d/tomcat6
-esac
-
-exit $RETVAL
diff --git a/client/distro/rhel/SYSCONFDIR/sysconfig/cloud-management.in b/client/distro/rhel/SYSCONFDIR/sysconfig/cloud-management.in
deleted file mode 100644
index d22a6d5adc2..00000000000
--- a/client/distro/rhel/SYSCONFDIR/sysconfig/cloud-management.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This file is loaded in /etc/init.d/vmopsmanagement
-# ATM we only do two things here:
-
-dummy=1 ; export TOMCAT_CFG=@MSCONF@/tomcat6.conf ; . @MSCONF@/tomcat6.conf
-#--------------------------
-
diff --git a/client/distro/sles/SYSCONFDIR/init.d/cloud-management.in b/client/distro/sles/SYSCONFDIR/init.d/cloud-management.in
deleted file mode 100755
index d071b39d2e7..00000000000
--- a/client/distro/sles/SYSCONFDIR/init.d/cloud-management.in
+++ /dev/null
@@ -1,239 +0,0 @@
-#!/bin/sh
-#
-# /etc/init.d/tomcat6 -- startup script for the Tomcat 6 servlet engine
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-### BEGIN INIT INFO
-# Provides: tomcat-vmops
-# Required-Start: $local_fs $remote_fs $network
-# Required-Stop: $local_fs $remote_fs $network
-# Should-Start: $named
-# Should-Stop: $named
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Start Tomcat (CloudStack).
-# Description: Start the Tomcat servlet engine that runs the CloudStack Management Server.
-### END INIT INFO
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-NAME=cloud-management
-DESC="CloudStack-specific Tomcat servlet engine"
-DAEMON=/usr/bin/jsvc
-CATALINA_HOME=@MSENVIRON@
-DEFAULT=@MSCONF@/tomcat6.conf
-JVM_TMP=/tmp/$NAME-temp
-
-if [ `id -u` -ne 0 ]; then
- echo "You need root privileges to run this script"
- exit 1
-fi
-
-# Make sure tomcat is started with system locale
-if [ -r /etc/default/locale ]; then
- . /etc/default/locale
- export LANG
-fi
-
-. /lib/lsb/init-functions
-. /etc/rc.status
-
-
-# The following variables can be overwritten in $DEFAULT
-
-# Run Tomcat 6 as this user ID
-TOMCAT6_USER=tomcat6
-
-# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
-# defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
-
-# Look for the right JVM to use
-for jdir in $JDK_DIRS; do
- if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
- JAVA_HOME="$jdir"
- fi
-done
-export JAVA_HOME
-
-# Directory for per-instance configuration files and webapps
-CATALINA_BASE=@MSENVIRON@
-
-# Use the Java security manager? (yes/no)
-TOMCAT6_SECURITY=no
-
-# Default Java options
-# Set java.awt.headless=true if JAVA_OPTS is not set so the
-# Xalan XSL transformer can work without X11 display on JDK 1.4+
-# It also looks like the default heap size of 64M is not enough for most cases
-# so the maximum heap size is set to 128M
-if [ -z "$JAVA_OPTS" ]; then
- JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
-fi
-
-# End of variables that can be overwritten in $DEFAULT
-
-# overwrite settings from default file
-if [ -f "$DEFAULT" ]; then
- . "$DEFAULT"
-fi
-
-if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then
- log_failure_msg "$NAME is not installed"
- exit 1
-fi
-
-[ -f "$DAEMON" ] || exit 0
-
-POLICY_CACHE="$CATALINA_BASE/work/catalina.policy"
-
-JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$JVM_TMP"
-
-# Set the JSP compiler if set in the tomcat6.default file
-if [ -n "$JSP_COMPILER" ]; then
- JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=$JSP_COMPILER"
-fi
-
-if [ "$TOMCAT6_SECURITY" = "yes" ]; then
- JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=$POLICY_CACHE"
-fi
-
-# Set juli LogManager if logging.properties is provided
-if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
- JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
-fi
-
-# Define other required variables
-CATALINA_PID="@PIDDIR@/$NAME.pid"
-BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
-JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"
-JSVC_CLASSPATH=$CLASSPATH:$JSVC_CLASSPATH
-
-# Look for Java Secure Sockets Extension (JSSE) JARs
-if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
- JSSE_HOME="${JAVA_HOME}/jre/"
-fi
-export JSSE_HOME
-
-case "$1" in
- start)
- if [ -z "$JAVA_HOME" ]; then
- log_failure_msg "no JDK found - please set JAVA_HOME"
- exit 1
- fi
-
- if [ ! -d "$CATALINA_BASE/conf" ]; then
- log_failure_msg "invalid CATALINA_BASE: $CATALINA_BASE"
- exit 1
- fi
-
- log_daemon_msg "Starting $DESC" "$NAME"
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
-
- # Regenerate POLICY_CACHE file
- umask 022
- echo "// AUTO-GENERATED FILE from /etc/tomcat6/policy.d/" \
- > "$POLICY_CACHE"
- echo "" >> "$POLICY_CACHE"
- if ls $CATALINA_BASE/conf/policy.d/*.policy > /dev/null 2>&1 ; then
- cat $CATALINA_BASE/conf/policy.d/*.policy \
- >> "$POLICY_CACHE"
- fi
-
- # Remove / recreate JVM_TMP directory
- rm -rf "$JVM_TMP"
- mkdir "$JVM_TMP" || {
- log_failure_msg "could not create JVM temporary directory"
- exit 1
- }
- chown $TOMCAT6_USER "$JVM_TMP"
- cd "$JVM_TMP"
-
-
- # fix storage issues on nfs mounts
- umask 000
- $DAEMON -user "$TOMCAT6_USER" -cp "$JSVC_CLASSPATH" \
- -outfile SYSLOG -errfile SYSLOG \
- -pidfile "$CATALINA_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
-
- sleep 5
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- log_end_msg 1
- else
- log_end_msg 0
- fi
- else
- log_progress_msg "(already running)"
- log_end_msg 0
- fi
- ;;
- stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user "$TOMCAT6_USER" --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- log_progress_msg "(not running)"
- else
- $DAEMON -cp "$JSVC_CLASSPATH" -pidfile "$CATALINA_PID" \
- -stop "$BOOTSTRAP_CLASS"
- fi
- rm -rf "$JVM_TMP"
- log_end_msg 0
- ;;
- status)
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
-
- if [ -f "$CATALINA_PID" ]; then
- log_success_msg "$DESC is not running, but pid file exists."
- exit 1
- else
- log_success_msg "$DESC is not running."
- exit 3
- fi
- else
- log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
- fi
- ;;
- restart|force-reload)
- if start-stop-daemon --test --stop --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- $0 stop
- sleep 1
- fi
- $0 start
- ;;
- try-restart)
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- $0 start
- fi
- ;;
- *)
- log_success_msg "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/client/distro/sles/SYSCONFDIR/sysconfig/cloud-management.in b/client/distro/sles/SYSCONFDIR/sysconfig/cloud-management.in
deleted file mode 100644
index d22a6d5adc2..00000000000
--- a/client/distro/sles/SYSCONFDIR/sysconfig/cloud-management.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This file is loaded in /etc/init.d/vmopsmanagement
-# ATM we only do two things here:
-
-dummy=1 ; export TOMCAT_CFG=@MSCONF@/tomcat6.conf ; . @MSCONF@/tomcat6.conf
-#--------------------------
-
diff --git a/client/distro/ubuntu/SYSCONFDIR/init.d/cloud-management.in b/client/distro/ubuntu/SYSCONFDIR/init.d/cloud-management.in
deleted file mode 100755
index 4afa707a9e9..00000000000
--- a/client/distro/ubuntu/SYSCONFDIR/init.d/cloud-management.in
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/bin/sh
-#
-# /etc/init.d/tomcat6 -- startup script for the Tomcat 6 servlet engine
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-### BEGIN INIT INFO
-# Provides: tomcat-vmops
-# Required-Start: $local_fs $remote_fs $network
-# Required-Stop: $local_fs $remote_fs $network
-# Should-Start: $named
-# Should-Stop: $named
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Start Tomcat (CloudStack).
-# Description: Start the Tomcat servlet engine that runs the CloudStack Management Server.
-### END INIT INFO
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-NAME=cloud-management
-DESC="CloudStack-specific Tomcat servlet engine"
-DAEMON=/usr/bin/jsvc
-CATALINA_HOME=@MSENVIRON@
-DEFAULT=@MSCONF@/tomcat6.conf
-JVM_TMP=/tmp/$NAME-temp
-
-# We have to explicitly set the HOME variable to the homedir from the user "cloud"
-# This is because various scripts run by the management server read the HOME variable
-# and fail when this init script is run manually.
-HOME=$(echo ~cloud)
-
-if [ `id -u` -ne 0 ]; then
- echo "You need root privileges to run this script"
- exit 1
-fi
-
-# Make sure tomcat is started with system locale
-if [ -r /etc/default/locale ]; then
- . /etc/default/locale
- export LANG
-fi
-
-. /lib/lsb/init-functions
-. /etc/default/rcS
-
-
-# The following variables can be overwritten in $DEFAULT
-
-# Run Tomcat 6 as this user ID
-TOMCAT6_USER=tomcat6
-
-# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
-# defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/java-1.6.0-openjdk-amd64/ /usr/lib/jvm/java-1.6.0-openjdk-i386/ /usr/lib/jvm/java-1.6.0-openjdk/ /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun"
-
-# Look for the right JVM to use
-for jdir in $JDK_DIRS; do
- if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
- JAVA_HOME="$jdir"
- fi
-done
-export JAVA_HOME
-
-# Directory for per-instance configuration files and webapps
-CATALINA_BASE=@MSENVIRON@
-
-# Use the Java security manager? (yes/no)
-TOMCAT6_SECURITY=no
-
-# Default Java options
-# Set java.awt.headless=true if JAVA_OPTS is not set so the
-# Xalan XSL transformer can work without X11 display on JDK 1.4+
-# It also looks like the default heap size of 64M is not enough for most cases
-# so the maximum heap size is set to 128M
-if [ -z "$JAVA_OPTS" ]; then
- JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
-fi
-
-# End of variables that can be overwritten in $DEFAULT
-
-# overwrite settings from default file
-if [ -f "$DEFAULT" ]; then
- . "$DEFAULT"
-fi
-
-if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then
- log_failure_msg "$NAME is not installed"
- exit 1
-fi
-
-[ -f "$DAEMON" ] || exit 0
-
-POLICY_CACHE="$CATALINA_BASE/work/catalina.policy"
-
-JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$JVM_TMP"
-
-# Set the JSP compiler if set in the tomcat6.default file
-if [ -n "$JSP_COMPILER" ]; then
- JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=$JSP_COMPILER"
-fi
-
-if [ "$TOMCAT6_SECURITY" = "yes" ]; then
- JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=$POLICY_CACHE"
-fi
-
-# Set juli LogManager if logging.properties is provided
-if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
- JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
-fi
-
-# Define other required variables
-CATALINA_PID="@PIDDIR@/$NAME.pid"
-BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
-JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"
-JSVC_CLASSPATH=$CLASSPATH:$JSVC_CLASSPATH
-
-# Look for Java Secure Sockets Extension (JSSE) JARs
-if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
- JSSE_HOME="${JAVA_HOME}/jre/"
-fi
-export JSSE_HOME
-
-case "$1" in
- start)
- if [ -z "$JAVA_HOME" ]; then
- log_failure_msg "no JDK found - please set JAVA_HOME"
- exit 1
- fi
-
- if [ ! -d "$CATALINA_BASE/conf" ]; then
- log_failure_msg "invalid CATALINA_BASE: $CATALINA_BASE"
- exit 1
- fi
-
- log_daemon_msg "Starting $DESC" "$NAME"
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
-
- # Regenerate POLICY_CACHE file
- umask 022
- echo "// AUTO-GENERATED FILE from /etc/tomcat6/policy.d/" \
- > "$POLICY_CACHE"
- echo "" >> "$POLICY_CACHE"
- if ls $CATALINA_BASE/conf/policy.d/*.policy > /dev/null 2>&1 ; then
- cat $CATALINA_BASE/conf/policy.d/*.policy \
- >> "$POLICY_CACHE"
- fi
-
- # Remove / recreate JVM_TMP directory
- rm -rf "$JVM_TMP"
- mkdir "$JVM_TMP" || {
- log_failure_msg "could not create JVM temporary directory"
- exit 1
- }
- chown $TOMCAT6_USER "$JVM_TMP"
- cd "$JVM_TMP"
-
-
- # fix storage issues on nfs mounts
- umask 000
- $DAEMON -user "$TOMCAT6_USER" -cp "$JSVC_CLASSPATH" \
- -outfile SYSLOG -errfile SYSLOG \
- -pidfile "$CATALINA_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
-
- sleep 5
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- log_end_msg 1
- else
- log_end_msg 0
- fi
- else
- log_progress_msg "(already running)"
- log_end_msg 0
- fi
- ;;
- stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user "$TOMCAT6_USER" --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- log_progress_msg "(not running)"
- else
- $DAEMON -cp "$JSVC_CLASSPATH" -pidfile "$CATALINA_PID" \
- -stop "$BOOTSTRAP_CLASS"
- fi
- rm -rf "$JVM_TMP"
- log_end_msg 0
- ;;
- status)
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
-
- if [ -f "$CATALINA_PID" ]; then
- log_success_msg "$DESC is not running, but pid file exists."
- exit 1
- else
- log_success_msg "$DESC is not running."
- exit 3
- fi
- else
- log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
- fi
- ;;
- restart|force-reload)
- if start-stop-daemon --test --stop --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- $0 stop
- sleep 1
- fi
- $0 start
- ;;
- try-restart)
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- $0 start
- fi
- ;;
- *)
- log_success_msg "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/client/pom.xml b/client/pom.xml
index 3b854e66f1e..1545bfa11f2 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -38,11 +38,11 @@
org.eclipse.jetty
- jetty-servlet
+ jetty-servlets
org.eclipse.jetty
- jetty-servlets
+ jetty-webapp
org.eclipse.jetty
@@ -52,14 +52,6 @@
org.eclipse.jetty
jetty-util
-
- org.eclipse.jetty
- jetty-webapp
-
-
- org.eclipse.jetty
- jetty-annotations
-
mysql
mysql-connector-java
@@ -69,43 +61,36 @@
org.apache.cloudstack
cloud-framework-spring-module
${project.version}
- runtime
org.apache.cloudstack
cloud-framework-spring-lifecycle
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-storage-volume-solidfire
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-storage-volume-cloudbyte
${project.version}
- runtime
org.apache.cloudstack
cloud-server
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-acl-static-role-based
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-acl-dynamic-role-based
${project.version}
- runtime
org.apache.cloudstack
@@ -116,175 +101,146 @@
org.apache.cloudstack
cloud-plugin-dedicated-resources
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-api-limit-account-based
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-api-discovery
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-user-authenticator-ldap
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-user-authenticator-md5
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-user-authenticator-pbkdf2
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-user-authenticator-plaintext
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-user-authenticator-saml2
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-user-authenticator-sha256salted
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-metrics
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-nvp
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-contrail
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-palo-alto
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-netscaler
${project.version}
- runtime
- org.apache.cloudstack
+ org.apache.cloudstack
cloud-plugin-network-ovs
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-elb
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-bigswitch
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-ssp
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-internallb
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-vxlan
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-opendaylight
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-vcs
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-vsp
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-hypervisor-xenserver
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-hypervisor-baremetal
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-hypervisor-ucs
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-hypervisor-ovm
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-hypervisor-ovm3
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-hypervisor-kvm
${project.version}
- runtime
org.mortbay.jetty
@@ -296,55 +252,46 @@
org.apache.cloudstack
cloud-plugin-hypervisor-hyperv
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-storage-allocator-random
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-planner-user-dispersing
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-planner-skip-heurestics
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-planner-user-concentrated-pod
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-planner-implicit-dedication
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-explicit-dedication
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-host-allocator-random
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-outofbandmanagement-driver-ipmitool
${project.version}
- runtime
org.apache.cloudstack
@@ -355,19 +302,16 @@
org.apache.cloudstack
cloud-mom-rabbitmq
${project.version}
- runtime
org.apache.cloudstack
cloud-mom-inmemory
${project.version}
- runtime
org.apache.cloudstack
cloud-mom-kafka
${project.version}
- runtime
org.apache.cloudstack
@@ -378,151 +322,126 @@
org.apache.cloudstack
cloud-framework-ipc
${project.version}
- runtime
org.apache.cloudstack
cloud-framework-quota
${project.version}
- runtime
org.apache.cloudstack
cloud-framework-rest
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-api
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-components-api
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-network
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-orchestration
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-schema
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-storage
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-storage-cache
${project.version}
- runtime
org.apache.cloudstack
cloud-controller-secondary-storage
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-storage-image
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-storage-datamotion
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-storage-snapshot
${project.version}
- runtime
org.apache.cloudstack
cloud-engine-storage-volume
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-storage-volume-default
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-storage-image-default
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-storage-image-s3
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-storage-image-swift
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-syslog-alerts
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-snmp-alerts
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-host-anti-affinity
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-api-solidfire-intg-test
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-network-globodns
${project.version}
- runtime
org.apache.cloudstack
cloud-plugin-database-quota
${project.version}
- runtime
org.apache.cloudstack
@@ -573,13 +492,23 @@
org.eclipse.jetty
jetty-maven-plugin
${cs.jetty.version}
-
+
mysql
mysql-connector-java
${cs.mysql.version}
+
+ org.bouncycastle
+ bcprov-jdk15on
+ ${cs.bcprov.version}
+
+
+ org.bouncycastle
+ bcpkix-jdk15on
+ ${cs.bcprov.version}
+
0
@@ -591,14 +520,13 @@
60000
- ${project.build.directory}/generated-webapp/WEB-INF/web.xml
- ${project.build.directory}/generated-webapp
+ ${project.build.directory}/classes/META-INF/webapp/WEB-INF/web.xml
+ ${project.build.directory}/classes/META-INF/webapp/
/client
- ${project.build.directory}/utilities/scripts/db/;${project.build.directory}/utilities/scripts/db/db/
+ ${project.build.directory}/conf/;${project.build.directory}/common;${project.build.directory}/utilities/scripts/db/;${project.build.directory}/utilities/scripts/db/db/
.*/cloud.*jar$|.*/classes/.*
-
log4j.configuration
@@ -618,12 +546,12 @@
-
+
+ file="${project.build.directory}/common/scripts/**" type="both"/>
@@ -665,7 +593,7 @@
-
+
@@ -676,7 +604,7 @@
-
+
@@ -693,7 +621,7 @@
test
@@ -708,11 +636,11 @@
-
+ todir="${basedir}/target/common/scripts">
@@ -746,7 +674,13 @@
org.bouncycastle
bcprov-jdk15on
false
- ${project.build.directory}
+ ${project.build.directory}/lib
+
+
+ org.bouncycastle
+ bcpkix-jdk15on
+ false
+ ${project.build.directory}/lib
@@ -783,7 +717,18 @@
junit:junit
+ com.tngtech.java:junit-dataprovider
+ org.mockito:mockito-all
+ org.hamcrest:hamcrest-all
+ org.powermock:powermock-module-junit4
+ org.powermock:powermock-api-mockito
+ org.springframework:spring-test
+ org.apache.tomcat.embed:tomcat-embed-core
+ org.apache.geronimo.specs:geronimo-servlet_3.0_spec
+ org.apache.geronimo.specs:geronimo-javamail_1.4_spec
org.bouncycastle:bcprov-jdk15on
+ org.bouncycastle:bcpkix-jdk15on
+ mysql:mysql-connector-java
@@ -809,6 +754,7 @@
META-INF/*.DSA
META-INF/*.RSA
META-INF/MANIFEST.MF
+ META-INF/maven/**
@@ -850,7 +796,7 @@
-
+
@@ -928,7 +874,6 @@
-
diff --git a/client/src/org/apache/cloudstack/ServerDaemon.java b/client/src/org/apache/cloudstack/ServerDaemon.java
index fb213e3d142..65e9a907cfd 100644
--- a/client/src/org/apache/cloudstack/ServerDaemon.java
+++ b/client/src/org/apache/cloudstack/ServerDaemon.java
@@ -18,175 +18,240 @@
//
package org.apache.cloudstack;
+import java.io.File;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.net.URL;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.servlet.DispatcherType;
+
import org.apache.commons.daemon.Daemon;
import org.apache.commons.daemon.DaemonContext;
import org.eclipse.jetty.jmx.MBeanContainer;
-import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.ForwardedRequestCustomizer;
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.NCSARequestLog;
-import org.eclipse.jetty.server.NetworkTrafficServerConnector;
import org.eclipse.jetty.server.RequestLog;
+import org.eclipse.jetty.server.SecureRequestCustomizer;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.SslConnectionFactory;
import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.RequestLogHandler;
+import org.eclipse.jetty.servlet.FilterHolder;
+import org.eclipse.jetty.servlets.GzipFilter;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
-import org.eclipse.jetty.util.thread.ThreadPool;
-import org.eclipse.jetty.webapp.Configuration;
+import org.eclipse.jetty.util.thread.ScheduledExecutorScheduler;
import org.eclipse.jetty.webapp.WebAppContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-import java.lang.management.ManagementFactory;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
+import com.cloud.utils.PropertiesUtil;
+import com.google.common.base.Strings;
/***
- * Daemon server class to start the embedded server, either through JSVC or directly inside a JAR.
- * Parameter to configure the jetty server are:
- * - jetty.port: to start jetty on the specific port (default: 8080)
- * - jetty.host: to bind to specific interface (default: null = all)
- * - jetty.requestlog: path to log file for requests (default: request.log)
+ * The ServerDaemon class implements the embedded server, it can be started either
+ * using JSVC or directly from the JAR along with additional jars not shaded in the uber-jar.
+ * Configuration parameters are read from server.properties file available on the classpath.
*/
public class ServerDaemon implements Daemon {
- private static final Logger logger = LoggerFactory.getLogger(ServerDaemon.class);
+ private static final Logger LOG = LoggerFactory.getLogger(ServerDaemon.class);
private static final String WEB_XML = "META-INF/webapp/WEB-INF/web.xml";
- private static final String REQUEST_LOG = "request.log";
- private Server jettyServer;
- private int port;
- private String bindInterface;
- private String requestLogFile;
+ /////////////////////////////////////////////////////
+ /////////////// Server Properties ///////////////////
+ /////////////////////////////////////////////////////
+
+ private static final String BIND_INTERFACE = "bind.interface";
+ private static final String CONTEXT_PATH = "context.path";
+ private static final String HTTP_PORT = "http.port";
+ private static final String HTTPS_ENABLE = "https.enable";
+ private static final String HTTPS_PORT = "https.port";
+ private static final String KEYSTORE_FILE = "https.keystore";
+ private static final String KEYSTORE_PASSWORD = "https.keystore.password";
+ private static final String WEBAPP_DIR = "webapp.dir";
+ private static final String ACCESS_LOG = "access.log";
+
+ ////////////////////////////////////////////////////////
+ /////////////// Server Configuration ///////////////////
+ ////////////////////////////////////////////////////////
+
+ private Server server;
+
+ private int httpPort = 8080;
+ private int httpsPort = 8443;
+ private boolean httpsEnable = false;
+ private String accessLogFile = "access.log";
+ private String bindInterface = "";
+ private String contextPath = "/client";
+ private String keystoreFile;
+ private String keystorePassword;
private String webAppLocation;
- public static void main(String... anArgs) throws Exception {
- ServerDaemon csServer = new ServerDaemon();
- csServer.init(null);
- csServer.start();
- csServer.join();
+ //////////////////////////////////////////////////
+ /////////////// Public methods ///////////////////
+ //////////////////////////////////////////////////
+
+ public static void main(final String... anArgs) throws Exception {
+ final ServerDaemon daemon = new ServerDaemon();
+ daemon.init(null);
+ daemon.start();
}
@Override
- public void init(DaemonContext context) {
- Properties props = System.getProperties();
- setPort(Integer.parseInt(props.getProperty("port", "8080")));
- setBindInterface(props.getProperty("host"));
- setWebAppLocation(props.getProperty("webapp"));
- setRequestLogFile(props.getProperty("requestlog", REQUEST_LOG));
- StringBuilder sb = new StringBuilder("Initializing server daemon on ");
- sb.append(bindInterface == null ? "*" : bindInterface);
- sb.append(":");
- sb.append(port);
- logger.info(sb.toString());
+ public void init(final DaemonContext context) {
+ final File confFile = PropertiesUtil.findConfigFile("server.properties");
+ if (confFile == null) {
+ LOG.warn(String.format("Server configuration file not found. Initializing server daemon on %s:%s, with https.enabled=%s, https.port=%s, context.path=%s",
+ bindInterface, httpPort, httpsEnable, httpsPort, contextPath));
+ return;
+ }
+
+ LOG.info("Server configuration file found: " + confFile.getAbsolutePath());
+
+ try {
+ final Properties properties = PropertiesUtil.loadFromFile(confFile);
+ if (properties == null) {
+ return;
+ }
+ setBindInterface(properties.getProperty(BIND_INTERFACE, ""));
+ setContextPath(properties.getProperty(CONTEXT_PATH, "/client"));
+ setHttpPort(Integer.valueOf(properties.getProperty(HTTP_PORT, "8080")));
+ setHttpsEnable(Boolean.valueOf(properties.getProperty(HTTPS_ENABLE, "false")));
+ setHttpsPort(Integer.valueOf(properties.getProperty(HTTPS_PORT, "8443")));
+ setKeystoreFile(properties.getProperty(KEYSTORE_FILE));
+ setKeystorePassword(properties.getProperty(KEYSTORE_PASSWORD));
+ setWebAppLocation(properties.getProperty(WEBAPP_DIR));
+ setAccessLogFile(properties.getProperty(ACCESS_LOG, "access.log"));
+ } catch (final IOException e) {
+ LOG.warn("Failed to load configuration from server.properties file", e);
+ }
+ LOG.info(String.format("Initializing server daemon on %s:%s, with https.enabled=%s, https.port=%s, context.path=%s",
+ bindInterface, httpPort, httpsEnable, httpsPort, contextPath));
}
@Override
public void start() throws Exception {
- jettyServer = new Server(createThreadPool());
+ // Thread pool
+ final QueuedThreadPool threadPool = new QueuedThreadPool();
+ threadPool.setMinThreads(10);
+ threadPool.setMaxThreads(500);
+
+ // Jetty Server
+ server = new Server(threadPool);
+
+ // Setup Scheduler
+ server.addBean(new ScheduledExecutorScheduler());
// Setup JMX
- MBeanContainer mbeanContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
- jettyServer.addBean(mbeanContainer);
+ final MBeanContainer mbeanContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
+ server.addBean(mbeanContainer);
- NetworkTrafficServerConnector connector = createConnector();
- jettyServer.addConnector(connector);
+ // HTTP config
+ final HttpConfiguration httpConfig = new HttpConfiguration();
+ httpConfig.addCustomizer( new ForwardedRequestCustomizer() );
+ httpConfig.setSecureScheme("https");
+ httpConfig.setSecurePort(httpsPort);
+ httpConfig.setOutputBufferSize(32768);
+ httpConfig.setRequestHeaderSize(8192);
+ httpConfig.setResponseHeaderSize(8192);
+ httpConfig.setSendServerVersion(false);
+ httpConfig.setSendDateHeader(false);
- // This webapp will use jsps and jstl. We need to enable the
- // AnnotationConfiguration in order to correctly
- // set up the jsp container
- Configuration.ClassList classlist = Configuration.ClassList
- .setServerDefault( jettyServer );
- classlist.addBefore(
- "org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
- "org.eclipse.jetty.annotations.AnnotationConfiguration" );
+ // HTTP Connector
+ final ServerConnector httpConnector = new ServerConnector(server, new HttpConnectionFactory(httpConfig));
+ httpConnector.setPort(httpPort);
+ httpConnector.setHost(bindInterface);
+ httpConnector.setIdleTimeout(30000);
+ server.addConnector(httpConnector);
+ // Setup handlers
+ server.setHandler(createHandlers());
+ // Extra config options
+ server.setStopAtShutdown(true);
- jettyServer.setHandler(createHandlers());
- jettyServer.setStopAtShutdown(true);
+ // Configure SSL
+ if (httpsEnable && !Strings.isNullOrEmpty(keystoreFile) && new File(keystoreFile).exists()) {
+ // SSL Context
+ final SslContextFactory sslContextFactory = new SslContextFactory();
+ // Define keystore path and passwords
+ sslContextFactory.setKeyStorePath(keystoreFile);
+ sslContextFactory.setKeyStorePassword(keystorePassword);
+ sslContextFactory.setKeyManagerPassword(keystorePassword);
- jettyServer.start();
- }
+ // HTTPS config
+ final HttpConfiguration httpsConfig = new HttpConfiguration(httpConfig);
+ httpsConfig.addCustomizer(new SecureRequestCustomizer());
- public void join() throws InterruptedException {
- jettyServer.join();
+ // HTTPS connector
+ final ServerConnector sslConnector = new ServerConnector(server,
+ new SslConnectionFactory(sslContextFactory, "http/1.1"),
+ new HttpConnectionFactory(httpsConfig));
+ sslConnector.setPort(httpsPort);
+ sslConnector.setHost(bindInterface);
+ server.addConnector(sslConnector);
+ }
+
+ server.start();
+ server.join();
}
@Override
public void stop() throws Exception {
- jettyServer.stop();
+ server.stop();
}
@Override
public void destroy() {
- jettyServer.destroy();
+ server.destroy();
}
- public void setPort(int port) {
- this.port = port;
- }
-
- public void setBindInterface(String bindInterface) {
- this.bindInterface = bindInterface;
- }
-
- public void setRequestLogFile(String requestLogFile) {
- this.requestLogFile = requestLogFile;
- }
-
- public void setWebAppLocation(String webAppLocation) {
- this.webAppLocation = webAppLocation;
- }
-
- private ThreadPool createThreadPool() {
- QueuedThreadPool threadPool = new QueuedThreadPool();
- threadPool.setMinThreads(10);
- threadPool.setMaxThreads(100);
- return threadPool;
- }
-
- private NetworkTrafficServerConnector createConnector() {
- NetworkTrafficServerConnector connector = new NetworkTrafficServerConnector(jettyServer);
- connector.setPort(port);
- connector.setHost(bindInterface);
- return connector;
- }
+ ///////////////////////////////////////////////////
+ /////////////// Private methods ///////////////////
+ ///////////////////////////////////////////////////
private HandlerCollection createHandlers() {
- WebAppContext webapp = new WebAppContext();
- webapp.setContextPath("/client");
+ final WebAppContext webApp = new WebAppContext();
+ webApp.setContextPath(contextPath);
+ webApp.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", "false");
- if (webAppLocation == null) {
- webapp.setWar(getShadedWarUrl());
+ final FilterHolder filter = webApp.addFilter(GzipFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
+ final Map params = new HashMap<>();
+ params.put("mimeTypes", "text/html,text/xml,text/css,text/plain,text/javascript,application/javascript,application/json,application/xml");
+ params.put("methods", "GET,POST");
+ params.put("deflateCompressionLevel", "9");
+ filter.setInitParameters(params);
+
+ if (Strings.isNullOrEmpty(webAppLocation)) {
+ webApp.setWar(getShadedWarUrl());
} else {
- webapp.setWar(webAppLocation);
+ webApp.setWar(webAppLocation);
}
- List handlers = new ArrayList<>();
- handlers.add(webapp);
-
- HandlerList contexts = new HandlerList();
- contexts.setHandlers(handlers.toArray(new Handler[0]));
-
- RequestLogHandler log = new RequestLogHandler();
+ final RequestLogHandler log = new RequestLogHandler();
log.setRequestLog(createRequestLog());
- HandlerCollection result = new HandlerCollection();
- result.setHandlers(new Handler[]{log, contexts});
+ final HandlerCollection handlerCollection = new HandlerCollection();
+ handlerCollection.addHandler(log);
+ handlerCollection.addHandler(webApp);
- return result;
+ return handlerCollection;
}
private RequestLog createRequestLog() {
- NCSARequestLog log = new NCSARequestLog();
- File logPath = new File(requestLogFile);
- File parentFile = logPath.getParentFile();
+ final NCSARequestLog log = new NCSARequestLog();
+ final File logPath = new File(accessLogFile);
+ final File parentFile = logPath.getParentFile();
if (parentFile != null) {
parentFile.mkdirs();
}
-
log.setFilename(logPath.getPath());
log.setAppend(true);
log.setLogTimeZone("GMT");
@@ -199,7 +264,47 @@ public class ServerDaemon implements Daemon {
}
private String getShadedWarUrl() {
- String urlStr = getResource(WEB_XML).toString();
+ final String urlStr = getResource(WEB_XML).toString();
return urlStr.substring(0, urlStr.length() - 15);
}
+
+ ///////////////////////////////////////////
+ /////////////// Setters ///////////////////
+ ///////////////////////////////////////////
+
+ public void setBindInterface(String bindInterface) {
+ this.bindInterface = bindInterface;
+ }
+
+ public void setHttpPort(int httpPort) {
+ this.httpPort = httpPort;
+ }
+
+ public void setHttpsPort(int httpsPort) {
+ this.httpsPort = httpsPort;
+ }
+
+ public void setContextPath(String contextPath) {
+ this.contextPath = contextPath;
+ }
+
+ public void setHttpsEnable(boolean httpsEnable) {
+ this.httpsEnable = httpsEnable;
+ }
+
+ public void setKeystoreFile(String keystoreFile) {
+ this.keystoreFile = keystoreFile;
+ }
+
+ public void setKeystorePassword(String keystorePassword) {
+ this.keystorePassword = keystorePassword;
+ }
+
+ public void setAccessLogFile(String accessLogFile) {
+ this.accessLogFile = accessLogFile;
+ }
+
+ public void setWebAppLocation(String webAppLocation) {
+ this.webAppLocation = webAppLocation;
+ }
}
diff --git a/client/tomcatconf/catalina.policy.in b/client/tomcatconf/catalina.policy.in
deleted file mode 100644
index 4bbfbf29058..00000000000
--- a/client/tomcatconf/catalina.policy.in
+++ /dev/null
@@ -1,180 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You under the Apache License, Version 2.0
-// (the "License"); you may not use this file except in compliance with
-// the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// ============================================================================
-// catalina.corepolicy - Security Policy Permissions for Tomcat 6
-//
-// This file contains a default set of security policies to be enforced (by the
-// JVM) when Catalina is executed with the "-security" option. In addition
-// to the permissions granted here, the following additional permissions are
-// granted to the codebase specific to each web application:
-//
-// * Read access to the document root directory
-//
-// $Id: catalina.policy 899134 2010-01-14 09:44:28Z rjung $
-// ============================================================================
-
-
-// ========== SYSTEM CODE PERMISSIONS =========================================
-
-
-// These permissions apply to javac
-grant codeBase "file:${java.home}/lib/-" {
- permission java.security.AllPermission;
-};
-
-// These permissions apply to all shared system extensions
-grant codeBase "file:${java.home}/jre/lib/ext/-" {
- permission java.security.AllPermission;
-};
-
-// These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre
-grant codeBase "file:${java.home}/../lib/-" {
- permission java.security.AllPermission;
-};
-
-// These permissions apply to all shared system extensions when
-// ${java.home} points at $JAVA_HOME/jre
-grant codeBase "file:${java.home}/lib/ext/-" {
- permission java.security.AllPermission;
-};
-
-
-// ========== CATALINA CODE PERMISSIONS =======================================
-
-
-// These permissions apply to the daemon code
-grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" {
- permission java.security.AllPermission;
-};
-
-// These permissions apply to the logging API
-grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
- permission java.util.PropertyPermission "java.util.logging.config.class", "read";
- permission java.util.PropertyPermission "java.util.logging.config.file", "read";
- permission java.io.FilePermission "${java.home}${file.separator}lib${file.separator}logging.properties", "read";
- permission java.lang.RuntimePermission "shutdownHooks";
- permission java.io.FilePermission "${catalina.base}${file.separator}conf${file.separator}logging.properties", "read";
- permission java.util.PropertyPermission "catalina.base", "read";
- permission java.util.logging.LoggingPermission "control";
- permission java.io.FilePermission "${catalina.base}${file.separator}logs", "read, write";
- permission java.io.FilePermission "${catalina.base}${file.separator}logs${file.separator}*", "read, write";
- permission java.lang.RuntimePermission "getClassLoader";
- permission java.lang.RuntimePermission "setContextClassLoader";
- // To enable per context logging configuration, permit read access to the appropriate file.
- // Be sure that the logging configuration is secure before enabling such access
- // eg for the examples web application:
- // permission java.io.FilePermission "${catalina.base}${file.separator}webapps${file.separator}examples${file.separator}WEB-INF${file.separator}classes${file.separator}logging.properties", "read";
-};
-
-// These permissions apply to the server startup code
-grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
- permission java.security.AllPermission;
-};
-
-// These permissions apply to the servlet API classes
-// and those that are shared across all class loaders
-// located in the "lib" directory
-grant codeBase "file:${catalina.home}/lib/-" {
- permission java.security.AllPermission;
-};
-
-
-// ========== WEB APPLICATION PERMISSIONS =====================================
-
-
-// These permissions are granted by default to all web applications
-// In addition, a web application will be given a read FilePermission
-// and JndiPermission for all files and directories in its document root.
-grant {
- // Required for JNDI lookup of named JDBC DataSource's and
- // javamail named MimePart DataSource used to send mail
- permission java.util.PropertyPermission "java.home", "read";
- permission java.util.PropertyPermission "java.naming.*", "read";
- permission java.util.PropertyPermission "javax.sql.*", "read";
-
- // OS Specific properties to allow read access
- permission java.util.PropertyPermission "os.name", "read";
- permission java.util.PropertyPermission "os.version", "read";
- permission java.util.PropertyPermission "os.arch", "read";
- permission java.util.PropertyPermission "file.separator", "read";
- permission java.util.PropertyPermission "path.separator", "read";
- permission java.util.PropertyPermission "line.separator", "read";
-
- // JVM properties to allow read access
- permission java.util.PropertyPermission "java.version", "read";
- permission java.util.PropertyPermission "java.vendor", "read";
- permission java.util.PropertyPermission "java.vendor.url", "read";
- permission java.util.PropertyPermission "java.class.version", "read";
- permission java.util.PropertyPermission "java.specification.version", "read";
- permission java.util.PropertyPermission "java.specification.vendor", "read";
- permission java.util.PropertyPermission "java.specification.name", "read";
-
- permission java.util.PropertyPermission "java.vm.specification.version", "read";
- permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
- permission java.util.PropertyPermission "java.vm.specification.name", "read";
- permission java.util.PropertyPermission "java.vm.version", "read";
- permission java.util.PropertyPermission "java.vm.vendor", "read";
- permission java.util.PropertyPermission "java.vm.name", "read";
-
- // Required for OpenJMX
- permission java.lang.RuntimePermission "getAttribute";
-
- // Allow read of JAXP compliant XML parser debug
- permission java.util.PropertyPermission "jaxp.debug", "read";
-
- // Precompiled JSPs need access to these packages.
- permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.el";
- permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
- permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";
-
- // Precompiled JSPs need access to these system properties.
- permission java.util.PropertyPermission "org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
- permission java.util.PropertyPermission "org.apache.el.parser.COERCE_TO_ZERO", "read";
-};
-
-
-// You can assign additional permissions to particular web applications by
-// adding additional "grant" entries here, based on the code base for that
-// application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files.
-//
-// Different permissions can be granted to JSP pages, classes loaded from
-// the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/
-// directory, or even to individual jar files in the /WEB-INF/lib/ directory.
-//
-// For instance, assume that the standard "examples" application
-// included a JDBC driver that needed to establish a network connection to the
-// corresponding database and used the scrape taglib to get the weather from
-// the NOAA web server. You might create a "grant" entries like this:
-//
-// The permissions granted to the context root directory apply to JSP pages.
-// grant codeBase "file:${catalina.home}/webapps/examples/-" {
-// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
-// permission java.net.SocketPermission "*.noaa.gov:80", "connect";
-// };
-//
-// The permissions granted to the context WEB-INF/classes directory
-// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" {
-// };
-//
-// The permission granted to your JDBC driver
-// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar!/-" {
-// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
-// };
-// The permission granted to the scrape taglib
-// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar!/-" {
-// permission java.net.SocketPermission "*.noaa.gov:80", "connect";
-// };
-
diff --git a/client/tomcatconf/catalina.properties.in b/client/tomcatconf/catalina.properties.in
deleted file mode 100644
index e0baf61261d..00000000000
--- a/client/tomcatconf/catalina.properties.in
+++ /dev/null
@@ -1,81 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#
-# List of comma-separated packages that start with or equal this string
-# will cause a security exception to be thrown when
-# passed to checkPackageAccess unless the
-# corresponding RuntimePermission ("accessClassInPackage."+package) has
-# been granted.
-package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
-#
-# List of comma-separated packages that start with or equal this string
-# will cause a security exception to be thrown when
-# passed to checkPackageDefinition unless the
-# corresponding RuntimePermission ("defineClassInPackage."+package) has
-# been granted.
-#
-# by default, no packages are restricted for definition, and none of
-# the class loaders supplied with the JDK call checkPackageDefinition.
-#
-package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
-
-#
-#
-# List of comma-separated paths defining the contents of the "common"
-# classloader. Prefixes should be used to define what is the repository type.
-# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
-# If left as blank,the JVM system loader will be used as Catalina's "common"
-# loader.
-# Examples:
-# "foo": Add this folder as a class repository
-# "foo/*.jar": Add all the JARs of the specified folder as class
-# repositories
-# "foo/bar.jar": Add bar.jar as a class repository
-common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,/usr/share/java/mysql-connector-java.jar,/usr/share/cloudstack-mysql-ha/lib/*.jar
-
-#
-# List of comma-separated paths defining the contents of the "server"
-# classloader. Prefixes should be used to define what is the repository type.
-# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
-# If left as blank, the "common" loader will be used as Catalina's "server"
-# loader.
-# Examples:
-# "foo": Add this folder as a class repository
-# "foo/*.jar": Add all the JARs of the specified folder as class
-# repositories
-# "foo/bar.jar": Add bar.jar as a class repository
-server.loader=
-
-#
-# List of comma-separated paths defining the contents of the "shared"
-# classloader. Prefixes should be used to define what is the repository type.
-# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
-# the "common" loader will be used as Catalina's "shared" loader.
-# Examples:
-# "foo": Add this folder as a class repository
-# "foo/*.jar": Add all the JARs of the specified folder as class
-# repositories
-# "foo/bar.jar": Add bar.jar as a class repository
-# Please note that for single jars, e.g. bar.jar, you need the URL form
-# starting with file:.
-shared.loader=
-
-#
-# String cache configuration.
-tomcat.util.buf.StringCache.byte.enabled=true
-#tomcat.util.buf.StringCache.char.enabled=true
-#tomcat.util.buf.StringCache.trainThreshold=500000
-#tomcat.util.buf.StringCache.cacheSize=5000
diff --git a/client/tomcatconf/classpath.conf.in b/client/tomcatconf/classpath.conf.in
deleted file mode 100644
index ecdd12a630e..00000000000
--- a/client/tomcatconf/classpath.conf.in
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-SYSTEMJARS="@SYSTEMJARS@"
-SCP=$(build-classpath $SYSTEMJARS 2>/dev/null) ; if [ $? != 0 ] ; then export SCP="@SYSTEMCLASSPATH@" ; fi
-MCP="@MSCLASSPATH@"
-DCP="@DEPSCLASSPATH@"
-CLASSPATH=$SCP:$DCP:$MCP:@MSCONF@:@SETUPDATADIR@
-for jarfile in "@PREMIUMJAVADIR@"/* ; do
- if [ ! -e "$jarfile" ] ; then continue ; fi
- CLASSPATH=$jarfile:$CLASSPATH
-done
-for plugin in "@PLUGINJAVADIR@"/* ; do
- if [ ! -e "$plugin" ] ; then continue ; fi
- CLASSPATH=$plugin:$CLASSPATH
-done
-for vendorconf in "@MSCONF@"/vendor/* ; do
- if [ ! -d "$vendorconf" ] ; then continue ; fi
- CLASSPATH=$vendorconf:$CLASSPATH
-done
-export CLASSPATH
-if ([ -z "$JAVA_HOME" ] || [ ! -d "$JAVA_HOME" ]) && [ -d /usr/lib/jvm/jre-1.8.0 ]; then
- export JAVA_HOME=/usr/lib/jvm/jre-1.8.0
-fi
-PATH=$JAVA_HOME/bin:/sbin:/usr/sbin:$PATH
-export PATH
diff --git a/client/tomcatconf/context.xml.in b/client/tomcatconf/context.xml.in
deleted file mode 100644
index a78215c7c21..00000000000
--- a/client/tomcatconf/context.xml.in
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
- WEB-INF/web.xml
-
-
-
-
-
-
-
-
diff --git a/client/tomcatconf/logging.properties.in b/client/tomcatconf/logging.properties.in
deleted file mode 100644
index 68be2d7f457..00000000000
--- a/client/tomcatconf/logging.properties.in
+++ /dev/null
@@ -1,64 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
-
-.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
-
-############################################################
-# Handler specific properties.
-# Describes specific configuration info for Handlers.
-############################################################
-
-1catalina.org.apache.juli.FileHandler.level = FINE
-1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
-1catalina.org.apache.juli.FileHandler.prefix = catalina.
-
-2localhost.org.apache.juli.FileHandler.level = FINE
-2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
-2localhost.org.apache.juli.FileHandler.prefix = localhost.
-
-3manager.org.apache.juli.FileHandler.level = FINE
-3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
-3manager.org.apache.juli.FileHandler.prefix = manager.
-
-4host-manager.org.apache.juli.FileHandler.level = FINE
-4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
-4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
-
-java.util.logging.ConsoleHandler.level = FINE
-java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
-
-
-############################################################
-# Facility specific properties.
-# Provides extra control for each logger.
-############################################################
-
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
-
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
-
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler
-
-# For example, set the com.xyz.foo logger to only log SEVERE
-# messages:
-#org.apache.catalina.startup.ContextConfig.level = FINE
-#org.apache.catalina.startup.HostConfig.level = FINE
-#org.apache.catalina.session.ManagerBase.level = FINE
-#org.apache.catalina.core.AprLifecycleListener.level=FINE
diff --git a/client/tomcatconf/server-nonssl.xml.in b/client/tomcatconf/server-nonssl.xml.in
deleted file mode 100755
index 4272a28428b..00000000000
--- a/client/tomcatconf/server-nonssl.xml.in
+++ /dev/null
@@ -1,149 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/client/tomcatconf/server-ssl.xml.in b/client/tomcatconf/server-ssl.xml.in
deleted file mode 100755
index 8368a65c3bc..00000000000
--- a/client/tomcatconf/server-ssl.xml.in
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/client/tomcatconf/server7-nonssl.xml.in b/client/tomcatconf/server7-nonssl.xml.in
deleted file mode 100755
index 6e6a7b28bc9..00000000000
--- a/client/tomcatconf/server7-nonssl.xml.in
+++ /dev/null
@@ -1,149 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/client/tomcatconf/server7-ssl.xml.in b/client/tomcatconf/server7-ssl.xml.in
deleted file mode 100755
index d4fe899b57a..00000000000
--- a/client/tomcatconf/server7-ssl.xml.in
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/client/tomcatconf/tomcat-users.xml.in b/client/tomcatconf/tomcat-users.xml.in
deleted file mode 100644
index 81422a02892..00000000000
--- a/client/tomcatconf/tomcat-users.xml.in
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/client/tomcatconf/tomcat6-nonssl.conf.in b/client/tomcatconf/tomcat6-nonssl.conf.in
deleted file mode 100644
index 3f08c906660..00000000000
--- a/client/tomcatconf/tomcat6-nonssl.conf.in
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-
-# System-wide configuration file for tomcat6 services
-# This will be sourced by tomcat6 and any secondary service
-# Values will be overridden by service-specific configuration
-# files in /etc/sysconfig
-#
-# Use this one to change default values for all services
-# Change the service specific ones to affect only one service
-# (see, for instance, /etc/sysconfig/tomcat6)
-#
-
-# Where your java installation lives
-#JAVA_HOME="/usr/lib/jvm/java"
-
-# Where your tomcat installation lives
-CATALINA_BASE="@MSENVIRON@"
-CATALINA_HOME="@MSENVIRON@"
-JASPER_HOME="@MSENVIRON@"
-CATALINA_TMPDIR="@MSENVIRON@/temp"
-
-# You can pass some parameters to java here if you wish to
-#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"
-
-# Use JAVA_OPTS to set java.library.path for libtcnative.so
-#JAVA_OPTS="-Djava.library.path=/usr/lib64"
-JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=@MSLOGDIR@ -XX:PermSize=512M -XX:MaxPermSize=800m -Djava.security.properties=/etc/cloudstack/management/java.security.ciphers"
-
-# What user should run tomcat
-TOMCAT_USER="@MSUSER@"
-# Do not remove the following line
-TOMCAT6_USER="$TOMCAT_USER"
-
-TOMCAT_LOG="@MSLOGDIR@/catalina.out"
-
-# You can change your tomcat locale here
-#LANG="en_US"
-
-# Run tomcat under the Java Security Manager
-SECURITY_MANAGER="false"
-
-# Time to wait in seconds, before killing process
-SHUTDOWN_WAIT="30"
-
-# Whether to annoy the user with "attempting to shut down" messages or not
-SHUTDOWN_VERBOSE="false"
-
-# Set the TOMCAT_PID location
-CATALINA_PID="@PIDDIR@/@PACKAGE@-management.pid"
-
-# Connector port is 8080 for this tomcat6 instance
-#CONNECTOR_PORT="8080"
-
-# We pick up the classpath in the next line
-
-dummy=1 ; . @MSCONF@/classpath.conf
diff --git a/client/tomcatconf/tomcat6-ssl.conf.in b/client/tomcatconf/tomcat6-ssl.conf.in
deleted file mode 100644
index 1d6f59b0787..00000000000
--- a/client/tomcatconf/tomcat6-ssl.conf.in
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# System-wide configuration file for tomcat6 services
-# This will be sourced by tomcat6 and any secondary service
-# Values will be overridden by service-specific configuration
-# files in /etc/sysconfig
-#
-# Use this one to change default values for all services
-# Change the service specific ones to affect only one service
-# (see, for instance, /etc/sysconfig/tomcat6)
-#
-
-# Where your java installation lives
-#JAVA_HOME="/usr/lib/jvm/java"
-
-# Where your tomcat installation lives
-CATALINA_BASE="@MSENVIRON@"
-CATALINA_HOME="@MSENVIRON@"
-JASPER_HOME="@MSENVIRON@"
-CATALINA_TMPDIR="@MSENVIRON@/temp"
-
-# You can pass some parameters to java here if you wish to
-#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"
-
-# Use JAVA_OPTS to set java.library.path for libtcnative.so
-#JAVA_OPTS="-Djava.library.path=/usr/lib64"
-JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Djavax.net.ssl.trustStore=/etc/cloudstack/management/cloud.jks -Djavax.net.ssl.trustStorePassword=vmops.com -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=@MSLOGDIR@ -XX:MaxPermSize=800m -XX:PermSize=512M -Djava.security.properties=/etc/cloudstack/management/java.security.ciphers"
-
-# What user should run tomcat
-TOMCAT_USER="@MSUSER@"
-# Do not remove the following line
-TOMCAT6_USER="$TOMCAT_USER"
-
-TOMCAT_LOG="@MSLOGDIR@/catalina.out"
-
-# You can change your tomcat locale here
-#LANG="en_US"
-
-# Run tomcat under the Java Security Manager
-SECURITY_MANAGER="false"
-
-# Time to wait in seconds, before killing process
-SHUTDOWN_WAIT="30"
-
-# Whether to annoy the user with "attempting to shut down" messages or not
-SHUTDOWN_VERBOSE="false"
-
-# Set the TOMCAT_PID location
-CATALINA_PID="@PIDDIR@/@PACKAGE@-management.pid"
-
-# Connector port is 8080 for this tomcat6 instance
-#CONNECTOR_PORT="8080"
-
-# We pick up the classpath in the next line
-
-dummy=1 ; . @MSCONF@/classpath.conf
diff --git a/client/tomcatconf/web.xml.in b/client/tomcatconf/web.xml.in
deleted file mode 100644
index 8645a64da42..00000000000
--- a/client/tomcatconf/web.xml.in
+++ /dev/null
@@ -1,1187 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- default
- org.apache.catalina.servlets.DefaultServlet
-
- debug
- 0
-
-
- listings
- false
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- jsp
- org.apache.jasper.servlet.JspServlet
-
- fork
- false
-
-
- xpoweredBy
- false
-
- 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- default
- /
-
-
-
-
-
-
-
- jsp
- *.jsp
-
-
-
- jsp
- *.jspx
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 30
-
-
-
-
-
-
-
-
-
-
-
- abs
- audio/x-mpeg
-
-
- ai
- application/postscript
-
-
- aif
- audio/x-aiff
-
-
- aifc
- audio/x-aiff
-
-
- aiff
- audio/x-aiff
-
-
- aim
- application/x-aim
-
-
- art
- image/x-jg
-
-
- asf
- video/x-ms-asf
-
-
- asx
- video/x-ms-asf
-
-
- au
- audio/basic
-
-
- avi
- video/x-msvideo
-
-
- avx
- video/x-rad-screenplay
-
-
- bcpio
- application/x-bcpio
-
-
- bin
- application/octet-stream
-
-
- bmp
- image/bmp
-
-
- body
- text/html
-
-
- cdf
- application/x-cdf
-
-
- cer
- application/x-x509-ca-cert
-
-
- class
- application/java
-
-
- cpio
- application/x-cpio
-
-
- csh
- application/x-csh
-
-
- css
- text/css
-
-
- dib
- image/bmp
-
-
- doc
- application/msword
-
-
- dtd
- application/xml-dtd
-
-
- dv
- video/x-dv
-
-
- dvi
- application/x-dvi
-
-
- eps
- application/postscript
-
-
- etx
- text/x-setext
-
-
- exe
- application/octet-stream
-
-
- gif
- image/gif
-
-
- gtar
- application/x-gtar
-
-
- gz
- application/x-gzip
-
-
- hdf
- application/x-hdf
-
-
- hqx
- application/mac-binhex40
-
-
- htc
- text/x-component
-
-
- htm
- text/html
-
-
- html
- text/html
-
-
- hqx
- application/mac-binhex40
-
-
- ief
- image/ief
-
-
- jad
- text/vnd.sun.j2me.app-descriptor
-
-
- jar
- application/java-archive
-
-
- java
- text/plain
-
-
- jnlp
- application/x-java-jnlp-file
-
-
- jpe
- image/jpeg
-
-
- jpeg
- image/jpeg
-
-
- jpg
- image/jpeg
-
-
- js
- text/javascript
-
-
- jsf
- text/plain
-
-
- jspf
- text/plain
-
-
- kar
- audio/x-midi
-
-
- latex
- application/x-latex
-
-
- m3u
- audio/x-mpegurl
-
-
- mac
- image/x-macpaint
-
-
- man
- application/x-troff-man
-
-
- mathml
- application/mathml+xml
-
-
- me
- application/x-troff-me
-
-
- mid
- audio/x-midi
-
-
- midi
- audio/x-midi
-
-
- mif
- application/x-mif
-
-
- mov
- video/quicktime
-
-
- movie
- video/x-sgi-movie
-
-
- mp1
- audio/x-mpeg
-
-
- mp2
- audio/x-mpeg
-
-
- mp3
- audio/x-mpeg
-
-
- mp4
- video/mp4
-
-
- mpa
- audio/x-mpeg
-
-
- mpe
- video/mpeg
-
-
- mpeg
- video/mpeg
-
-
- mpega
- audio/x-mpeg
-
-
- mpg
- video/mpeg
-
-
- mpv2
- video/mpeg2
-
-
- ms
- application/x-wais-source
-
-
- nc
- application/x-netcdf
-
-
- oda
- application/oda
-
-
-
- odb
- application/vnd.oasis.opendocument.database
-
-
-
- odc
- application/vnd.oasis.opendocument.chart
-
-
-
- odf
- application/vnd.oasis.opendocument.formula
-
-
-
- odg
- application/vnd.oasis.opendocument.graphics
-
-
-
- odi
- application/vnd.oasis.opendocument.image
-
-
-
- odm
- application/vnd.oasis.opendocument.text-master
-
-
-
- odp
- application/vnd.oasis.opendocument.presentation
-
-
-
- ods
- application/vnd.oasis.opendocument.spreadsheet
-
-
-
- odt
- application/vnd.oasis.opendocument.text
-
-
- ogg
- application/ogg
-
-
-
- otg
- application/vnd.oasis.opendocument.graphics-template
-
-
-
- oth
- application/vnd.oasis.opendocument.text-web
-
-
-
- otp
- application/vnd.oasis.opendocument.presentation-template
-
-
-
- ots
- application/vnd.oasis.opendocument.spreadsheet-template
-
-
-
- ott
- application/vnd.oasis.opendocument.text-template
-
-
- pbm
- image/x-portable-bitmap
-
-
- pct
- image/pict
-
-
- pdf
- application/pdf
-
-
- pgm
- image/x-portable-graymap
-
-
- pic
- image/pict
-
-
- pict
- image/pict
-
-
- pls
- audio/x-scpls
-
-
- png
- image/png
-
-
- pnm
- image/x-portable-anymap
-
-
- pnt
- image/x-macpaint
-
-
- ppm
- image/x-portable-pixmap
-
-
- ppt
- application/vnd.ms-powerpoint
-
-
- pps
- application/vnd.ms-powerpoint
-
-
- ps
- application/postscript
-
-
- psd
- image/x-photoshop
-
-
- qt
- video/quicktime
-
-
- qti
- image/x-quicktime
-
-
- qtif
- image/x-quicktime
-
-
- ras
- image/x-cmu-raster
-
-
- rdf
- application/rdf+xml
-
-
- rgb
- image/x-rgb
-
-
- rm
- application/vnd.rn-realmedia
-
-
- roff
- application/x-troff
-
-
- rtf
- application/rtf
-
-
- rtx
- text/richtext
-
-
- sh
- application/x-sh
-
-
- shar
- application/x-shar
-
-
-
- smf
- audio/x-midi
-
-
- sit
- application/x-stuffit
-
-
- snd
- audio/basic
-
-
- src
- application/x-wais-source
-
-
- sv4cpio
- application/x-sv4cpio
-
-
- sv4crc
- application/x-sv4crc
-
-
- svg
- image/svg+xml
-
-
- svgz
- image/svg+xml
-
-
- swf
- application/x-shockwave-flash
-
-
- t
- application/x-troff
-
-
- tar
- application/x-tar
-
-
- tcl
- application/x-tcl
-
-
- tex
- application/x-tex
-
-
- texi
- application/x-texinfo
-
-
- texinfo
- application/x-texinfo
-
-
- tif
- image/tiff
-
-
- tiff
- image/tiff
-
-
- tr
- application/x-troff
-
-
- tsv
- text/tab-separated-values
-
-
- txt
- text/plain
-
-
- ulw
- audio/basic
-
-
- ustar
- application/x-ustar
-
-
- vxml
- application/voicexml+xml
-
-
- xbm
- image/x-xbitmap
-
-
- xht
- application/xhtml+xml
-
-
- xhtml
- application/xhtml+xml
-
-
- xls
- application/vnd.ms-excel
-
-
- xml
- application/xml
-
-
- xpm
- image/x-xpixmap
-
-
- xsl
- application/xml
-
-
- xslt
- application/xslt+xml
-
-
- xul
- application/vnd.mozilla.xul+xml
-
-
- xwd
- image/x-xwindowdump
-
-
- vsd
- application/x-visio
-
-
- wav
- audio/x-wav
-
-
-
- wbmp
- image/vnd.wap.wbmp
-
-
-
- wml
- text/vnd.wap.wml
-
-
-
- wmlc
- application/vnd.wap.wmlc
-
-
-
- wmls
- text/vnd.wap.wmlscript
-
-
-
- wmlscriptc
- application/vnd.wap.wmlscriptc
-
-
- wmv
- video/x-ms-wmv
-
-
- wrl
- x-world/x-vrml
-
-
- wspolicy
- application/wspolicy+xml
-
-
- Z
- application/x-compress
-
-
- z
- application/x-compress
-
-
- zip
- application/zip
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index.html
- index.htm
-
-
-
diff --git a/core/pom.xml b/core/pom.xml
index afd86d471fc..469731177b3 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -50,7 +50,7 @@
org.apache.commons
commons-compress
- 1.12
+ 1.14
diff --git a/debian/cloudstack-agent.postinst b/debian/cloudstack-agent.postinst
old mode 100644
new mode 100755
diff --git a/debian/cloudstack-management.install b/debian/cloudstack-management.install
index 353813dc2ac..bb241fbec37 100644
--- a/debian/cloudstack-management.install
+++ b/debian/cloudstack-management.install
@@ -17,8 +17,8 @@
/etc/cloudstack/management/ehcache.xml
/etc/cloudstack/management/db.properties
-/etc/cloudstack/management/web.xml
/etc/cloudstack/management/environment.properties
+/etc/cloudstack/management/server.properties
/etc/cloudstack/management/java.security.ciphers
/etc/cloudstack/management/log4j-cloud.xml
/etc/default/cloudstack-management
@@ -26,8 +26,6 @@
/etc/security/limits.d/cloudstack-limits.conf
/etc/sudoers.d/cloudstack
/var/cache/cloudstack/management
-/var/cache/cloudstack/management/work
-/var/cache/cloudstack/management/temp
/var/log/cloudstack/management
/var/lib/cloudstack/mnt
/var/lib/cloudstack/management
diff --git a/debian/cloudstack-management.postinst b/debian/cloudstack-management.postinst
old mode 100644
new mode 100755
index 4caeab42687..b2a1c900a73
--- a/debian/cloudstack-management.postinst
+++ b/debian/cloudstack-management.postinst
@@ -29,8 +29,6 @@ if [ "$1" = configure ]; then
rm -fr /var/cache/cloudstack/management/work/*
for i in /var/cache/cloudstack/management \
- /var/cache/cloudstack/management/work \
- /var/cache/cloudstack/management/temp \
/var/log/cloudstack/management \
/var/lib/cloudstack/management
do
@@ -57,6 +55,9 @@ if [ "$1" = configure ]; then
chmod 0640 ${CONFDIR}/${DBPROPS}
chgrp cloud ${CONFDIR}/${DBPROPS}
+ chown -R cloud:cloud /var/log/cloudstack/management
+
+ ln -s ${CONFDIR}/log4j-cloud.xml ${CONFDIR}/log4j.xml
# Add jdbc MySQL driver settings to db.properties if not present
grep -s -q "db.cloud.driver=jdbc:mysql" ${CONFDIR}/${DBPROPS} || sed -i -e "\$adb.cloud.driver=jdbc:mysql" ${CONFDIR}/${DBPROPS}
diff --git a/packaging/fedora20/cloudstack-sccs b/debian/cloudstack-management.preinst
old mode 100644
new mode 100755
similarity index 65%
rename from packaging/fedora20/cloudstack-sccs
rename to debian/cloudstack-management.preinst
index e05d372c7fe..ebb98522d6f
--- a/packaging/fedora20/cloudstack-sccs
+++ b/debian/cloudstack-management.preinst
@@ -17,4 +17,16 @@
# specific language governing permissions and limitations
# under the License.
-cat /usr/share/cloudstack-common/scripts/gitrev.txt
+set -e
+
+if [ "$1" = upgrade ]; then
+ # Remove old tomcat symlinks and old env file
+ if [ -L "/usr/share/cloudstack-management/lib" ]
+ then
+ rm -f /usr/share/cloudstack-management/bin
+ rm -f /usr/share/cloudstack-management/lib
+ rm -f /usr/share/cloudstack-management/temp
+ rm -f /usr/share/cloudstack-management/work
+ rm -f /etc/default/cloudstack-management
+ fi
+fi
diff --git a/debian/cloudstack-marvin.postinst b/debian/cloudstack-marvin.postinst
old mode 100644
new mode 100755
diff --git a/debian/cloudstack-usage.postinst b/debian/cloudstack-usage.postinst
old mode 100644
new mode 100755
diff --git a/debian/control b/debian/control
index 971b0a8e727..009ed20a9bc 100644
--- a/debian/control
+++ b/debian/control
@@ -15,7 +15,7 @@ Description: A common package which contains files which are shared by several C
Package: cloudstack-management
Architecture: all
-Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), sudo, jsvc, python-mysql.connector, libmysql-java, augeas-tools, mysql-client, adduser, bzip2, ipmitool, lsb-release, init-system-helpers (>= 1.14~)
+Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime, cloudstack-common (= ${source:Version}), sudo, jsvc, python-mysql.connector, libmysql-java, augeas-tools, mysql-client, adduser, bzip2, ipmitool, lsb-release, init-system-helpers (>= 1.14~)
Conflicts: cloud-server, cloud-client, cloud-client-ui
Description: CloudStack server library
The CloudStack management server
@@ -37,11 +37,6 @@ Description: CloudStack usage monitor
The CloudStack usage monitor provides usage accounting across the entire cloud for
cloud operators to charge based on usage parameters.
-Package: cloudstack-cli
-Architecture: all
-Depends: ${misc:Depends}, cloudstack-common (= ${source:Version})
-Description: The CloudStack CLI called CloudMonkey
-
Package: cloudstack-docs
Architecture: all
Depends: ${misc:Depends}
diff --git a/debian/rules b/debian/rules
index 6fc10ad9aec..a41b3f9c2b8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -13,7 +13,7 @@ override_dh_auto_configure:
echo VERSION=${VERSION} >> replace.properties.tmp
override_dh_auto_build:
- mvn -T C1.5 clean package -Psystemvm,developer -Dsystemvm \
+ mvn clean package -Psystemvm,developer -Dsystemvm \
-Dcs.replace.properties=replace.properties.tmp \
-Dmaven.repo.local=$(HOME)/.m2/repository \
${ACS_BUILD_OPTS}
@@ -66,23 +66,19 @@ override_dh_auto_install:
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/security/limits.d/
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/sudoers.d/
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-management
- mkdir $(DESTDIR)/usr/share/$(PACKAGE)-management/setup
+ mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-management/lib
+ mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-management/setup
mkdir $(DESTDIR)/var/log/$(PACKAGE)/management
mkdir $(DESTDIR)/var/cache/$(PACKAGE)/management
- mkdir $(DESTDIR)/var/cache/$(PACKAGE)/management/work
- mkdir $(DESTDIR)/var/cache/$(PACKAGE)/management/temp
mkdir $(DESTDIR)/var/log/$(PACKAGE)/ipallocator
mkdir $(DESTDIR)/var/lib/$(PACKAGE)/management
mkdir $(DESTDIR)/var/lib/$(PACKAGE)/mnt
cp -r client/target/utilities/scripts/db/* $(DESTDIR)/usr/share/$(PACKAGE)-management/setup/
+ cp -r client/target/classes/META-INF/webapp $(DESTDIR)/usr/share/$(PACKAGE)-management/webapp
cp server/target/conf/* $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server/
cp client/target/conf/* $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/
- cp client/target/cloud-client-ui-$(VERSION).jar $(DESTDIR)/usr/share/$(PACKAGE)-management/
- # To have a uniq name across versions for the startup script
- ln -s cloud-client-ui-$(VERSION).jar $(DESTDIR)/usr/share/$(PACKAGE)-management/cloud-management-server.jar
- cp client/target/bcprov-jdk15on-1.55.jar $(DESTDIR)/usr/share/$(PACKAGE)-management/
- # To make jetty happy from the 1st line of log
- ln -s log4j-cloud.xml $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/log4j.xml
+ cp client/target/cloud-client-ui-$(VERSION).jar $(DESTDIR)/usr/share/$(PACKAGE)-management/lib/cloudstack-$(VERSION).jar
+ cp client/target/lib/*jar $(DESTDIR)/usr/share/$(PACKAGE)-management/lib/
# nast hack for a couple of configuration files
mv $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server/cloudstack-limits.conf $(DESTDIR)/$(SYSCONFDIR)/security/limits.d/
@@ -95,12 +91,10 @@ override_dh_auto_install:
# This should all be in /etc/cloudstack/management
ln -s ../../..$(SYSCONFDIR)/$(PACKAGE)/management $(DESTDIR)/usr/share/$(PACKAGE)-management/conf
ln -s ../../../var/log/$(PACKAGE)/management $(DESTDIR)/usr/share/$(PACKAGE)-management/logs
- ln -s ../../../var/cache/$(PACKAGE)/management/temp $(DESTDIR)/usr/share/$(PACKAGE)-management/temp
- ln -s ../../../var/cache/$(PACKAGE)/management/work $(DESTDIR)/usr/share/$(PACKAGE)-management/work
install -d -m0755 debian/$(PACKAGE)-management/lib/systemd/system
- install -m0644 packaging/systemd/$(PACKAGE)-management.service.ubuntu debian/$(PACKAGE)-management/lib/systemd/system/$(PACKAGE)-management.service
- install -m0644 packaging/systemd/$(PACKAGE)-management.default.ubuntu $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-management
+ install -m0644 packaging/systemd/$(PACKAGE)-management.service debian/$(PACKAGE)-management/lib/systemd/system/$(PACKAGE)-management.service
+ install -m0644 packaging/systemd/$(PACKAGE)-management.default $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-management
# cloudstack-common
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-common
@@ -155,5 +149,8 @@ override_dh_installinit:
override_dh_systemd_enable:
dh_systemd_enable -pcloudstack-management -pcloudstack-agent -pcloudstack-usage
+override_dh_strip_nondeterminism:
+ # Disable dh_strip_nondeterminism to speed up the build
+
override_dh_installdocs:
dh_installdocs -A tools/whisker/LICENSE tools/whisker/NOTICE INSTALL.md
diff --git a/engine/api/pom.xml b/engine/api/pom.xml
index 9dc53bdca19..e11d70e25e9 100644
--- a/engine/api/pom.xml
+++ b/engine/api/pom.xml
@@ -35,21 +35,6 @@
cloud-api
${project.version}
-
- org.apache.cxf
- cxf-bundle-jaxrs
- 2.7.18
-
-
- org.eclipse.jetty
- jetty-server
-
-
- com.sun.xml.bind
- jaxb-impl
-
-
-
org.apache.cloudstack
cloud-framework-rest
diff --git a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
index ea71a34dbb1..2ebfeb5dd67 100644
--- a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
@@ -42,6 +42,7 @@ import javax.naming.ConfigurationException;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
+import org.apache.cloudstack.ca.CAManager;
import org.apache.cloudstack.framework.config.ConfigDepot;
import org.apache.cloudstack.framework.config.ConfigKey;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
@@ -126,6 +127,8 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
private OutOfBandManagementDao outOfBandManagementDao;
@Inject
private HAConfigDao haConfigDao;
+ @Inject
+ private CAManager caService;
protected ClusteredAgentManagerImpl() {
super();
@@ -511,7 +514,7 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
ch1.socket().setKeepAlive(true);
ch1.socket().setSoTimeout(60 * 1000);
try {
- SSLContext sslContext = Link.initClientSSLContext();
+ SSLContext sslContext = Link.initManagementSSLContext(caService);
sslEngine = sslContext.createSSLEngine(ip, port);
sslEngine.setUseClientMode(true);
sslEngine.setEnabledProtocols(SSLUtils.getSupportedProtocols(sslEngine.getEnabledProtocols()));
diff --git a/engine/schema/test/resources/db.properties b/engine/schema/test/resources/db.properties
index 49fd68aa933..5571ad9cc96 100644
--- a/engine/schema/test/resources/db.properties
+++ b/engine/schema/test/resources/db.properties
@@ -19,7 +19,7 @@
# management server clustering parameters, change cluster.node.IP to the machine IP address
-# in which the management server(Tomcat) is running
+# in which the management server is running
cluster.node.IP=127.0.0.1
cluster.servlet.port=9090
region.id=1
diff --git a/engine/service/src/main/webapp/WEB-INF/log4j.xml b/engine/service/src/main/webapp/WEB-INF/log4j.xml
index df46461f972..19d48b47e83 100644
--- a/engine/service/src/main/webapp/WEB-INF/log4j.xml
+++ b/engine/service/src/main/webapp/WEB-INF/log4j.xml
@@ -25,17 +25,7 @@
-
-
+
@@ -46,4 +36,4 @@
-
\ No newline at end of file
+
diff --git a/engine/service/src/main/webapp/WEB-INF/web.xml b/engine/service/src/main/webapp/WEB-INF/web.xml
index c5bb44f0f15..e7663cea39e 100644
--- a/engine/service/src/main/webapp/WEB-INF/web.xml
+++ b/engine/service/src/main/webapp/WEB-INF/web.xml
@@ -31,9 +31,6 @@
org.springframework.web.context.ContextLoaderListener
-
- org.springframework.web.util.Log4jConfigListener
-
CXF Servlet
CXFServlet
diff --git a/engine/storage/snapshot/test/resources/db.properties b/engine/storage/snapshot/test/resources/db.properties
index e8e94121fe1..eabc445c208 100644
--- a/engine/storage/snapshot/test/resources/db.properties
+++ b/engine/storage/snapshot/test/resources/db.properties
@@ -17,7 +17,7 @@
# management server clustering parameters, change cluster.node.IP to the machine IP address
-# in which the management server(Tomcat) is running
+# in which the management server is running
cluster.node.IP=127.0.0.1
cluster.servlet.port=9090
diff --git a/framework/ca/src/org/apache/cloudstack/framework/ca/CAProvider.java b/framework/ca/src/org/apache/cloudstack/framework/ca/CAProvider.java
index 8dc343bd592..388cae7e007 100644
--- a/framework/ca/src/org/apache/cloudstack/framework/ca/CAProvider.java
+++ b/framework/ca/src/org/apache/cloudstack/framework/ca/CAProvider.java
@@ -20,6 +20,8 @@ package org.apache.cloudstack.framework.ca;
import java.io.IOException;
import java.math.BigInteger;
import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.Map;
@@ -79,6 +81,18 @@ public interface CAProvider {
*/
SSLEngine createSSLEngine(final SSLContext sslContext, final String remoteAddress, final Map certMap) throws GeneralSecurityException, IOException;
+ /**
+ * Returns the management server keystore used to connect to peers
+ * @return returns KeyStore instance
+ */
+ KeyStore getManagementKeyStore() throws KeyStoreException;
+
+ /**
+ * Returns the keystore passphrase to use
+ * @return returns char[] passphrase
+ */
+ char[] getKeyStorePassphrase();
+
/**
* Returns the unique name of the provider
* @return returns provider name
diff --git a/framework/ca/src/org/apache/cloudstack/framework/ca/CAService.java b/framework/ca/src/org/apache/cloudstack/framework/ca/CAService.java
index 3aacb3b2b85..facf13a5cb6 100644
--- a/framework/ca/src/org/apache/cloudstack/framework/ca/CAService.java
+++ b/framework/ca/src/org/apache/cloudstack/framework/ca/CAService.java
@@ -19,6 +19,8 @@ package org.apache.cloudstack.framework.ca;
import java.io.IOException;
import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
@@ -33,4 +35,16 @@ public interface CAService {
* @throws IOException
*/
SSLEngine createSSLEngine(final SSLContext context, final String remoteAddress) throws GeneralSecurityException, IOException;
+
+ /**
+ * Returns the management server keystore used to connect to peers
+ * @return returns KeyStore instance
+ */
+ KeyStore getManagementKeyStore() throws KeyStoreException;
+
+ /**
+ * Returns the keystore passphrase to use
+ * @return returns char[] passphrase
+ */
+ char[] getKeyStorePassphrase();
}
diff --git a/packaging/centos63/cloud-management.rc b/packaging/centos63/cloud-management.rc
index 5b6ba4faa46..0ef5fc4a171 100755
--- a/packaging/centos63/cloud-management.rc
+++ b/packaging/centos63/cloud-management.rc
@@ -1,4 +1,15 @@
#!/bin/bash
+
+### BEGIN INIT INFO
+# Provides: cloudstack-management
+# Required-Start: $network $local_fs
+# Required-Stop: $network $local_fs
+# Default-Start: 3 4 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Start/stop Apache CloudStack Usage Monitor
+# Description: This scripts Starts/Stops the Apache CloudStack Management Server
+### END INIT INFO
+
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
@@ -6,111 +17,131 @@
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
-# cloudstack-management This shell script takes care of starting and stopping Tomcat
-#
-# chkconfig: - 80 20
-#
-### BEGIN INIT INFO
-# Provides: tomcat6
-# Required-Start: $network $syslog
-# Required-Stop: $network $syslog
-# Default-Start:
-# Default-Stop:
-# Description: Release implementation for Servlet 2.5 and JSP 2.1
-# Short-Description: start and stop tomcat
-### END INIT INFO
-#
-# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
-# - heavily rewritten by Deepak Bhole and Jason Corley
-#
-if [ -r /etc/rc.d/init.d/functions ]; then
- . /etc/rc.d/init.d/functions
-fi
-if [ -r /lib/lsb/init-functions ]; then
- . /lib/lsb/init-functions
-fi
+. /etc/rc.d/init.d/functions
+SHORTNAME="cloudstack-management"
+PIDFILE=/var/run/"$SHORTNAME".pid
+LOCKFILE=/var/lock/subsys/"$SHORTNAME"
+LOGDIR=/var/log/cloudstack/management
+PROGNAME="CloudStack Management Server"
+CLASS="org.apache.cloudstack.ServerDaemon"
+PROG="jsvc"
+DAEMON="/usr/bin/jsvc"
+USER=cloud
-NAME="$(basename $(readlink -f $0))"
-export SERVICE_NAME="$NAME"
-stop() {
- SHUTDOWN_WAIT="30"
- count="0"
- if [ -f /var/run/${NAME}.pid ]; then
- pid=`cat /var/run/${NAME}.pid`
- kill $pid &>/dev/null
- until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \
- [ "$count" -gt "$SHUTDOWN_WAIT" ]
- do
- sleep 1
- let count="${count}+1"
- done
- if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then
- log_success_msg "Stopping ${NAME}:"
- rm -f /var/run/${NAME}.pid
- rm -f /var/lock/subsys/${NAME}
- else
- log_failure_msg "Stopping ${NAME}:"
- fi
- else
- echo "Cannot find PID file of ${NAME}"
- log_failure_msg "Stopping ${NAME}:"
- fi
+export HOME="/var/cloudstack/management"
+
+unset OPTIONS
+[ -r /etc/default/"$SHORTNAME" ] && source /etc/default/"$SHORTNAME"
+
+setJavaHome() {
+ # use $JAVA_HOME if defined
+ if [ -n "$JAVA_HOME" ] ; then
+ return
+ fi
+
+ # try java first
+ java=$(which java 2>/dev/null || :)
+
+ # try javac if java is not found
+ if [ -z "$java" ] ; then
+ java=$(which javac 2>/dev/null || :)
+ fi
+
+ if [ -n "$java" ] ; then
+ JAVA_HOME=$(dirname $(dirname $(readlink -e $java)))
+ export JAVA_HOME
+ return
+ fi
+
+ # didnt find java home. exiting with error
+ exit 1
}
-set_ulimit() {
- fd_limit=`ulimit -n`
- if [ "$fd_limit" != "4096" ]; then
- user=`whoami`
- if [ $user == "root" ]; then
- ulimit -n 4096
- fi
- fi
-}
+setJavaHome
-handle_pid_file() {
- if [ "$1" -ne 0 ] && [ "$1" -ne 3 ]; then
- echo "The pid file locates at /var/run/${NAME}.pid and lock file at /var/lock/subsys/${NAME}.
- Starting ${NAME} will take care of them or you can manually clean up."
- fi
-}
+JARS=$(ls /usr/share/cloudstack-management/lib/*.jar | tr '\n' ':' | sed s'/.$//')
+CLASSPATH="$JARS:$CLASSPATH"
start() {
- umask 0022
- readpath=$(readlink -f $0)
- source `dirname $readpath`/tomcat.sh
+ if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+ echo "$PROGNAME apparently already running"
+ exit 0
+ fi
+
+ if hostname --fqdn >/dev/null 2>&1 ; then
+ true
+ else
+ echo "The host name does not resolve properly to an IP address. Cannot start $PROGNAME"
+ exit 1
+ fi
+
+ echo -n "Starting $PROGNAME" "$SHORTNAME"
+
+ if daemon --pidfile $PIDFILE $DAEMON -home "$JAVA_HOME" -cp "$CLASSPATH" -pidfile "$PIDFILE" -user "$USER" \
+ -errfile $LOGDIR/cloudstack-management.err $JAVA_OPTS $CLASS
+ RETVAL=$?
+ then
+ rc=0
+ sleep 1
+ if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+ failure
+ rc=1
+ fi
+ else
+ rc=1
+ fi
+
+ if [ $rc -eq 0 ]; then
+ success
+ else
+ failure
+ rm -f "$PIDFILE"
+ fi
+ echo
+}
+
+stop() {
+ echo -n "Stopping $PROGNAME" "$SHORTNAME"
+ killproc -p $PIDFILE $DAEMON
+ if [ "$?" -eq 0 ]; then
+ success
+ else
+ failure
+ fi
+ rm -f "$PIDFILE"
+ echo
}
-# See how we were called.
case "$1" in
- status)
- status ${NAME}
- RETVAL=$?
- handle_pid_file $RETVAL
- ;;
+ start)
+ start
+ ;;
stop)
- stop
- ;;
- restart)
- stop
- set start
- set_ulimit
- start
- ;;
- *)
- set_ulimit
- start
+ stop
+ ;;
+ status)
+ status -p $PIDFILE $SHORTNAME
+ RETVAL=$?
+ ;;
+ restart | force-reload)
+ stop
+ sleep 3
+ start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|force-reload|status}"
+ RETVAL=3
esac
exit $RETVAL
diff --git a/packaging/centos63/cloud-management.sysconfig b/packaging/centos63/cloud-management.sysconfig
deleted file mode 100644
index cbc8b8b36c1..00000000000
--- a/packaging/centos63/cloud-management.sysconfig
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This file is loaded in /etc/init.d/vmopsmanagement
-# ATM we only do two things here:
-
-dummy=1 ; export TOMCAT_CFG=/etc/cloudstack/management/tomcat6.conf ; . /etc/cloudstack/management/tomcat6.conf
-#--------------------------
-
diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec
index dbf55bb580b..682bda97de2 100644
--- a/packaging/centos63/cloud.spec
+++ b/packaging/centos63/cloud.spec
@@ -44,7 +44,6 @@ Source0: %{name}-%{_maventag}.tgz
BuildRoot: %{_tmppath}/%{name}-%{_maventag}-%{release}-build
BuildRequires: java-1.8.0-openjdk-devel
-BuildRequires: tomcat6
BuildRequires: ws-commons-util
BuildRequires: jpackage-utils
BuildRequires: gcc
@@ -59,8 +58,10 @@ intelligent IaaS cloud implementation.
%package management
Summary: CloudStack management server UI
-Requires: tomcat6
Requires: java-1.8.0-openjdk
+Requires: jsvc
+Requires: jakarta-commons-daemon
+Requires: jakarta-commons-daemon-jsvc
Requires: python
Requires: bash
Requires: bzip2
@@ -72,8 +73,6 @@ Requires: nfs-utils
Requires: wget
Requires: mysql
Requires: mysql-connector-java
-Requires: ws-commons-util
-Requires: jpackage-utils
Requires: sudo
Requires: /sbin/service
Requires: /sbin/chkconfig
@@ -165,7 +164,6 @@ The CloudStack usage calculation service
%package cli
Summary: Apache CloudStack CLI
-Provides: python-cloudmonkey
Provides: python-marvin
Group: System Environment/Libraries
%description cli
@@ -193,7 +191,6 @@ Apache CloudStack Marvin integration tests
%package mysql-ha
Summary: Apache CloudStack Balancing Strategy for MySQL
Requires: mysql-connector-java
-Requires: tomcat6
Group: System Environmnet/Libraries
%description mysql-ha
Apache CloudStack Balancing Strategy for MySQL
@@ -243,7 +240,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
+mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/default
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d
@@ -266,21 +263,13 @@ cp -r plugins/network-elements/cisco-vnmc/scripts/network/cisco/* ${RPM_BUILD_RO
# Management
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client
+mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management
-# Specific for tomcat
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
-ln -sf /usr/share/tomcat6/bin ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/bin
ln -sf /etc/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/conf
-ln -sf /usr/share/tomcat6/lib ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib
ln -sf /var/log/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/logs
-ln -sf /var/cache/%{name}/management/temp ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/temp
-ln -sf /var/cache/%{name}/management/work ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/work
-
-/bin/touch ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management/catalina.out
install -D client/target/utilities/bin/cloud-migrate-databases ${RPM_BUILD_ROOT}%{_bindir}/%{name}-migrate-databases
install -D client/target/utilities/bin/cloud-set-guest-password ${RPM_BUILD_ROOT}%{_bindir}/%{name}-set-guest-password
@@ -293,42 +282,33 @@ install -D client/target/utilities/bin/cloud-sysvmadm ${RPM_BUILD_ROOT}%{_bindir
install -D client/target/utilities/bin/cloud-update-xenserver-licenses ${RPM_BUILD_ROOT}%{_bindir}/%{name}-update-xenserver-licenses
cp -r client/target/utilities/scripts/db/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
-cp -r client/target/cloud-client-ui-%{_maventag}/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client
+cp -r client/target/classes/META-INF/webapp ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapp
+cp client/target/cloud-client-ui-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib/cloudstack-%{_maventag}.jar
+cp client/target/lib/*jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib/
# Don't package the scripts in the management webapp
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/scripts
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/vms
-for name in db.properties log4j-cloud.xml tomcat6-nonssl.conf tomcat6-ssl.conf server-ssl.xml server-nonssl.xml commons-logging.properties \
- catalina.policy catalina.properties classpath.conf tomcat-users.xml web.xml environment.properties java.security.ciphers; do
- mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/$name \
- ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/$name
+for name in db.properties server.properties log4j-cloud.xml commons-logging.properties environment.properties java.security.ciphers
+do
+ cp client/target/conf/$name ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/$name
done
-ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml \
- ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/log4j-cloud.xml
-
-mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/context.xml \
- ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
+ln -s log4j-cloud.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/log4j.xml
install python/bindir/cloud-external-ipallocator.py ${RPM_BUILD_ROOT}%{_bindir}/%{name}-external-ipallocator.py
install -D client/target/pythonlibs/jasypt-1.9.2.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar
install -D packaging/centos63/cloud-ipallocator.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-ipallocator
install -D packaging/centos63/cloud-management.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-management
-install -D packaging/centos63/cloud-management.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}-management
install -D server/target/conf/cloudstack-sudoers ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
-install -D packaging/centos63/tomcat.sh ${RPM_BUILD_ROOT}%{_initrddir}/tomcat.sh
-install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina
+install -D packaging/systemd/cloudstack-management.default ${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-management
+#install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina
chmod 440 ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
@@ -434,6 +414,16 @@ if [ "$1" == "2" ] ; then
fi
fi
+# Remove old tomcat symlinks and env config file
+if [ -L "%{_datadir}/%{name}-management/lib" ]
+then
+ rm -f %{_datadir}/%{name}-management/bin
+ rm -f %{_datadir}/%{name}-management/lib
+ rm -f %{_datadir}/%{name}-management/temp
+ rm -f %{_datadir}/%{name}-management/work
+ rm -f %{_sysconfdir}/default/%{name}-management
+fi
+
%post management
/sbin/chkconfig --add cloudstack-management > /dev/null 2>&1 || true
/sbin/chkconfig --level 345 cloudstack-management on > /dev/null 2>&1 || true
@@ -464,40 +454,7 @@ if [ -f "%{_sysconfdir}/cloud.rpmsave/management/db.properties" ]; then
mv %{_sysconfdir}/cloud.rpmsave/management/db.properties %{_sysconfdir}/cloud.rpmsave/management/db.properties.rpmsave
fi
-# Choose server.xml and tomcat.conf links based on old config, if exists
-serverxml=%{_sysconfdir}/%{name}/management/server.xml
-oldserverxml=%{_sysconfdir}/cloud.rpmsave/management/server.xml
-if [ -f $oldserverxml ] || [ -L $oldserverxml ]; then
- if stat -c %N $oldserverxml| grep -q server-ssl ; then
- if [ -f $serverxml ] || [ -L $serverxml ]; then rm -f $serverxml; fi
- ln -s %{_sysconfdir}/%{name}/management/server-ssl.xml $serverxml
- echo Please verify the server.xml in saved folder, and make the required changes manually , saved folder available at $oldserverxml
- else
- if [ -f $serverxml ] || [ -L $serverxml ]; then rm -f $serverxml; fi
- ln -s %{_sysconfdir}/%{name}/management/server-nonssl.xml $serverxml
- echo Please verify the server.xml in saved folder, and make the required changes manually , saved folder available at $oldserverxml
-
- fi
-else
- echo "Unable to determine ssl settings for server.xml, please run cloudstack-setup-management manually"
-fi
-
-
-tomcatconf=%{_sysconfdir}/%{name}/management/tomcat6.conf
-oldtomcatconf=%{_sysconfdir}/cloud.rpmsave/management/tomcat6.conf
-if [ -f $oldtomcatconf ] || [ -L $oldtomcatconf ] ; then
- if stat -c %N $oldtomcatconf| grep -q tomcat6-ssl ; then
- if [ -f $tomcatconf ] || [ -L $tomcatconf ]; then rm -f $tomcatconf; fi
- ln -s %{_sysconfdir}/%{name}/management/tomcat6-ssl.conf $tomcatconf
- echo Please verify the tomcat6.conf in saved folder, and make the required changes manually , saved folder available at $oldtomcatconf
- else
- if [ -f $tomcatconf ] || [ -L $tomcatconf ]; then rm -f $tomcatconf; fi
- ln -s %{_sysconfdir}/%{name}/management/tomcat6-nonssl.conf $tomcatconf
- echo Please verify the tomcat6.conf in saved folder, and make the required changes manually , saved folder available at $oldtomcatconf
- fi
-else
- echo "Unable to determine ssl settings for tomcat.conf, please run cloudstack-setup-management manually"
-fi
+chown -R cloud:cloud /var/log/cloudstack/management
%preun agent
/sbin/service cloudstack-agent stop || true
@@ -569,45 +526,26 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
#No default permission as the permission setup is complex
%files management
%defattr(-,root,root,-)
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina/localhost
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina/localhost/client
%dir %{_datadir}/%{name}-management
%dir %attr(0770,root,cloud) %{_localstatedir}/%{name}/mnt
%dir %attr(0770,cloud,cloud) %{_localstatedir}/%{name}/management
%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/work
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/temp
%dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/management
-%config(noreplace) %{_sysconfdir}/sysconfig/%{name}-management
+%config(noreplace) %{_sysconfdir}/default/%{name}-management
%config(noreplace) %{_sysconfdir}/sudoers.d/%{name}-management
%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/db.properties
+%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/server.properties
%config(noreplace) %{_sysconfdir}/%{name}/management/log4j-cloud.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat6-nonssl.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat6-ssl.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/Catalina/localhost/client/context.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.policy
-%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.properties
-%config(noreplace) %{_sysconfdir}/%{name}/management/classpath.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/server-nonssl.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/server-ssl.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat-users.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/web.xml
+%config(noreplace) %{_sysconfdir}/%{name}/management/log4j.xml
%config(noreplace) %{_sysconfdir}/%{name}/management/environment.properties
%config(noreplace) %{_sysconfdir}/%{name}/management/java.security.ciphers
%config(noreplace) %{_sysconfdir}/%{name}/management/commons-logging.properties
%attr(0755,root,root) %{_initrddir}/%{name}-management
-%attr(0755,root,root) %{_initrddir}/tomcat.sh
-
%attr(0755,root,root) %{_bindir}/%{name}-setup-management
%attr(0755,root,root) %{_bindir}/%{name}-update-xenserver-licenses
-%{_datadir}/%{name}-management/webapps
-%{_datadir}/%{name}-management/bin
%{_datadir}/%{name}-management/conf
-%{_datadir}/%{name}-management/lib
+%{_datadir}/%{name}-management/lib/*.jar
%{_datadir}/%{name}-management/logs
-%{_datadir}/%{name}-management/temp
-%{_datadir}/%{name}-management/work
%attr(0755,root,root) %{_bindir}/%{name}-setup-databases
%attr(0755,root,root) %{_bindir}/%{name}-migrate-databases
%attr(0755,root,root) %{_bindir}/%{name}-set-guest-password
@@ -618,13 +556,13 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
%{_datadir}/%{name}-management/setup/db/*.sql
%{_datadir}/%{name}-management/setup/*.sh
%{_datadir}/%{name}-management/setup/server-setup.xml
+%{_datadir}/%{name}-management/webapp/*
%attr(0755,root,root) %{_bindir}/%{name}-external-ipallocator.py
%attr(0755,root,root) %{_initrddir}/%{name}-ipallocator
%dir %attr(0770,root,root) %{_localstatedir}/log/%{name}/ipallocator
%{_defaultdocdir}/%{name}-management-%{version}/LICENSE
%{_defaultdocdir}/%{name}-management-%{version}/NOTICE
-%attr(0644,cloud,cloud) %{_localstatedir}/log/%{name}/management/catalina.out
-%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-catalina
+#%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-catalina
%files agent
%attr(0755,root,root) %{_bindir}/%{name}-setup-agent
diff --git a/packaging/centos63/tomcat.sh b/packaging/centos63/tomcat.sh
deleted file mode 100644
index 0908da4696e..00000000000
--- a/packaging/centos63/tomcat.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-. /etc/rc.d/init.d/tomcat6 start
diff --git a/packaging/centos7/cloud.spec b/packaging/centos7/cloud.spec
index cc63f5f5788..c8d0ebc0fe0 100644
--- a/packaging/centos7/cloud.spec
+++ b/packaging/centos7/cloud.spec
@@ -44,7 +44,6 @@ Source0: %{name}-%{_maventag}.tgz
BuildRoot: %{_tmppath}/%{name}-%{_maventag}-%{release}-build
BuildRequires: java-1.8.0-openjdk-devel
-BuildRequires: tomcat => 7.0
BuildRequires: ws-commons-util
BuildRequires: jpackage-utils
BuildRequires: gcc
@@ -59,8 +58,8 @@ intelligent IaaS cloud implementation.
%package management
Summary: CloudStack management server UI
-Requires: tomcat => 7.0
Requires: java => 1.8.0
+Requires: apache-commons-daemon-jsvc
Requires: python
Requires: bash
Requires: bzip2
@@ -72,8 +71,6 @@ Requires: nfs-utils
Requires: wget
Requires: mysql
Requires: mysql-connector-java
-Requires: ws-commons-util
-Requires: jpackage-utils
Requires: sudo
Requires: /sbin/service
Requires: /sbin/chkconfig
@@ -140,7 +137,6 @@ The CloudStack usage calculation service
%package cli
Summary: Apache CloudStack CLI
-Provides: python-cloudmonkey
Provides: python-marvin
Group: System Environment/Libraries
%description cli
@@ -168,7 +164,6 @@ Apache CloudStack Marvin integration tests
%package mysql-ha
Summary: Apache CloudStack Balancing Strategy for MySQL
Requires: mysql-connector-java
-Requires: tomcat => 7.0
Group: System Environmnet/Libraries
%description mysql-ha
Apache CloudStack Balancing Strategy for MySQL
@@ -234,22 +229,15 @@ cp -r plugins/network-elements/cisco-vnmc/scripts/network/cisco/* ${RPM_BUILD_RO
# Management
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client
+mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/run
-# Specific for tomcat
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
-ln -sf /usr/share/tomcat/bin ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/bin
+# Setup Jetty
ln -sf /etc/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/conf
-ln -sf /usr/share/tomcat/lib ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib
ln -sf /var/log/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/logs
-ln -sf /var/cache/%{name}/management/temp ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/temp
-ln -sf /var/cache/%{name}/management/work ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/work
-
-/bin/touch ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management/catalina.out
install -D client/target/utilities/bin/cloud-migrate-databases ${RPM_BUILD_ROOT}%{_bindir}/%{name}-migrate-databases
install -D client/target/utilities/bin/cloud-set-guest-password ${RPM_BUILD_ROOT}%{_bindir}/%{name}-set-guest-password
@@ -262,25 +250,22 @@ install -D client/target/utilities/bin/cloud-sysvmadm ${RPM_BUILD_ROOT}%{_bindir
install -D client/target/utilities/bin/cloud-update-xenserver-licenses ${RPM_BUILD_ROOT}%{_bindir}/%{name}-update-xenserver-licenses
cp -r client/target/utilities/scripts/db/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
-cp -r client/target/cloud-client-ui-%{_maventag}/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client
+
+cp -r client/target/cloud-client-ui-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/
+cp -r client/target/classes/META-INF/webapp ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapp
+mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/cloud-client-ui-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib/cloudstack-%{_maventag}.jar
+cp client/target/lib/*jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib/
# Don't package the scripts in the management webapp
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/scripts
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/vms
-for name in db.properties log4j-cloud.xml server7-nonssl.xml server7-ssl.xml \
- commons-logging.properties catalina.policy catalina.properties classpath.conf \
- tomcat-users.xml web.xml environment.properties java.security.ciphers
+for name in db.properties server.properties log4j-cloud.xml commons-logging.properties environment.properties java.security.ciphers
do
- mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/$name \
- ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/$name
+ cp client/target/conf/$name ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/$name
done
-ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml \
- ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/log4j-cloud.xml
-
-mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/context.xml \
- ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
+ln -s log4j-cloud.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/log4j.xml
install python/bindir/cloud-external-ipallocator.py ${RPM_BUILD_ROOT}%{_bindir}/%{name}-external-ipallocator.py
install -D client/target/pythonlibs/jasypt-1.9.2.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar
@@ -291,12 +276,9 @@ install -D packaging/systemd/cloudstack-management.service ${RPM_BUILD_ROOT}%{_u
install -D packaging/systemd/cloudstack-management.default ${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-management
install -D server/target/conf/cloudstack-sudoers ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
touch ${RPM_BUILD_ROOT}%{_localstatedir}/run/%{name}-management.pid
-install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina
+#install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina
chmod 440 ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
@@ -392,6 +374,16 @@ if [ "$1" == "2" ] ; then
fi
fi
+# Remove old tomcat symlinks and env config file
+if [ -L "%{_datadir}/%{name}-management/lib" ]
+then
+ rm -f %{_datadir}/%{name}-management/bin
+ rm -f %{_datadir}/%{name}-management/lib
+ rm -f %{_datadir}/%{name}-management/temp
+ rm -f %{_datadir}/%{name}-management/work
+ rm -f %{_sysconfdir}/default/%{name}-management
+fi
+
%post management
/usr/bin/systemctl on cloudstack-management > /dev/null 2>&1 || true
@@ -408,6 +400,8 @@ if [ -f %{_sysconfdir}/sysconfig/%{name}-management ] ; then
mv %{_sysconfdir}/sysconfig/%{name}-management %{_sysconfdir}/default/%{name}-management
fi
+chown -R cloud:cloud /var/log/cloudstack/management
+
%preun agent
/sbin/service cloudstack-agent stop || true
if [ "$1" == "0" ] ; then
@@ -477,44 +471,28 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
#No default permission as the permission setup is complex
%files management
%defattr(-,root,root,-)
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina/localhost
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina/localhost/client
%dir %{_datadir}/%{name}-management
%dir %attr(0770,root,cloud) %{_localstatedir}/%{name}/mnt
%dir %attr(0770,cloud,cloud) %{_localstatedir}/%{name}/management
%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/work
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/temp
%dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/management
%config(noreplace) %{_sysconfdir}/default/%{name}-management
%config(noreplace) %{_sysconfdir}/sudoers.d/%{name}-management
%config(noreplace) %{_sysconfdir}/security/limits.d/cloud
%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/db.properties
+%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/server.properties
%config(noreplace) %{_sysconfdir}/%{name}/management/log4j-cloud.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/Catalina/localhost/client/context.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.policy
-%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.properties
-%config(noreplace) %{_sysconfdir}/%{name}/management/classpath.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/server7-nonssl.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/server7-ssl.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat-users.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/web.xml
+%config(noreplace) %{_sysconfdir}/%{name}/management/log4j.xml
%config(noreplace) %{_sysconfdir}/%{name}/management/environment.properties
%config(noreplace) %{_sysconfdir}/%{name}/management/java.security.ciphers
%config(noreplace) %{_sysconfdir}/%{name}/management/commons-logging.properties
%attr(0755,root,root) %{_unitdir}/%{name}-management.service
%attr(0755,cloud,cloud) %{_localstatedir}/run/%{name}-management.pid
-
%attr(0755,root,root) %{_bindir}/%{name}-setup-management
%attr(0755,root,root) %{_bindir}/%{name}-update-xenserver-licenses
-%{_datadir}/%{name}-management/webapps
-%{_datadir}/%{name}-management/bin
%{_datadir}/%{name}-management/conf
-%{_datadir}/%{name}-management/lib
+%{_datadir}/%{name}-management/lib/*.jar
%{_datadir}/%{name}-management/logs
-%{_datadir}/%{name}-management/temp
-%{_datadir}/%{name}-management/work
%attr(0755,root,root) %{_bindir}/%{name}-setup-databases
%attr(0755,root,root) %{_bindir}/%{name}-migrate-databases
%attr(0755,root,root) %{_bindir}/%{name}-set-guest-password
@@ -525,13 +503,13 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
%{_datadir}/%{name}-management/setup/db/*.sql
%{_datadir}/%{name}-management/setup/*.sh
%{_datadir}/%{name}-management/setup/server-setup.xml
+%{_datadir}/%{name}-management/webapp/*
%attr(0755,root,root) %{_bindir}/%{name}-external-ipallocator.py
%attr(0755,root,root) %{_initrddir}/%{name}-ipallocator
%dir %attr(0770,root,root) %{_localstatedir}/log/%{name}/ipallocator
%{_defaultdocdir}/%{name}-management-%{version}/LICENSE
%{_defaultdocdir}/%{name}-management-%{version}/NOTICE
-%attr(0644,cloud,cloud) %{_localstatedir}/log/%{name}/management/catalina.out
-%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-catalina
+#%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-catalina
%files agent
%attr(0755,root,root) %{_bindir}/%{name}-setup-agent
diff --git a/packaging/centos7/tomcat7/catalina.properties b/packaging/centos7/tomcat7/catalina.properties
deleted file mode 100644
index e0baf61261d..00000000000
--- a/packaging/centos7/tomcat7/catalina.properties
+++ /dev/null
@@ -1,81 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#
-# List of comma-separated packages that start with or equal this string
-# will cause a security exception to be thrown when
-# passed to checkPackageAccess unless the
-# corresponding RuntimePermission ("accessClassInPackage."+package) has
-# been granted.
-package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
-#
-# List of comma-separated packages that start with or equal this string
-# will cause a security exception to be thrown when
-# passed to checkPackageDefinition unless the
-# corresponding RuntimePermission ("defineClassInPackage."+package) has
-# been granted.
-#
-# by default, no packages are restricted for definition, and none of
-# the class loaders supplied with the JDK call checkPackageDefinition.
-#
-package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
-
-#
-#
-# List of comma-separated paths defining the contents of the "common"
-# classloader. Prefixes should be used to define what is the repository type.
-# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
-# If left as blank,the JVM system loader will be used as Catalina's "common"
-# loader.
-# Examples:
-# "foo": Add this folder as a class repository
-# "foo/*.jar": Add all the JARs of the specified folder as class
-# repositories
-# "foo/bar.jar": Add bar.jar as a class repository
-common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,/usr/share/java/mysql-connector-java.jar,/usr/share/cloudstack-mysql-ha/lib/*.jar
-
-#
-# List of comma-separated paths defining the contents of the "server"
-# classloader. Prefixes should be used to define what is the repository type.
-# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
-# If left as blank, the "common" loader will be used as Catalina's "server"
-# loader.
-# Examples:
-# "foo": Add this folder as a class repository
-# "foo/*.jar": Add all the JARs of the specified folder as class
-# repositories
-# "foo/bar.jar": Add bar.jar as a class repository
-server.loader=
-
-#
-# List of comma-separated paths defining the contents of the "shared"
-# classloader. Prefixes should be used to define what is the repository type.
-# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
-# the "common" loader will be used as Catalina's "shared" loader.
-# Examples:
-# "foo": Add this folder as a class repository
-# "foo/*.jar": Add all the JARs of the specified folder as class
-# repositories
-# "foo/bar.jar": Add bar.jar as a class repository
-# Please note that for single jars, e.g. bar.jar, you need the URL form
-# starting with file:.
-shared.loader=
-
-#
-# String cache configuration.
-tomcat.util.buf.StringCache.byte.enabled=true
-#tomcat.util.buf.StringCache.char.enabled=true
-#tomcat.util.buf.StringCache.trainThreshold=500000
-#tomcat.util.buf.StringCache.cacheSize=5000
diff --git a/packaging/centos7/tomcat7/commons-logging.properties b/packaging/centos7/tomcat7/commons-logging.properties
deleted file mode 100644
index 1e570d65f3b..00000000000
--- a/packaging/centos7/tomcat7/commons-logging.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# This is the logging properties that goes to the war, there are two logging conf kept at the
-# svn, one for developement (one at src/test-resources) and other for producation
-
-# Uncomment the next line to disable all logging.
-#org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
-
-# Uncomment the next line to enable the simple log based logging
-#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
-
-# Uncomment the next line to enable log4j based logging
-org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
diff --git a/packaging/centos7/tomcat7/db.properties b/packaging/centos7/tomcat7/db.properties
deleted file mode 100644
index 94376f7286b..00000000000
--- a/packaging/centos7/tomcat7/db.properties
+++ /dev/null
@@ -1,106 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# management server clustering parameters, change cluster.node.IP to the machine IP address
-# in which the management server(Tomcat) is running
-cluster.node.IP=127.0.0.1
-cluster.servlet.port=9090
-region.id=1
-
-# CloudStack database settings
-db.cloud.username=cloud
-db.cloud.password=ENC(vlzQjmqOV4s5q7n+S1OMbA==)
-db.cloud.host=localhost
-db.cloud.driver=jdbc:mysql
-db.cloud.port=3306
-db.cloud.name=cloud
-
-# CloudStack database tuning parameters
-db.cloud.maxActive=250
-db.cloud.maxIdle=30
-db.cloud.maxWait=10000
-db.cloud.validationQuery=SELECT 1
-db.cloud.testOnBorrow=true
-db.cloud.testWhileIdle=true
-db.cloud.timeBetweenEvictionRunsMillis=40000
-db.cloud.minEvictableIdleTimeMillis=240000
-db.cloud.poolPreparedStatements=false
-db.cloud.url.params=prepStmtCacheSize=517&cachePrepStmts=true&sessionVariables=sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
-
-# CloudStack database SSL settings
-db.cloud.useSSL=false
-db.cloud.keyStore=
-db.cloud.keyStorePassword=
-db.cloud.trustStore=
-db.cloud.trustStorePassword=
-db.cloud.keyStorePassphrase=vmops.com
-
-# Encryption Settings
-db.cloud.encryption.type=file
-db.cloud.encrypt.secret=ENC(zaGuSF5a4KyWayn2t0yyjDa0HjdToVtZ)
-
-# usage database settings
-db.usage.password=ENC(cQEcN5aVucSYK+WUkPjDcw==)
-db.usage.username=cloud
-db.usage.host=localhost
-# It's not guaranteed that using a different DB provider than the one from the regular cloud DB will work
-db.usage.driver=jdbc:mysql
-db.usage.port=3306
-db.usage.name=cloud_usage
-
-# usage database tuning parameters
-db.usage.maxActive=100
-db.usage.maxIdle=30
-db.usage.maxWait=10000
-db.usage.url.params=
-
-# Simulator database settings
-db.simulator.username=cloud
-db.simulator.password=cloud
-db.simulator.host=localhost
-# It's not guaranteed that using a different DB provider than the one from the regular cloud DB will work
-db.simulator.driver=jdbc:mysql
-db.simulator.port=3306
-db.simulator.name=simulator
-db.simulator.maxActive=250
-db.simulator.maxIdle=30
-db.simulator.maxWait=10000
-db.simulator.autoReconnect=true
-
-
-# High Availability And Cluster Properties
-db.ha.enabled=false
-db.ha.loadBalanceStrategy=com.cloud.utils.db.StaticStrategy
-# cloud stack Database
-db.cloud.slaves=localhost,localhost
-db.cloud.autoReconnect=true
-db.cloud.failOverReadOnly=false
-db.cloud.reconnectAtTxEnd=true
-db.cloud.autoReconnectForPools=true
-db.cloud.secondsBeforeRetryMaster=3600
-db.cloud.queriesBeforeRetryMaster=5000
-db.cloud.initialTimeout=3600
-
-#usage Database
-db.usage.slaves=localhost,localhost
-db.usage.autoReconnect=true
-db.usage.failOverReadOnly=false
-db.usage.reconnectAtTxEnd=true
-db.usage.autoReconnectForPools=true
-db.usage.secondsBeforeRetryMaster=3600
-db.usage.queriesBeforeRetryMaster=5000
-db.usage.initialTimeout=3600
diff --git a/packaging/centos7/tomcat7/environment.properties b/packaging/centos7/tomcat7/environment.properties
deleted file mode 100644
index 3254cf64e18..00000000000
--- a/packaging/centos7/tomcat7/environment.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# management server compile-time environment parameters
-
-paths.script=/usr/share/cloudstack-common
-mount.parent=/var/cloudstack/mnt
-cloud-stack-components-specification=components.xml
diff --git a/packaging/centos7/tomcat7/java.security.ciphers b/packaging/centos7/tomcat7/java.security.ciphers
deleted file mode 100644
index 986abf61e71..00000000000
--- a/packaging/centos7/tomcat7/java.security.ciphers
+++ /dev/null
@@ -1,18 +0,0 @@
- # Licensed to the Apache Software Foundation (ASF) under one
- # or more contributor license agreements. See the NOTICE file
- # distributed with this work for additional information
- # regarding copyright ownership. The ASF licenses this file
- # to you under the Apache License, Version 2.0 (the
- # "License"); you may not use this file except in compliance
- # with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing,
- # software distributed under the License is distributed on an
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- # KIND, either express or implied. See the License for the
- # specific language governing permissions and limitations
- # under the License.
-
-jdk.tls.disabledAlgorithms=DH keySize < 128, RSA keySize < 128, DES keySize < 128, SHA1 keySize < 128, MD5 keySize < 128, RC4
\ No newline at end of file
diff --git a/packaging/centos7/tomcat7/log4j-cloud.xml b/packaging/centos7/tomcat7/log4j-cloud.xml
deleted file mode 100644
index 1ebcbf8dc71..00000000000
--- a/packaging/centos7/tomcat7/log4j-cloud.xml
+++ /dev/null
@@ -1,199 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packaging/centos7/tomcat7/server.xml b/packaging/centos7/tomcat7/server.xml
deleted file mode 100644
index 124ff63bc7f..00000000000
--- a/packaging/centos7/tomcat7/server.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packaging/centos7/tomcat7/tomcat-users.xml b/packaging/centos7/tomcat7/tomcat-users.xml
deleted file mode 100644
index 81422a02892..00000000000
--- a/packaging/centos7/tomcat7/tomcat-users.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/packaging/centos7/tomcat7/web.xml b/packaging/centos7/tomcat7/web.xml
deleted file mode 100644
index 8645a64da42..00000000000
--- a/packaging/centos7/tomcat7/web.xml
+++ /dev/null
@@ -1,1187 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- default
- org.apache.catalina.servlets.DefaultServlet
-
- debug
- 0
-
-
- listings
- false
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- jsp
- org.apache.jasper.servlet.JspServlet
-
- fork
- false
-
-
- xpoweredBy
- false
-
- 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- default
- /
-
-
-
-
-
-
-
- jsp
- *.jsp
-
-
-
- jsp
- *.jspx
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 30
-
-
-
-
-
-
-
-
-
-
-
- abs
- audio/x-mpeg
-
-
- ai
- application/postscript
-
-
- aif
- audio/x-aiff
-
-
- aifc
- audio/x-aiff
-
-
- aiff
- audio/x-aiff
-
-
- aim
- application/x-aim
-
-
- art
- image/x-jg
-
-
- asf
- video/x-ms-asf
-
-
- asx
- video/x-ms-asf
-
-
- au
- audio/basic
-
-
- avi
- video/x-msvideo
-
-
- avx
- video/x-rad-screenplay
-
-
- bcpio
- application/x-bcpio
-
-
- bin
- application/octet-stream
-
-
- bmp
- image/bmp
-
-
- body
- text/html
-
-
- cdf
- application/x-cdf
-
-
- cer
- application/x-x509-ca-cert
-
-
- class
- application/java
-
-
- cpio
- application/x-cpio
-
-
- csh
- application/x-csh
-
-
- css
- text/css
-
-
- dib
- image/bmp
-
-
- doc
- application/msword
-
-
- dtd
- application/xml-dtd
-
-
- dv
- video/x-dv
-
-
- dvi
- application/x-dvi
-
-
- eps
- application/postscript
-
-
- etx
- text/x-setext
-
-
- exe
- application/octet-stream
-
-
- gif
- image/gif
-
-
- gtar
- application/x-gtar
-
-
- gz
- application/x-gzip
-
-
- hdf
- application/x-hdf
-
-
- hqx
- application/mac-binhex40
-
-
- htc
- text/x-component
-
-
- htm
- text/html
-
-
- html
- text/html
-
-
- hqx
- application/mac-binhex40
-
-
- ief
- image/ief
-
-
- jad
- text/vnd.sun.j2me.app-descriptor
-
-
- jar
- application/java-archive
-
-
- java
- text/plain
-
-
- jnlp
- application/x-java-jnlp-file
-
-
- jpe
- image/jpeg
-
-
- jpeg
- image/jpeg
-
-
- jpg
- image/jpeg
-
-
- js
- text/javascript
-
-
- jsf
- text/plain
-
-
- jspf
- text/plain
-
-
- kar
- audio/x-midi
-
-
- latex
- application/x-latex
-
-
- m3u
- audio/x-mpegurl
-
-
- mac
- image/x-macpaint
-
-
- man
- application/x-troff-man
-
-
- mathml
- application/mathml+xml
-
-
- me
- application/x-troff-me
-
-
- mid
- audio/x-midi
-
-
- midi
- audio/x-midi
-
-
- mif
- application/x-mif
-
-
- mov
- video/quicktime
-
-
- movie
- video/x-sgi-movie
-
-
- mp1
- audio/x-mpeg
-
-
- mp2
- audio/x-mpeg
-
-
- mp3
- audio/x-mpeg
-
-
- mp4
- video/mp4
-
-
- mpa
- audio/x-mpeg
-
-
- mpe
- video/mpeg
-
-
- mpeg
- video/mpeg
-
-
- mpega
- audio/x-mpeg
-
-
- mpg
- video/mpeg
-
-
- mpv2
- video/mpeg2
-
-
- ms
- application/x-wais-source
-
-
- nc
- application/x-netcdf
-
-
- oda
- application/oda
-
-
-
- odb
- application/vnd.oasis.opendocument.database
-
-
-
- odc
- application/vnd.oasis.opendocument.chart
-
-
-
- odf
- application/vnd.oasis.opendocument.formula
-
-
-
- odg
- application/vnd.oasis.opendocument.graphics
-
-
-
- odi
- application/vnd.oasis.opendocument.image
-
-
-
- odm
- application/vnd.oasis.opendocument.text-master
-
-
-
- odp
- application/vnd.oasis.opendocument.presentation
-
-
-
- ods
- application/vnd.oasis.opendocument.spreadsheet
-
-
-
- odt
- application/vnd.oasis.opendocument.text
-
-
- ogg
- application/ogg
-
-
-
- otg
- application/vnd.oasis.opendocument.graphics-template
-
-
-
- oth
- application/vnd.oasis.opendocument.text-web
-
-
-
- otp
- application/vnd.oasis.opendocument.presentation-template
-
-
-
- ots
- application/vnd.oasis.opendocument.spreadsheet-template
-
-
-
- ott
- application/vnd.oasis.opendocument.text-template
-
-
- pbm
- image/x-portable-bitmap
-
-
- pct
- image/pict
-
-
- pdf
- application/pdf
-
-
- pgm
- image/x-portable-graymap
-
-
- pic
- image/pict
-
-
- pict
- image/pict
-
-
- pls
- audio/x-scpls
-
-
- png
- image/png
-
-
- pnm
- image/x-portable-anymap
-
-
- pnt
- image/x-macpaint
-
-
- ppm
- image/x-portable-pixmap
-
-
- ppt
- application/vnd.ms-powerpoint
-
-
- pps
- application/vnd.ms-powerpoint
-
-
- ps
- application/postscript
-
-
- psd
- image/x-photoshop
-
-
- qt
- video/quicktime
-
-
- qti
- image/x-quicktime
-
-
- qtif
- image/x-quicktime
-
-
- ras
- image/x-cmu-raster
-
-
- rdf
- application/rdf+xml
-
-
- rgb
- image/x-rgb
-
-
- rm
- application/vnd.rn-realmedia
-
-
- roff
- application/x-troff
-
-
- rtf
- application/rtf
-
-
- rtx
- text/richtext
-
-
- sh
- application/x-sh
-
-
- shar
- application/x-shar
-
-
-
- smf
- audio/x-midi
-
-
- sit
- application/x-stuffit
-
-
- snd
- audio/basic
-
-
- src
- application/x-wais-source
-
-
- sv4cpio
- application/x-sv4cpio
-
-
- sv4crc
- application/x-sv4crc
-
-
- svg
- image/svg+xml
-
-
- svgz
- image/svg+xml
-
-
- swf
- application/x-shockwave-flash
-
-
- t
- application/x-troff
-
-
- tar
- application/x-tar
-
-
- tcl
- application/x-tcl
-
-
- tex
- application/x-tex
-
-
- texi
- application/x-texinfo
-
-
- texinfo
- application/x-texinfo
-
-
- tif
- image/tiff
-
-
- tiff
- image/tiff
-
-
- tr
- application/x-troff
-
-
- tsv
- text/tab-separated-values
-
-
- txt
- text/plain
-
-
- ulw
- audio/basic
-
-
- ustar
- application/x-ustar
-
-
- vxml
- application/voicexml+xml
-
-
- xbm
- image/x-xbitmap
-
-
- xht
- application/xhtml+xml
-
-
- xhtml
- application/xhtml+xml
-
-
- xls
- application/vnd.ms-excel
-
-
- xml
- application/xml
-
-
- xpm
- image/x-xpixmap
-
-
- xsl
- application/xml
-
-
- xslt
- application/xslt+xml
-
-
- xul
- application/vnd.mozilla.xul+xml
-
-
- xwd
- image/x-xwindowdump
-
-
- vsd
- application/x-visio
-
-
- wav
- audio/x-wav
-
-
-
- wbmp
- image/vnd.wap.wbmp
-
-
-
- wml
- text/vnd.wap.wml
-
-
-
- wmlc
- application/vnd.wap.wmlc
-
-
-
- wmls
- text/vnd.wap.wmlscript
-
-
-
- wmlscriptc
- application/vnd.wap.wmlscriptc
-
-
- wmv
- video/x-ms-wmv
-
-
- wrl
- x-world/x-vrml
-
-
- wspolicy
- application/wspolicy+xml
-
-
- Z
- application/x-compress
-
-
- z
- application/x-compress
-
-
- zip
- application/zip
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index.html
- index.htm
-
-
-
diff --git a/packaging/debian/init/cloud-management b/packaging/debian/init/cloud-management
index a1d64a8d351..580f683b829 100755
--- a/packaging/debian/init/cloud-management
+++ b/packaging/debian/init/cloud-management
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# /etc/init.d/tomcat6 -- startup script for the Tomcat 6 servlet engine
+# /etc/init.d/cloudstack-management -- startup script for CloudStack
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -26,24 +26,18 @@
# Should-Stop: $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
-# Short-Description: Start Tomcat (CloudStack).
-# Description: Start the Tomcat servlet engine that runs the CloudStack Management Server.
+# Short-Description: Start CloudStack.
+# Description: Start the CloudStack Management Server.
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME=cloudstack-management
-DESC="CloudStack-specific Tomcat servlet engine"
+DESC="CloudStack Management Server"
DAEMON=/usr/bin/jsvc
-MANAGEMENT_HOME=/usr/share/$NAME
-MANAGEMENT_CONFIG="/etc/cloudstack/management"
-JVM_TMP=/tmp/$NAME-temp
+DEFAULT=/etc/default/$NAME
USER="cloud"
GROUP="cloud"
-UBER_JAR="$MANAGEMENT_HOME/cloud-management-server.jar"
-BOOTSTRAP_CLASS="org.apache.cloudstack.ServerDaemon"
-MANAGEMENT_PID="/var/run/$NAME.pid"
-JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$MANAGEMENT_HOME/bcprov-jdk15on-1.55.jar:$MANAGEMENT_CONFIG:/usr/share/$NAME/setup:$MANAGEMENT_HOME:$UBER_JAR"
-
+CLOUDSTACK_PID="/var/run/$NAME.pid"
# We have to explicitly set the HOME variable to the homedir from the user "cloud"
# This is because various scripts run by the management server read the HOME variable
@@ -54,8 +48,7 @@ if [ `id -u` -ne 0 ]; then
echo "You need root privileges to run this script"
exit 1
fi
-
-# Make sure tomcat is started with system locale
+
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG
@@ -64,9 +57,6 @@ fi
. /lib/lsb/init-functions
. /etc/default/rcS
-
-# The following variables can be overwritten in $DEFAULT
-
# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)
JDK_DIRS="/usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-oracle /usr/lib/jvm/java-8-openjdk"
@@ -79,44 +69,15 @@ for jdir in $JDK_DIRS; do
done
export JAVA_HOME
-# Directory for per-instance configuration files and webapps
-CATALINA_BASE=/usr/share/cloudstack-management
-
-# Use the Java security manager? (yes/no)
-TOMCAT6_SECURITY=no
-
-# Default Java options
-# Set java.awt.headless=true if JAVA_OPTS is not set so the
-# Xalan XSL transformer can work without X11 display on JDK 1.4+
-# It also looks like the default heap size of 64M is not enough for most cases
-# so the maximum heap size is set to 128M
-if [ -z "$JAVA_OPTS" ]; then
- JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
-fi
-
-# End of variables that can be overwritten in $DEFAULT
-
# overwrite settings from default file
if [ -f "$DEFAULT" ]; then
. "$DEFAULT"
fi
-if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then
- log_failure_msg "$NAME is not installed"
- exit 1
-fi
+JARS=$(ls /usr/share/cloudstack-management/lib/*.jar | tr '\n' ':' | sed s'/.$//')
+CLASSPATH="$JARS:$CLASSPATH"
[ -f "$DAEMON" ] || exit 0
-[ -r "$UBER_JAR" ] || exit 0
-[ -d "$MANAGEMENT_CONFIG" ] || exit 0
-
-JAVA_OPTS="$JAVA_OPTS -Djava.io.tmpdir=$JVM_TMP"
-
-# Load extra arguments from java-opts.conf if any
-if [ -r "$MANAGEMENT_CONFIG/java-opts.conf" ]; then
- JAVA_EXTRA_OPTS=$(cat $MANAGEMENT_CONFIG/java-opts.conf)
- JAVA_OPTS="$JAVA_OPTS $JAVA_EXTRA_OPTS"
-fi
# Look for Java Secure Sockets Extension (JSSE) JARs
if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
@@ -132,23 +93,16 @@ case "$1" in
fi
log_daemon_msg "Starting $DESC" "$NAME"
- if start-stop-daemon --test --start --quiet --pidfile "$MANAGEMENT_PID" \
+ if start-stop-daemon --test --start --quiet --pidfile "$CLOUDSTACK_PID" \
--user $USER --startas "$JAVA_HOME/bin/java"; then
- # Remove / recreate JVM_TMP directory
- rm -rf "$JVM_TMP"
- mkdir "$JVM_TMP" || {
- log_failure_msg "could not create JVM temporary directory"
- exit 1
- }
-
# fix storage issues on nfs mounts
umask 000
- start-stop-daemon --start --quiet --pidfile "$MANAGEMENT_PID" \
+ start-stop-daemon --start --quiet --pidfile "$CLOUDSTACK_PID" \
--user $USER --group $GROUP --exec $DAEMON -- -user "$USER" -server \
- -home "$JAVA_HOME" -cp "$JSVC_CLASSPATH" \
- -outfile SYSLOG -errfile SYSLOG \
- -pidfile "$MANAGEMENT_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
+ -home "$JAVA_HOME" -cp "$CLASSPATH" \
+ -outfile SYSLOG -errfile $LOGDIR/$NAME.err \
+ -pidfile "$CLOUDSTACK_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
log_end_msg $?
else
log_progress_msg "(already running)"
@@ -157,18 +111,17 @@ case "$1" in
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
- start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile "$MANAGEMENT_PID"
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile "$CLOUDSTACK_PID"
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
- [ "$RETVAL" = 0 ] && rm -rf "$JVM_TMP"
log_end_msg 0
;;
status)
- if start-stop-daemon --test --start --pidfile "$$MANAGEMENT_PID" \
+ if start-stop-daemon --test --start --pidfile "$CLOUDSTACK_PID" \
--user $USER --startas "$JAVA_HOME/bin/java" \
>/dev/null; then
- if [ -f "$$MANAGEMENT_PID" ]; then
+ if [ -f "$CLOUDSTACK_PID" ]; then
log_success_msg "$DESC is not running, but pid file exists."
exit 1
else
@@ -176,11 +129,11 @@ case "$1" in
exit 3
fi
else
- log_success_msg "$DESC is running with pid `cat $$MANAGEMENT_PID`"
+ log_success_msg "$DESC is running with pid `cat $CLOUDSTACK_PID`"
fi
;;
restart|force-reload)
- if start-stop-daemon --test --stop --pidfile "$$MANAGEMENT_PID" \
+ if start-stop-daemon --test --stop --pidfile "$CLOUDSTACK_PID" \
--user $USER --startas "$JAVA_HOME/bin/java" \
>/dev/null; then
$0 stop
@@ -188,13 +141,6 @@ case "$1" in
fi
$0 start
;;
- try-restart)
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- $0 start
- fi
- ;;
*)
log_success_msg "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
exit 1
diff --git a/packaging/debian/replace.properties b/packaging/debian/replace.properties
index e1d28bb9549..258cb844318 100644
--- a/packaging/debian/replace.properties
+++ b/packaging/debian/replace.properties
@@ -32,7 +32,7 @@ APISERVERLOG=/var/log/cloudstack/management/apilog.log
BINDIR=/usr/bin
COMMONLIBDIR=/usr/share/cloudstack-common
CONFIGUREVARS=
-DEPSCLASSPATH=/usr/share/tomcat6/bin/bootstrap.jar:/usr/share/tomcat6/bin/tomcat-juli.jar
+DEPSCLASSPATH=
DOCDIR=
IPALOCATORLOG=/var/log/cloudstack/management/ipallocator.log
JAVADIR=/usr/share/cloudstack-management/webapps/client/WEB-INF/lib
diff --git a/packaging/fedora20/cloud-agent.rc b/packaging/fedora20/cloud-agent.rc
deleted file mode 100755
index 2defa148883..00000000000
--- a/packaging/fedora20/cloud-agent.rc
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/bin/bash
-
-# chkconfig: 35 99 10
-# description: Cloud Agent
-# pidfile: /var/run/cloudstack-agent.pid
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# WARNING: if this script is changed, then all other initscripts MUST BE changed to match it as well
-
-. /etc/rc.d/init.d/functions
-
-# set environment variables
-
-SHORTNAME=$(basename $0 | sed -e 's/^[SK][0-9][0-9]//')
-PIDFILE=/var/run/"$SHORTNAME".pid
-LOCKFILE=/var/lock/subsys/"$SHORTNAME"
-LOGDIR=/var/log/cloudstack/agent
-LOGFILE=${LOGDIR}/agent.log
-PROGNAME="Cloud Agent"
-CLASS="com.cloud.agent.AgentShell"
-JSVC=`which jsvc 2>/dev/null`;
-
-# exit if we don't find jsvc
-if [ -z "$JSVC" ]; then
- echo no jsvc found in path;
- exit 1;
-fi
-
-unset OPTIONS
-[ -r /etc/sysconfig/"$SHORTNAME" ] && source /etc/sysconfig/"$SHORTNAME"
-
-# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun"
-
-for jdir in $JDK_DIRS; do
- if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
- JAVA_HOME="$jdir"
- fi
-done
-export JAVA_HOME
-
-ACP=`ls /usr/share/cloudstack-agent/lib/*.jar | tr '\n' ':' | sed s'/.$//'`
-PCP=`ls /usr/share/cloudstack-agent/plugins/*.jar 2>/dev/null | tr '\n' ':' | sed s'/.$//'`
-
-# We need to append the JSVC daemon JAR to the classpath
-# AgentShell implements the JSVC daemon methods
-export CLASSPATH="/usr/share/java/commons-daemon.jar:$ACP:$PCP:/etc/cloudstack/agent:/usr/share/cloudstack-common/scripts"
-
-start() {
- echo -n $"Starting $PROGNAME: "
- if hostname --fqdn >/dev/null 2>&1 ; then
- $JSVC -Xms256m -Xmx2048m -cp "$CLASSPATH" -pidfile "$PIDFILE" \
- -errfile $LOGDIR/cloudstack-agent.err -outfile $LOGDIR/cloudstack-agent.out $CLASS
- RETVAL=$?
- echo
- else
- failure
- echo
- echo The host name does not resolve properly to an IP address. Cannot start "$PROGNAME". > /dev/stderr
- RETVAL=9
- fi
- [ $RETVAL = 0 ] && touch ${LOCKFILE}
- return $RETVAL
-}
-
-stop() {
- echo -n $"Stopping $PROGNAME: "
- $JSVC -pidfile "$PIDFILE" -stop $CLASS
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && rm -f ${LOCKFILE} ${PIDFILE}
-}
-
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status -p ${PIDFILE} $SHORTNAME
- RETVAL=$?
- ;;
- restart)
- stop
- sleep 3
- start
- ;;
- condrestart)
- if status -p ${PIDFILE} $SHORTNAME >&/dev/null; then
- stop
- sleep 3
- start
- fi
- ;;
- *)
- echo $"Usage: $SHORTNAME {start|stop|restart|condrestart|status|help}"
- RETVAL=3
-esac
-
-exit $RETVAL
diff --git a/packaging/fedora20/cloud-ipallocator.rc b/packaging/fedora20/cloud-ipallocator.rc
deleted file mode 100755
index d3eadec8a82..00000000000
--- a/packaging/fedora20/cloud-ipallocator.rc
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# chkconfig: 35 99 10
-# description: Cloud Agent
-
-# WARNING: if this script is changed, then all other initscripts MUST BE changed to match it as well
-
-. /etc/rc.d/init.d/functions
-
-# set environment variables
-
-SHORTNAME="$(basename $(readlink -f $0))"
-PIDFILE=/var/run/"$SHORTNAME".pid
-LOCKFILE=/var/lock/subsys/"$SHORTNAME"
-LOGFILE=/var/log/cloudstack/ipallocator/ipallocator.log
-PROGNAME="External IPAllocator"
-
-unset OPTIONS
-[ -r /etc/sysconfig/"$SHORTNAME" ] && source /etc/sysconfig/"$SHORTNAME"
-DAEMONIZE=/usr/bin/cloud-daemonize
-PROG=/usr/bin/cloud-external-ipallocator.py
-OPTIONS=8083
-
-start() {
- echo -n $"Starting $PROGNAME: "
- if hostname --fqdn >/dev/null 2>&1 ; then
- daemon --check=$SHORTNAME --pidfile=${PIDFILE} "$DAEMONIZE" \
- -n "$SHORTNAME" -p "$PIDFILE" -l "$LOGFILE" "$PROG" $OPTIONS
- RETVAL=$?
- echo
- else
- failure
- echo
- echo The host name does not resolve properly to an IP address. Cannot start "$PROGNAME". > /dev/stderr
- RETVAL=9
- fi
- [ $RETVAL = 0 ] && touch ${LOCKFILE}
- return $RETVAL
-}
-
-stop() {
- echo -n $"Stopping $PROGNAME: "
- killproc -p ${PIDFILE} $SHORTNAME # -d 10 $SHORTNAME
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && rm -f ${LOCKFILE} ${PIDFILE}
-}
-
-
-# See how we were called.
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status -p ${PIDFILE} $SHORTNAME
- RETVAL=$?
- ;;
- restart)
- stop
- sleep 3
- start
- ;;
- condrestart)
- if status -p ${PIDFILE} $SHORTNAME >&/dev/null; then
- stop
- sleep 3
- start
- fi
- ;;
- *)
- echo $"Usage: $SHORTNAME {start|stop|restart|condrestart|status|help}"
- RETVAL=3
-esac
-
-exit $RETVAL
-
diff --git a/packaging/fedora20/cloud-management.rc b/packaging/fedora20/cloud-management.rc
deleted file mode 100755
index f5ed7a8048a..00000000000
--- a/packaging/fedora20/cloud-management.rc
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# cloudstack-management This shell script takes care of starting and stopping Tomcat
-#
-# chkconfig: - 80 20
-#
-### BEGIN INIT INFO
-# Provides: tomcat6
-# Required-Start: $network $syslog
-# Required-Stop: $network $syslog
-# Default-Start:
-# Default-Stop:
-# Description: Release implementation for Servlet 2.5 and JSP 2.1
-# Short-Description: start and stop tomcat
-### END INIT INFO
-#
-# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
-# - heavily rewritten by Deepak Bhole and Jason Corley
-#
-
-if [ -r /etc/rc.d/init.d/functions ]; then
- . /etc/rc.d/init.d/functions
-fi
-if [ -r /lib/lsb/init-functions ]; then
- . /lib/lsb/init-functions
-fi
-
-
-NAME="$(basename $(readlink -f $0))"
-export SERVICE_NAME="$NAME"
-stop() {
- SHUTDOWN_WAIT="30"
- count="0"
- if [ -f /var/run/${NAME}.pid ]; then
- pid=`cat /var/run/${NAME}.pid`
- kill $pid &>/dev/null
- until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \
- [ "$count" -gt "$SHUTDOWN_WAIT" ]
- do
- sleep 1
- let count="${count}+1"
- done
- if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then
- log_success_msg "Stopping ${NAME}:"
- rm -f /var/run/${NAME}.pid
- rm -f /var/lock/subsys/${NAME}
- else
- log_failure_msg "Stopping ${NAME}:"
- fi
- else
- echo "Cannot find PID file of ${NAME}"
- log_failure_msg "Stopping ${NAME}:"
- fi
-}
-
-set_ulimit() {
- fd_limit=`ulimit -n`
- if [ "$fd_limit" != "4096" ]; then
- user=`whoami`
- if [ $user == "root" ]; then
- ulimit -n 4096
- fi
- fi
-}
-
-handle_pid_file() {
- if [ "$1" -ne 0 ] && [ "$1" -ne 3 ]; then
- echo "The pid file locates at /var/run/${NAME}.pid and lock file at /var/lock/subsys/${NAME}.
- Starting ${NAME} will take care of them or you can manually clean up."
- fi
-}
-
-start() {
- readpath=$(readlink -f $0)
- source `dirname $readpath`/tomcat.sh
-}
-
-# See how we were called.
-case "$1" in
- status)
- status ${NAME}
- RETVAL=$?
- handle_pid_file $RETVAL
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- set start
- set_ulimit
- start
- ;;
- *)
- set_ulimit
- start
-esac
-
-exit $RETVAL
diff --git a/packaging/fedora20/cloud-management.sysconfig b/packaging/fedora20/cloud-management.sysconfig
deleted file mode 100644
index cbc8b8b36c1..00000000000
--- a/packaging/fedora20/cloud-management.sysconfig
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This file is loaded in /etc/init.d/vmopsmanagement
-# ATM we only do two things here:
-
-dummy=1 ; export TOMCAT_CFG=/etc/cloudstack/management/tomcat6.conf ; . /etc/cloudstack/management/tomcat6.conf
-#--------------------------
-
diff --git a/packaging/fedora20/cloud-usage.rc b/packaging/fedora20/cloud-usage.rc
deleted file mode 100755
index 774113745d7..00000000000
--- a/packaging/fedora20/cloud-usage.rc
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/bin/bash
-
-### BEGIN INIT INFO
-# Provides: cloudstack-usage
-# Required-Start: $network $local_fs
-# Required-Stop: $network $local_fs
-# Default-Start: 3 4 5
-# Default-Stop: 0 1 2 6
-# Short-Description: Start/stop Apache CloudStack Usage Monitor
-# Description: This scripts Starts/Stops the Apache CloudStack Usage Monitor
-## The CloudStack Usage Monitor is a part of the Apache CloudStack project and is used
-## for storing usage statistics from instances.
-## JSVC (Java daemonizing) is used for starting and stopping the usage monitor.
-### END INIT INFO
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-. /etc/rc.d/init.d/functions
-
-SHORTNAME="cloudstack-usage"
-PIDFILE=/var/run/"$SHORTNAME".pid
-LOCKFILE=/var/lock/subsys/"$SHORTNAME"
-LOGDIR=/var/log/cloudstack/usage
-LOGFILE=${LOGDIR}/usage.log
-PROGNAME="CloudStack Usage Monitor"
-CLASS="com.cloud.usage.UsageServer"
-PROG="jsvc"
-DAEMON="/usr/bin/jsvc"
-USER=cloud
-
-unset OPTIONS
-[ -r /etc/sysconfig/default/"$SHORTNAME" ] && source /etc/sysconfig/default/"$SHORTNAME"
-
-setJavaHome() {
- # use $JAVA_HOME if defined
- if [ -n "$JAVA_HOME" ] ; then
- return
- fi
-
- # try java first
- java=$(which java 2>/dev/null || :)
-
- # try javac if java is not found
- if [ -z "$java" ] ; then
- java=$(which javac 2>/dev/null || :)
- fi
-
- if [ -n "$java" ] ; then
- JAVA_HOME=$(dirname $(dirname $(readlink -e $java)))
- export JAVA_HOME
- return
- fi
-
- # didnt find java home. exiting with error
- exit 1
-}
-
-setJavaHome
-
-SCP=""
-DCP=""
-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":"/usr/share/java/mysql-connector-java.jar"
-
-# We need to append the JSVC daemon and mysql-connector JAR to the classpath
-# AgentShell implements the JSVC daemon methods
-export CLASSPATH="$SCP:$DCP:$UCP:$JCP:/etc/cloudstack/usage"
-
-start() {
- if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
- echo "$PROGNAME apparently already running"
- exit 0
- fi
-
- if hostname --fqdn >/dev/null 2>&1 ; then
- true
- else
- echo "The host name does not resolve properly to an IP address. Cannot start $PROGNAME"
- exit 1
- fi
-
- echo -n "Starting $PROGNAME" "$SHORTNAME"
-
- if daemon --pidfile $PIDFILE $DAEMON -home "$JAVA_HOME" -cp "$CLASSPATH" -pidfile "$PIDFILE" -user "$USER" \
- -errfile $LOGDIR/cloudstack-usage.err -outfile $LOGDIR/cloudstack-usage.out -Dpid=$$ $CLASS
- RETVAL=$?
- then
- rc=0
- sleep 1
- if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
- failure
- rc=1
- fi
- else
- rc=1
- fi
-
- if [ $rc -eq 0 ]; then
- success
- else
- failure
- rm -f "$PIDFILE"
- fi
- echo
-}
-
-stop() {
- echo -n "Stopping $PROGNAME" "$SHORTNAME"
- killproc -p $PIDFILE $DAEMON
- if [ "$?" -eq 0 ]; then
- success
- else
- failure
- fi
- rm -f "$PIDFILE"
- echo
-}
-
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status -p $PIDFILE $SHORTNAME
- RETVAL=$?
- ;;
- restart | force-reload)
- stop
- sleep 3
- start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|force-reload|status}"
- RETVAL=3
-esac
-
-exit $RETVAL
-
diff --git a/packaging/fedora20/cloud.spec b/packaging/fedora20/cloud.spec
deleted file mode 100644
index 3f960cf7491..00000000000
--- a/packaging/fedora20/cloud.spec
+++ /dev/null
@@ -1,649 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-%define __os_install_post %{nil}
-%global debug_package %{nil}
-
-# DISABLE the post-percentinstall java repacking and line number stripping
-# we need to find a way to just disable the java repacking and line number stripping, but not the autodeps
-
-Name: cloudstack
-Summary: CloudStack IaaS Platform
-#http://fedoraproject.org/wiki/PackageNamingGuidelines#Pre-Release_packages
-%if "%{?_prerelease}" != ""
-%define _maventag %{_ver}-SNAPSHOT
-Release: %{_rel}%{dist}
-%else
-%define _maventag %{_ver}
-Release: %{_rel}%{dist}
-%endif
-
-%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
-
-Version: %{_ver}
-License: ASL 2.0
-Vendor: Apache CloudStack
-Packager: Apache CloudStack
-Group: System Environment/Libraries
-# FIXME do groups for every single one of the subpackages
-Source0: %{name}-%{_maventag}.tgz
-BuildRoot: %{_tmppath}/%{name}-%{_maventag}-%{release}-build
-
-BuildRequires: java-1.7.0-openjdk-devel
-BuildRequires: tomcat
-BuildRequires: ws-commons-util
-BuildRequires: jpackage-utils
-BuildRequires: gcc
-BuildRequires: glibc-devel
-BuildRequires: /usr/bin/mkisofs
-BuildRequires: mysql-connector-python
-#BuildRequires: maven => 3.0.0
-
-%description
-CloudStack is a highly-scalable elastic, open source,
-intelligent IaaS cloud implementation.
-
-%package management
-Summary: CloudStack management server UI
-Requires: tomcat
-Requires: java-1.7.0-openjdk
-Requires: python
-Requires: bash
-Requires: bzip2
-Requires: gzip
-Requires: unzip
-Requires: /sbin/mount.nfs
-Requires: openssh-clients
-Requires: nfs-utils
-Requires: wget
-Requires: mysql
-Requires: mysql-connector-java
-Requires: ws-commons-util
-Requires: jpackage-utils
-Requires: sudo
-Requires: /sbin/service
-Requires: /sbin/chkconfig
-Requires: /usr/bin/ssh-keygen
-Requires: mkisofs
-Requires: mysql-connector-python
-Requires: python-paramiko
-Requires: ipmitool
-Requires: %{name}-common = %{_ver}
-Obsoletes: cloud-client < 4.1.0
-Obsoletes: cloud-client-ui < 4.1.0
-Obsoletes: cloud-server < 4.1.0
-Obsoletes: cloud-test < 4.1.0
-Provides: cloud-client
-Group: System Environment/Libraries
-%description management
-The CloudStack management server is the central point of coordination,
-management, and intelligence in CloudStack.
-
-%package common
-Summary: Apache CloudStack common files and scripts
-Requires: python
-Obsoletes: cloud-test < 4.1.0
-Obsoletes: cloud-scripts < 4.1.0
-Obsoletes: cloud-utils < 4.1.0
-Obsoletes: cloud-core < 4.1.0
-Obsoletes: cloud-deps < 4.1.0
-Obsoletes: cloud-python < 4.1.0
-Obsoletes: cloud-setup < 4.1.0
-Obsoletes: cloud-cli < 4.1.0
-Obsoletes: cloud-daemonize < 4.1.0
-Group: System Environment/Libraries
-%description common
-The Apache CloudStack files shared between agent and management server
-
-%package agent
-Summary: CloudStack Agent for KVM hypervisors
-Requires: openssh-clients
-Requires: java-1.7.0-openjdk
-Requires: %{name}-common = %{_ver}
-Requires: libvirt
-Requires: bridge-utils
-Requires: ebtables
-Requires: iptables
-Requires: ethtool
-Requires: vconfig
-Requires: ipset
-Requires: jsvc
-Requires: jakarta-commons-daemon
-Requires: jakarta-commons-daemon-jsvc
-Requires: perl
-Requires: libvirt-python
-Requires: qemu-img
-Requires: qemu-kvm
-Requires: libcgroup-tools
-Requires: net-tools
-Provides: cloud-agent
-Obsoletes: cloud-agent < 4.1.0
-Obsoletes: cloud-agent-libs < 4.1.0
-Obsoletes: cloud-test < 4.1.0
-Group: System Environment/Libraries
-%description agent
-The CloudStack agent for KVM hypervisors
-
-%package baremetal-agent
-Summary: CloudStack baremetal agent
-Requires: tftp-server
-Requires: xinetd
-Requires: syslinux
-Requires: chkconfig
-Requires: dhcp
-Requires: httpd
-Group: System Environment/Libraries
-%description baremetal-agent
-The CloudStack baremetal agent
-
-%package usage
-Summary: CloudStack Usage calculation server
-Requires: java-1.7.0-openjdk
-Requires: jsvc
-Requires: jakarta-commons-daemon
-Requires: jakarta-commons-daemon-jsvc
-Group: System Environment/Libraries
-Obsoletes: cloud-usage < 4.1.0
-Provides: cloud-usage
-%description usage
-The CloudStack usage calculation service
-
-%package cli
-Summary: Apache CloudStack CLI
-Provides: python-cloudmonkey
-Provides: python-marvin
-Group: System Environment/Libraries
-%description cli
-Apache CloudStack command line interface
-
-%if "%{_ossnoss}" == "noredist"
-%package mysql-ha
-Summary: Apache CloudStack Balancing Strategy for MySQL
-Requires: mysql-connector-java
-Requires: tomcat
-Group: System Environmnet/Libraries
-%description mysql-ha
-Apache CloudStack Balancing Strategy for MySQL
-
-%endif
-
-%prep
-echo Doing CloudStack build
-
-%setup -q -n %{name}-%{_maventag}
-
-%build
-
-cp packaging/centos63/replace.properties build/replace.properties
-echo VERSION=%{_maventag} >> build/replace.properties
-echo PACKAGE=%{name} >> build/replace.properties
-touch build/gitrev.txt
-echo $(git rev-parse HEAD) > build/gitrev.txt
-
-if [ "%{_ossnoss}" == "NOREDIST" -o "%{_ossnoss}" == "noredist" ] ; then
- echo "Executing mvn packaging with non-redistributable libraries"
- if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then
- echo "Executing mvn noredist packaging with simulator ..."
- mvn -Psystemvm -Dnoredist -Dsimulator clean package
- else
- echo "Executing mvn noredist packaging without simulator..."
- mvn -Psystemvm -Dnoredist clean package
- fi
-else
- if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then
- echo "Executing mvn default packaging simulator ..."
- mvn -Psystemvm -Dsimulator clean package
- else
- echo "Executing mvn default packaging without simulator ..."
- mvn -Psystemvm clean package
- fi
-fi
-
-%install
-[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
-# Common directories
-mkdir -p ${RPM_BUILD_ROOT}%{_bindir}
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/ipallocator
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
-mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d
-
-# Common
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/vms
-mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch}/
-mkdir -p ${RPM_BUILD_ROOT}%/usr/bin
-cp -r scripts/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
-install -D systemvm/dist/systemvm.iso ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/vms/systemvm.iso
-install python/lib/cloud_utils.py ${RPM_BUILD_ROOT}%{python_sitearch}/cloud_utils.py
-cp -r python/lib/cloudutils ${RPM_BUILD_ROOT}%{python_sitearch}/
-python -m py_compile ${RPM_BUILD_ROOT}%{python_sitearch}/cloud_utils.py
-python -m compileall ${RPM_BUILD_ROOT}%{python_sitearch}/cloudutils
-cp build/gitrev.txt ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
-cp packaging/centos63/cloudstack-sccs ${RPM_BUILD_ROOT}/usr/bin
-
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts/network/cisco
-cp -r plugins/network-elements/cisco-vnmc/scripts/network/cisco/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts/network/cisco
-
-# Management
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management
-
-# Specific for tomcat
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
-ln -sf /usr/share/tomcat/bin ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/bin
-ln -sf /etc/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/conf
-ln -sf /usr/share/tomcat/lib ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib
-ln -sf /var/log/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/logs
-ln -sf /var/cache/%{name}/management/temp ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/temp
-ln -sf /var/cache/%{name}/management/work ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/work
-
-/bin/touch ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management/catalina.out
-
-install -D client/target/utilities/bin/cloud-migrate-databases ${RPM_BUILD_ROOT}%{_bindir}/%{name}-migrate-databases
-install -D client/target/utilities/bin/cloud-set-guest-password ${RPM_BUILD_ROOT}%{_bindir}/%{name}-set-guest-password
-install -D client/target/utilities/bin/cloud-set-guest-sshkey ${RPM_BUILD_ROOT}%{_bindir}/%{name}-set-guest-sshkey
-install -D client/target/utilities/bin/cloud-setup-databases ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-databases
-install -D client/target/utilities/bin/cloud-setup-encryption ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-encryption
-install -D client/target/utilities/bin/cloud-setup-management ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-management
-install -D client/target/utilities/bin/cloud-setup-baremetal ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-baremetal
-install -D client/target/utilities/bin/cloud-sysvmadm ${RPM_BUILD_ROOT}%{_bindir}/%{name}-sysvmadm
-install -D client/target/utilities/bin/cloud-update-xenserver-licenses ${RPM_BUILD_ROOT}%{_bindir}/%{name}-update-xenserver-licenses
-
-cp -r client/target/utilities/scripts/db/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
-cp -r client/target/cloud-client-ui-%{_maventag}/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client
-
-# Don't package the scripts in the management webapp
-rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/scripts
-rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/vms
-
-for name in db.properties log4j-cloud.xml tomcat6-nonssl.conf tomcat6-ssl.conf server-ssl.xml server-nonssl.xml \
- catalina.policy catalina.properties classpath.conf tomcat-users.xml web.xml environment.properties java.security.ciphers ; do
- mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/$name \
- ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/$name
-done
-
-ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml \
- ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/log4j-cloud.xml
-
-mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/context.xml \
- ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
-
-install python/bindir/cloud-external-ipallocator.py ${RPM_BUILD_ROOT}%{_bindir}/%{name}-external-ipallocator.py
-install -D client/target/pythonlibs/jasypt-1.9.2.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar
-
-install -D packaging/centos63/cloud-ipallocator.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-ipallocator
-install -D packaging/centos63/cloud-management.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-management
-install -D packaging/centos63/cloud-management.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}-management
-install -D packaging/centos63/tomcat.sh ${RPM_BUILD_ROOT}%{_initrddir}/tomcat.sh
-install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina
-
-chmod 440 ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
-
-# KVM Agent
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/plugins
-install -D packaging/centos63/cloud-agent.rc ${RPM_BUILD_ROOT}%{_sysconfdir}/init.d/%{name}-agent
-install -D agent/target/transformed/agent.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/agent.properties
-install -D agent/target/transformed/environment.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/environment.properties
-install -D agent/target/transformed/log4j-cloud.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/log4j-cloud.xml
-install -D agent/target/transformed/cloud-setup-agent ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-agent
-install -D agent/target/transformed/cloudstack-agent-upgrade ${RPM_BUILD_ROOT}%{_bindir}/%{name}-agent-upgrade
-install -D agent/target/transformed/libvirtqemuhook ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib/libvirtqemuhook
-install -D agent/target/transformed/cloud-ssh ${RPM_BUILD_ROOT}%{_bindir}/%{name}-ssh
-install -D agent/target/transformed/cloudstack-agent-profile.sh ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/%{name}-agent-profile.sh
-install -D agent/target/transformed/cloudstack-agent.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-agent
-install -D plugins/hypervisors/kvm/target/cloud-plugin-hypervisor-kvm-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%name-agent/lib/cloud-plugin-hypervisor-kvm-%{_maventag}.jar
-cp plugins/hypervisors/kvm/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib
-
-# Usage server
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib
-install -D usage/target/cloud-usage-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/cloud-usage-%{_maventag}.jar
-install -D usage/target/transformed/db.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/db.properties
-install -D usage/target/transformed/log4j-cloud_usage.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/log4j-cloud.xml
-cp usage/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib/
-install -D packaging/centos63/cloud-usage.rc ${RPM_BUILD_ROOT}/%{_sysconfdir}/init.d/%{name}-usage
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/usage/
-
-# CLI
-cp -r cloud-cli/cloudtool ${RPM_BUILD_ROOT}%{python_sitearch}/
-install cloud-cli/cloudapis/cloud.py ${RPM_BUILD_ROOT}%{python_sitearch}/cloudapis.py
-
-# MYSQL HA
-if [ "x%{_ossnoss}" == "xnoredist" ] ; then
- mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-mysql-ha/lib
- cp -r plugins/database/mysql-ha/target/cloud-plugin-database-mysqlha-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-mysql-ha/lib
-fi
-
-#License files from whisker
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-management-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-management-%{version}/LICENSE
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-common-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-common-%{version}/LICENSE
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-agent-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-agent-%{version}/LICENSE
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
-if [ "x%{_ossnoss}" == "xnoredist" ] ; then
- install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/LICENSE
- install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/NOTICE
-fi
-
-%clean
-[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
-
-%preun management
-/sbin/service cloudstack-management stop || true
-if [ "$1" == "0" ] ; then
- /sbin/chkconfig --del cloudstack-management > /dev/null 2>&1 || true
- /sbin/service cloudstack-management stop > /dev/null 2>&1 || true
-fi
-
-%pre management
-id cloud > /dev/null 2>&1 || /usr/sbin/useradd -M -c "CloudStack unprivileged user" \
- -r -s /bin/sh -d %{_localstatedir}/cloudstack/management cloud|| true
-
-# set max file descriptors for cloud user to 4096
-sed -i /"cloud hard nofile"/d /etc/security/limits.conf
-sed -i /"cloud soft nofile"/d /etc/security/limits.conf
-echo "cloud hard nofile 4096" >> /etc/security/limits.conf
-echo "cloud soft nofile 4096" >> /etc/security/limits.conf
-rm -rf %{_localstatedir}/cache/cloud
-rm -rf %{_localstatedir}/cache/cloudstack
-# user harcoded here, also hardcoded on wscript
-
-# save old configs if they exist (for upgrade). Otherwise we may lose them
-# when the old packages are erased. There are a lot of properties files here.
-if [ -d "%{_sysconfdir}/cloud" ] ; then
- mv %{_sysconfdir}/cloud %{_sysconfdir}/cloud.rpmsave
-fi
-
-# in case of upgrade to 4.9+ copy commands.properties if not exists in /etc/cloudstack/management/
-if [ "$1" == "2" ] ; then
- if [ -f "%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/commands.properties" ] && [ ! -f "%{_sysconfdir}/%{name}/management/commands.properties" ] ; then
- cp -p %{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/commands.properties %{_sysconfdir}/%{name}/management/commands.properties
- fi
-fi
-
-%post management
-if [ "$1" == "1" ] ; then
- /sbin/chkconfig --add cloudstack-management > /dev/null 2>&1 || true
- /sbin/chkconfig --level 345 cloudstack-management on > /dev/null 2>&1 || true
-fi
-
-if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util ] ; then
- echo Please download vhd-util from http://download.cloudstack.org/tools/vhd-util and put it in
- echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/
-fi
-
-# change cloud user's home to 4.1+ version if needed. Would do this via 'usermod', but it
-# requires that cloud user not be in use, so RPM could not be installed while management is running
-if getent passwd cloud | grep -q /var/lib/cloud; then
- sed -i 's/\/var\/lib\/cloud\/management/\/var\/cloudstack\/management/g' /etc/passwd
-fi
-
-# if saved configs from upgrade exist, copy them over
-if [ -f "%{_sysconfdir}/cloud.rpmsave/management/db.properties" ]; then
- mv %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/management/db.properties.rpmnew
- cp -p %{_sysconfdir}/cloud.rpmsave/management/db.properties %{_sysconfdir}/%{name}/management
- if [ -f "%{_sysconfdir}/cloud.rpmsave/management/key" ]; then
- cp -p %{_sysconfdir}/cloud.rpmsave/management/key %{_sysconfdir}/%{name}/management
- fi
- # make sure we only do this on the first install of this RPM, don't want to overwrite on a reinstall
- mv %{_sysconfdir}/cloud.rpmsave/management/db.properties %{_sysconfdir}/cloud.rpmsave/management/db.properties.rpmsave
-fi
-
-# Choose server.xml and tomcat.conf links based on old config, if exists
-serverxml=%{_sysconfdir}/%{name}/management/server.xml
-oldserverxml=%{_sysconfdir}/cloud.rpmsave/management/server.xml
-if [ -f $oldserverxml ] || [ -L $oldserverxml ]; then
- if stat -c %N $oldserverxml| grep -q server-ssl ; then
- if [ -f $serverxml ] || [ -L $serverxml ]; then rm -f $serverxml; fi
- ln -s %{_sysconfdir}/%{name}/management/server-ssl.xml $serverxml
- echo Please verify the server.xml in saved folder, and make the required changes manually , saved folder available at $oldserverxml
- else
- if [ -f $serverxml ] || [ -L $serverxml ]; then rm -f $serverxml; fi
- ln -s %{_sysconfdir}/%{name}/management/server-nonssl.xml $serverxml
- echo Please verify the server.xml in saved folder, and make the required changes manually , saved folder available at $oldserverxml
-
- fi
-else
- echo "Unable to determine ssl settings for server.xml, please run cloudstack-setup-management manually"
-fi
-
-
-tomcatconf=%{_sysconfdir}/%{name}/management/tomcat6.conf
-oldtomcatconf=%{_sysconfdir}/cloud.rpmsave/management/tomcat6.conf
-if [ -f $oldtomcatconf ] || [ -L $oldtomcatconf ] ; then
- if stat -c %N $oldtomcatconf| grep -q tomcat6-ssl ; then
- if [ -f $tomcatconf ] || [ -L $tomcatconf ]; then rm -f $tomcatconf; fi
- ln -s %{_sysconfdir}/%{name}/management/tomcat6-ssl.conf $tomcatconf
- echo Please verify the tomcat6.conf in saved folder, and make the required changes manually , saved folder available at $oldtomcatconf
- else
- if [ -f $tomcatconf ] || [ -L $tomcatconf ]; then rm -f $tomcatconf; fi
- ln -s %{_sysconfdir}/%{name}/management/tomcat6-nonssl.conf $tomcatconf
- echo Please verify the tomcat6.conf in saved folder, and make the required changes manually , saved folder available at $oldtomcatconf
- fi
-else
- echo "Unable to determine ssl settings for tomcat.conf, please run cloudstack-setup-management manually"
-fi
-
-%preun agent
-/sbin/service cloudstack-agent stop || true
-if [ "$1" == "0" ] ; then
- /sbin/chkconfig --del cloudstack-agent > /dev/null 2>&1 || true
- /sbin/service cloudstack-agent stop > /dev/null 2>&1 || true
-fi
-
-%pre agent
-
-# save old configs if they exist (for upgrade). Otherwise we may lose them
-# when the old packages are erased. There are a lot of properties files here.
-if [ -d "%{_sysconfdir}/cloud" ] ; then
- mv %{_sysconfdir}/cloud %{_sysconfdir}/cloud.rpmsave
-fi
-
-%post agent
-if [ "$1" == "1" ] ; then
- echo "Running %{_bindir}/%{name}-agent-upgrade to update bridge name for upgrade from CloudStack 4.0.x (and before) to CloudStack 4.1 (and later)"
- %{_bindir}/%{name}-agent-upgrade
- if [ ! -d %{_sysconfdir}/libvirt/hooks ] ; then
- mkdir %{_sysconfdir}/libvirt/hooks
- fi
- cp -a ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib/libvirtqemuhook %{_sysconfdir}/libvirt/hooks/qemu
- /sbin/service libvirtd restart
- /sbin/chkconfig --add cloudstack-agent > /dev/null 2>&1 || true
- /sbin/chkconfig --level 345 cloudstack-agent on > /dev/null 2>&1 || true
-fi
-
-# if saved configs from upgrade exist, copy them over
-if [ -f "%{_sysconfdir}/cloud.rpmsave/agent/agent.properties" ]; then
- mv %{_sysconfdir}/%{name}/agent/agent.properties %{_sysconfdir}/%{name}/agent/agent.properties.rpmnew
- cp -p %{_sysconfdir}/cloud.rpmsave/agent/agent.properties %{_sysconfdir}/%{name}/agent
- # make sure we only do this on the first install of this RPM, don't want to overwrite on a reinstall
- mv %{_sysconfdir}/cloud.rpmsave/agent/agent.properties %{_sysconfdir}/cloud.rpmsave/agent/agent.properties.rpmsave
-fi
-
-%preun usage
-/sbin/service cloudstack-usage stop || true
-if [ "$1" == "0" ] ; then
- /sbin/chkconfig --del cloudstack-usage > /dev/null 2>&1 || true
- /sbin/service cloudstack-usage stop > /dev/null 2>&1 || true
-fi
-
-%post usage
-if [ -f "%{_sysconfdir}/%{name}/management/db.properties" ]; then
- echo Replacing db.properties with management server db.properties
- rm -f %{_sysconfdir}/%{name}/usage/db.properties
- ln -s %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/usage/db.properties
- /sbin/chkconfig --add cloudstack-usage > /dev/null 2>&1 || true
- /sbin/chkconfig --level 345 cloudstack-usage on > /dev/null 2>&1 || true
-fi
-
-if [ -f "%{_sysconfdir}/%{name}/management/key" ]; then
- echo Replacing key with management server key
- rm -f %{_sysconfdir}/%{name}/usage/key
- ln -s %{_sysconfdir}/%{name}/management/key %{_sysconfdir}/%{name}/usage/key
-fi
-
-#No default permission as the permission setup is complex
-%files management
-%defattr(-,root,root,-)
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina/localhost
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina/localhost/client
-%dir %{_datadir}/%{name}-management
-%dir %attr(0770,root,cloud) %{_localstatedir}/%{name}/mnt
-%dir %attr(0770,cloud,cloud) %{_localstatedir}/%{name}/management
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/work
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/temp
-%dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/management
-%config(noreplace) %{_sysconfdir}/sysconfig/%{name}-management
-%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/db.properties
-%config(noreplace) %{_sysconfdir}/%{name}/management/log4j-cloud.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat6-nonssl.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat6-ssl.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/Catalina/localhost/client/context.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.policy
-%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.properties
-%config(noreplace) %{_sysconfdir}/%{name}/management/classpath.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/server-nonssl.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/server-ssl.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat-users.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/web.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/environment.properties
-%config(noreplace) %{_sysconfdir}/%{name}/management/java.security.ciphers
-%config(noreplace) %{_sysconfdir}/%{name}/management/commons-logging.properties
-%attr(0755,root,root) %{_initrddir}/%{name}-management
-%attr(0755,root,root) %{_initrddir}/tomcat.sh
-
-%attr(0755,root,root) %{_bindir}/%{name}-setup-management
-%attr(0755,root,root) %{_bindir}/%{name}-update-xenserver-licenses
-%{_datadir}/%{name}-management/webapps
-%{_datadir}/%{name}-management/bin
-%{_datadir}/%{name}-management/conf
-%{_datadir}/%{name}-management/lib
-%{_datadir}/%{name}-management/logs
-%{_datadir}/%{name}-management/temp
-%{_datadir}/%{name}-management/work
-%attr(0755,root,root) %{_bindir}/%{name}-setup-databases
-%attr(0755,root,root) %{_bindir}/%{name}-migrate-databases
-%attr(0755,root,root) %{_bindir}/%{name}-set-guest-password
-%attr(0755,root,root) %{_bindir}/%{name}-set-guest-sshkey
-%attr(0755,root,root) %{_bindir}/%{name}-sysvmadm
-%attr(0755,root,root) %{_bindir}/%{name}-setup-encryption
-%{_datadir}/%{name}-management/setup/*.sql
-%{_datadir}/%{name}-management/setup/db/*.sql
-%{_datadir}/%{name}-management/setup/*.sh
-%{_datadir}/%{name}-management/setup/server-setup.xml
-%attr(0755,root,root) %{_bindir}/%{name}-external-ipallocator.py
-%attr(0755,root,root) %{_initrddir}/%{name}-ipallocator
-%dir %attr(0770,root,root) %{_localstatedir}/log/%{name}/ipallocator
-%{_defaultdocdir}/%{name}-management-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-management-%{version}/NOTICE
-%attr(0644,cloud,cloud) %{_localstatedir}/log/%{name}/management/catalina.out
-%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-catalina
-
-%files agent
-%attr(0755,root,root) %{_bindir}/%{name}-setup-agent
-%attr(0755,root,root) %{_bindir}/%{name}-agent-upgrade
-%attr(0755,root,root) %{_bindir}/%{name}-ssh
-%attr(0755,root,root) %{_sysconfdir}/init.d/%{name}-agent
-%attr(0644,root,root) %{_sysconfdir}/profile.d/%{name}-agent-profile.sh
-%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-agent
-%attr(0755,root,root) %{_datadir}/%{name}-common/scripts/network/cisco
-%config(noreplace) %{_sysconfdir}/%{name}/agent
-%dir %{_localstatedir}/log/%{name}/agent
-%attr(0644,root,root) %{_datadir}/%{name}-agent/lib/*.jar
-%attr(0755,root,root) %{_datadir}/%{name}-agent/lib/libvirtqemuhook
-%dir %{_datadir}/%{name}-agent/plugins
-%{_defaultdocdir}/%{name}-agent-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-agent-%{version}/NOTICE
-
-%files common
-%dir %attr(0755,root,root) %{python_sitearch}/cloudutils
-%dir %attr(0755,root,root) %{_datadir}/%{name}-common/vms
-%attr(0755,root,root) %{_datadir}/%{name}-common/scripts
-%attr(0755,root,root) /usr/bin/cloudstack-sccs
-%attr(0644, root, root) %{_datadir}/%{name}-common/vms/systemvm.iso
-%attr(0644,root,root) %{python_sitearch}/cloud_utils.py
-%attr(0644,root,root) %{python_sitearch}/cloud_utils.pyc
-%attr(0644,root,root) %{python_sitearch}/cloudutils/*
-%attr(0644, root, root) %{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar
-%{_defaultdocdir}/%{name}-common-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-common-%{version}/NOTICE
-
-%files 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/lib/*.jar
-%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/log4j-cloud.xml
-%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
-
-%files cli
-%attr(0644,root,root) %{python_sitearch}/cloudapis.py
-%attr(0644,root,root) %{python_sitearch}/cloudtool/__init__.py
-%attr(0644,root,root) %{python_sitearch}/cloudtool/utils.py
-%{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
-
-%if "%{_ossnoss}" == "noredist"
-%files mysql-ha
-%defattr(0644,cloud,cloud,0755)
-%attr(0644,root,root) %{_datadir}/%{name}-mysql-ha/lib/*
-%{_defaultdocdir}/%{name}-mysql-ha-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-mysql-ha-%{version}/NOTICE
-%endif
-
-%files baremetal-agent
-%attr(0755,root,root) %{_bindir}/cloudstack-setup-baremetal
-
-%changelog
-* Thu Apr 30 2015 Rohit Yadav 4.6.0
-- Remove awsapi package
-
-* Fri Jul 04 2014 Hugo Trippaers 4.5.0
-- Add a package for the mysql ha module
-
-* Wed Oct 03 2012 Hugo Trippaers 4.1.0
-- new style spec file
diff --git a/packaging/fedora20/cloudstack-agent.te b/packaging/fedora20/cloudstack-agent.te
deleted file mode 100644
index 4259e173a46..00000000000
--- a/packaging/fedora20/cloudstack-agent.te
+++ /dev/null
@@ -1,33 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-module cloudstack-agent 1.0;
-
-require {
- type nfs_t;
- type system_conf_t;
- type mount_t;
- type qemu_t;
- class file unlink;
- class filesystem getattr;
-}
-
-#============= mount_t ==============
-allow mount_t system_conf_t:file unlink;
-
-#============= qemu_t ==============
-allow qemu_t nfs_t:filesystem getattr;
diff --git a/packaging/fedora20/replace.properties b/packaging/fedora20/replace.properties
deleted file mode 100644
index bdf6e223b59..00000000000
--- a/packaging/fedora20/replace.properties
+++ /dev/null
@@ -1,59 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-DBUSER=cloud
-DBPW=cloud
-DBROOTPW=
-MSLOG=vmops.log
-APISERVERLOG=api.log
-DBHOST=localhost
-DBDRIVER=jdbc:mysql
-COMPONENTS-SPEC=components-premium.xml
-REMOTEHOST=localhost
-AGENTCLASSPATH=
-AGENTLOG=/var/log/cloudstack/agent/agent.log
-AGENTLOGDIR=/var/log/cloudstack/agent/
-AGENTSYSCONFDIR=/etc/cloudstack/agent
-APISERVERLOG=/var/log/cloudstack/management/apilog.log
-BINDIR=/usr/bin
-COMMONLIBDIR=/usr/share/cloudstack-common
-CONFIGUREVARS=
-DEPSCLASSPATH=
-DOCDIR=
-IPALOCATORLOG=/var/log/cloudstack/management/ipallocator.log
-JAVADIR=/usr/share/java
-LIBEXECDIR=/usr/libexec
-LOCKDIR=/var/lock
-MSCLASSPATH=
-MSCONF=/etc/cloudstack/management
-MSENVIRON=/usr/share/cloudstack-management
-MSLOG=/var/log/cloudstack/management/management-server.log
-MSLOGDIR=/var/log/cloudstack/management/
-MSMNTDIR=/var/cloudstack/mnt
-MSUSER=cloud
-PIDDIR=/var/run
-PLUGINJAVADIR=/usr/share/cloudstack-management/plugin
-PREMIUMJAVADIR=/usr/share/cloudstack-management/premium
-PYTHONDIR=/usr/lib/python2.6/site-packages/
-SERVERSYSCONFDIR=/etc/sysconfig
-SETUPDATADIR=/usr/share/cloudstack-management/setup
-SYSCONFDIR=/etc/sysconfig
-SYSTEMCLASSPATH=
-SYSTEMJARS=
-USAGECLASSPATH=
-USAGELOG=/var/log/cloudstack/usage/usage.log
-USAGESYSCONFDIR=/etc/sysconfig
diff --git a/packaging/fedora20/tomcat.sh b/packaging/fedora20/tomcat.sh
deleted file mode 100644
index 76ba7419a53..00000000000
--- a/packaging/fedora20/tomcat.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-service tomcat start
diff --git a/packaging/fedora21/cloud-agent.rc b/packaging/fedora21/cloud-agent.rc
deleted file mode 100755
index 2defa148883..00000000000
--- a/packaging/fedora21/cloud-agent.rc
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/bin/bash
-
-# chkconfig: 35 99 10
-# description: Cloud Agent
-# pidfile: /var/run/cloudstack-agent.pid
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# WARNING: if this script is changed, then all other initscripts MUST BE changed to match it as well
-
-. /etc/rc.d/init.d/functions
-
-# set environment variables
-
-SHORTNAME=$(basename $0 | sed -e 's/^[SK][0-9][0-9]//')
-PIDFILE=/var/run/"$SHORTNAME".pid
-LOCKFILE=/var/lock/subsys/"$SHORTNAME"
-LOGDIR=/var/log/cloudstack/agent
-LOGFILE=${LOGDIR}/agent.log
-PROGNAME="Cloud Agent"
-CLASS="com.cloud.agent.AgentShell"
-JSVC=`which jsvc 2>/dev/null`;
-
-# exit if we don't find jsvc
-if [ -z "$JSVC" ]; then
- echo no jsvc found in path;
- exit 1;
-fi
-
-unset OPTIONS
-[ -r /etc/sysconfig/"$SHORTNAME" ] && source /etc/sysconfig/"$SHORTNAME"
-
-# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun"
-
-for jdir in $JDK_DIRS; do
- if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
- JAVA_HOME="$jdir"
- fi
-done
-export JAVA_HOME
-
-ACP=`ls /usr/share/cloudstack-agent/lib/*.jar | tr '\n' ':' | sed s'/.$//'`
-PCP=`ls /usr/share/cloudstack-agent/plugins/*.jar 2>/dev/null | tr '\n' ':' | sed s'/.$//'`
-
-# We need to append the JSVC daemon JAR to the classpath
-# AgentShell implements the JSVC daemon methods
-export CLASSPATH="/usr/share/java/commons-daemon.jar:$ACP:$PCP:/etc/cloudstack/agent:/usr/share/cloudstack-common/scripts"
-
-start() {
- echo -n $"Starting $PROGNAME: "
- if hostname --fqdn >/dev/null 2>&1 ; then
- $JSVC -Xms256m -Xmx2048m -cp "$CLASSPATH" -pidfile "$PIDFILE" \
- -errfile $LOGDIR/cloudstack-agent.err -outfile $LOGDIR/cloudstack-agent.out $CLASS
- RETVAL=$?
- echo
- else
- failure
- echo
- echo The host name does not resolve properly to an IP address. Cannot start "$PROGNAME". > /dev/stderr
- RETVAL=9
- fi
- [ $RETVAL = 0 ] && touch ${LOCKFILE}
- return $RETVAL
-}
-
-stop() {
- echo -n $"Stopping $PROGNAME: "
- $JSVC -pidfile "$PIDFILE" -stop $CLASS
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && rm -f ${LOCKFILE} ${PIDFILE}
-}
-
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status -p ${PIDFILE} $SHORTNAME
- RETVAL=$?
- ;;
- restart)
- stop
- sleep 3
- start
- ;;
- condrestart)
- if status -p ${PIDFILE} $SHORTNAME >&/dev/null; then
- stop
- sleep 3
- start
- fi
- ;;
- *)
- echo $"Usage: $SHORTNAME {start|stop|restart|condrestart|status|help}"
- RETVAL=3
-esac
-
-exit $RETVAL
diff --git a/packaging/fedora21/cloud-ipallocator.rc b/packaging/fedora21/cloud-ipallocator.rc
deleted file mode 100755
index d3eadec8a82..00000000000
--- a/packaging/fedora21/cloud-ipallocator.rc
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# chkconfig: 35 99 10
-# description: Cloud Agent
-
-# WARNING: if this script is changed, then all other initscripts MUST BE changed to match it as well
-
-. /etc/rc.d/init.d/functions
-
-# set environment variables
-
-SHORTNAME="$(basename $(readlink -f $0))"
-PIDFILE=/var/run/"$SHORTNAME".pid
-LOCKFILE=/var/lock/subsys/"$SHORTNAME"
-LOGFILE=/var/log/cloudstack/ipallocator/ipallocator.log
-PROGNAME="External IPAllocator"
-
-unset OPTIONS
-[ -r /etc/sysconfig/"$SHORTNAME" ] && source /etc/sysconfig/"$SHORTNAME"
-DAEMONIZE=/usr/bin/cloud-daemonize
-PROG=/usr/bin/cloud-external-ipallocator.py
-OPTIONS=8083
-
-start() {
- echo -n $"Starting $PROGNAME: "
- if hostname --fqdn >/dev/null 2>&1 ; then
- daemon --check=$SHORTNAME --pidfile=${PIDFILE} "$DAEMONIZE" \
- -n "$SHORTNAME" -p "$PIDFILE" -l "$LOGFILE" "$PROG" $OPTIONS
- RETVAL=$?
- echo
- else
- failure
- echo
- echo The host name does not resolve properly to an IP address. Cannot start "$PROGNAME". > /dev/stderr
- RETVAL=9
- fi
- [ $RETVAL = 0 ] && touch ${LOCKFILE}
- return $RETVAL
-}
-
-stop() {
- echo -n $"Stopping $PROGNAME: "
- killproc -p ${PIDFILE} $SHORTNAME # -d 10 $SHORTNAME
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && rm -f ${LOCKFILE} ${PIDFILE}
-}
-
-
-# See how we were called.
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status -p ${PIDFILE} $SHORTNAME
- RETVAL=$?
- ;;
- restart)
- stop
- sleep 3
- start
- ;;
- condrestart)
- if status -p ${PIDFILE} $SHORTNAME >&/dev/null; then
- stop
- sleep 3
- start
- fi
- ;;
- *)
- echo $"Usage: $SHORTNAME {start|stop|restart|condrestart|status|help}"
- RETVAL=3
-esac
-
-exit $RETVAL
-
diff --git a/packaging/fedora21/cloud-management.rc b/packaging/fedora21/cloud-management.rc
deleted file mode 100755
index f5ed7a8048a..00000000000
--- a/packaging/fedora21/cloud-management.rc
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-# cloudstack-management This shell script takes care of starting and stopping Tomcat
-#
-# chkconfig: - 80 20
-#
-### BEGIN INIT INFO
-# Provides: tomcat6
-# Required-Start: $network $syslog
-# Required-Stop: $network $syslog
-# Default-Start:
-# Default-Stop:
-# Description: Release implementation for Servlet 2.5 and JSP 2.1
-# Short-Description: start and stop tomcat
-### END INIT INFO
-#
-# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
-# - heavily rewritten by Deepak Bhole and Jason Corley
-#
-
-if [ -r /etc/rc.d/init.d/functions ]; then
- . /etc/rc.d/init.d/functions
-fi
-if [ -r /lib/lsb/init-functions ]; then
- . /lib/lsb/init-functions
-fi
-
-
-NAME="$(basename $(readlink -f $0))"
-export SERVICE_NAME="$NAME"
-stop() {
- SHUTDOWN_WAIT="30"
- count="0"
- if [ -f /var/run/${NAME}.pid ]; then
- pid=`cat /var/run/${NAME}.pid`
- kill $pid &>/dev/null
- until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \
- [ "$count" -gt "$SHUTDOWN_WAIT" ]
- do
- sleep 1
- let count="${count}+1"
- done
- if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then
- log_success_msg "Stopping ${NAME}:"
- rm -f /var/run/${NAME}.pid
- rm -f /var/lock/subsys/${NAME}
- else
- log_failure_msg "Stopping ${NAME}:"
- fi
- else
- echo "Cannot find PID file of ${NAME}"
- log_failure_msg "Stopping ${NAME}:"
- fi
-}
-
-set_ulimit() {
- fd_limit=`ulimit -n`
- if [ "$fd_limit" != "4096" ]; then
- user=`whoami`
- if [ $user == "root" ]; then
- ulimit -n 4096
- fi
- fi
-}
-
-handle_pid_file() {
- if [ "$1" -ne 0 ] && [ "$1" -ne 3 ]; then
- echo "The pid file locates at /var/run/${NAME}.pid and lock file at /var/lock/subsys/${NAME}.
- Starting ${NAME} will take care of them or you can manually clean up."
- fi
-}
-
-start() {
- readpath=$(readlink -f $0)
- source `dirname $readpath`/tomcat.sh
-}
-
-# See how we were called.
-case "$1" in
- status)
- status ${NAME}
- RETVAL=$?
- handle_pid_file $RETVAL
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- set start
- set_ulimit
- start
- ;;
- *)
- set_ulimit
- start
-esac
-
-exit $RETVAL
diff --git a/packaging/fedora21/cloud-management.sysconfig b/packaging/fedora21/cloud-management.sysconfig
deleted file mode 100644
index cbc8b8b36c1..00000000000
--- a/packaging/fedora21/cloud-management.sysconfig
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This file is loaded in /etc/init.d/vmopsmanagement
-# ATM we only do two things here:
-
-dummy=1 ; export TOMCAT_CFG=/etc/cloudstack/management/tomcat6.conf ; . /etc/cloudstack/management/tomcat6.conf
-#--------------------------
-
diff --git a/packaging/fedora21/cloud-usage.rc b/packaging/fedora21/cloud-usage.rc
deleted file mode 100755
index 774113745d7..00000000000
--- a/packaging/fedora21/cloud-usage.rc
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/bin/bash
-
-### BEGIN INIT INFO
-# Provides: cloudstack-usage
-# Required-Start: $network $local_fs
-# Required-Stop: $network $local_fs
-# Default-Start: 3 4 5
-# Default-Stop: 0 1 2 6
-# Short-Description: Start/stop Apache CloudStack Usage Monitor
-# Description: This scripts Starts/Stops the Apache CloudStack Usage Monitor
-## The CloudStack Usage Monitor is a part of the Apache CloudStack project and is used
-## for storing usage statistics from instances.
-## JSVC (Java daemonizing) is used for starting and stopping the usage monitor.
-### END INIT INFO
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-. /etc/rc.d/init.d/functions
-
-SHORTNAME="cloudstack-usage"
-PIDFILE=/var/run/"$SHORTNAME".pid
-LOCKFILE=/var/lock/subsys/"$SHORTNAME"
-LOGDIR=/var/log/cloudstack/usage
-LOGFILE=${LOGDIR}/usage.log
-PROGNAME="CloudStack Usage Monitor"
-CLASS="com.cloud.usage.UsageServer"
-PROG="jsvc"
-DAEMON="/usr/bin/jsvc"
-USER=cloud
-
-unset OPTIONS
-[ -r /etc/sysconfig/default/"$SHORTNAME" ] && source /etc/sysconfig/default/"$SHORTNAME"
-
-setJavaHome() {
- # use $JAVA_HOME if defined
- if [ -n "$JAVA_HOME" ] ; then
- return
- fi
-
- # try java first
- java=$(which java 2>/dev/null || :)
-
- # try javac if java is not found
- if [ -z "$java" ] ; then
- java=$(which javac 2>/dev/null || :)
- fi
-
- if [ -n "$java" ] ; then
- JAVA_HOME=$(dirname $(dirname $(readlink -e $java)))
- export JAVA_HOME
- return
- fi
-
- # didnt find java home. exiting with error
- exit 1
-}
-
-setJavaHome
-
-SCP=""
-DCP=""
-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":"/usr/share/java/mysql-connector-java.jar"
-
-# We need to append the JSVC daemon and mysql-connector JAR to the classpath
-# AgentShell implements the JSVC daemon methods
-export CLASSPATH="$SCP:$DCP:$UCP:$JCP:/etc/cloudstack/usage"
-
-start() {
- if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
- echo "$PROGNAME apparently already running"
- exit 0
- fi
-
- if hostname --fqdn >/dev/null 2>&1 ; then
- true
- else
- echo "The host name does not resolve properly to an IP address. Cannot start $PROGNAME"
- exit 1
- fi
-
- echo -n "Starting $PROGNAME" "$SHORTNAME"
-
- if daemon --pidfile $PIDFILE $DAEMON -home "$JAVA_HOME" -cp "$CLASSPATH" -pidfile "$PIDFILE" -user "$USER" \
- -errfile $LOGDIR/cloudstack-usage.err -outfile $LOGDIR/cloudstack-usage.out -Dpid=$$ $CLASS
- RETVAL=$?
- then
- rc=0
- sleep 1
- if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
- failure
- rc=1
- fi
- else
- rc=1
- fi
-
- if [ $rc -eq 0 ]; then
- success
- else
- failure
- rm -f "$PIDFILE"
- fi
- echo
-}
-
-stop() {
- echo -n "Stopping $PROGNAME" "$SHORTNAME"
- killproc -p $PIDFILE $DAEMON
- if [ "$?" -eq 0 ]; then
- success
- else
- failure
- fi
- rm -f "$PIDFILE"
- echo
-}
-
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status -p $PIDFILE $SHORTNAME
- RETVAL=$?
- ;;
- restart | force-reload)
- stop
- sleep 3
- start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|force-reload|status}"
- RETVAL=3
-esac
-
-exit $RETVAL
-
diff --git a/packaging/fedora21/cloud.spec b/packaging/fedora21/cloud.spec
deleted file mode 100644
index de05370c86b..00000000000
--- a/packaging/fedora21/cloud.spec
+++ /dev/null
@@ -1,649 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-%define __os_install_post %{nil}
-%global debug_package %{nil}
-
-# DISABLE the post-percentinstall java repacking and line number stripping
-# we need to find a way to just disable the java repacking and line number stripping, but not the autodeps
-
-Name: cloudstack
-Summary: CloudStack IaaS Platform
-#http://fedoraproject.org/wiki/PackageNamingGuidelines#Pre-Release_packages
-%if "%{?_prerelease}" != ""
-%define _maventag %{_ver}-SNAPSHOT
-Release: %{_rel}%{dist}
-%else
-%define _maventag %{_ver}
-Release: %{_rel}%{dist}
-%endif
-
-%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
-
-Version: %{_ver}
-License: ASL 2.0
-Vendor: Apache CloudStack
-Packager: Apache CloudStack
-Group: System Environment/Libraries
-# FIXME do groups for every single one of the subpackages
-Source0: %{name}-%{_maventag}.tgz
-BuildRoot: %{_tmppath}/%{name}-%{_maventag}-%{release}-build
-
-BuildRequires: java-1.8.0-openjdk-devel
-BuildRequires: tomcat
-BuildRequires: ws-commons-util
-BuildRequires: jpackage-utils
-BuildRequires: gcc
-BuildRequires: glibc-devel
-BuildRequires: /usr/bin/mkisofs
-BuildRequires: mysql-connector-python
-#BuildRequires: maven => 3.0.0
-
-%description
-CloudStack is a highly-scalable elastic, open source,
-intelligent IaaS cloud implementation.
-
-%package management
-Summary: CloudStack management server UI
-Requires: tomcat
-Requires: java-1.8.0-openjdk
-Requires: python
-Requires: bash
-Requires: bzip2
-Requires: gzip
-Requires: unzip
-Requires: /sbin/mount.nfs
-Requires: openssh-clients
-Requires: nfs-utils
-Requires: wget
-Requires: mysql
-Requires: mysql-connector-java
-Requires: ws-commons-util
-Requires: jpackage-utils
-Requires: sudo
-Requires: /sbin/service
-Requires: /sbin/chkconfig
-Requires: /usr/bin/ssh-keygen
-Requires: mkisofs
-Requires: mysql-connector-python
-Requires: python-paramiko
-Requires: ipmitool
-Requires: %{name}-common = %{_ver}
-Obsoletes: cloud-client < 4.1.0
-Obsoletes: cloud-client-ui < 4.1.0
-Obsoletes: cloud-server < 4.1.0
-Obsoletes: cloud-test < 4.1.0
-Provides: cloud-client
-Group: System Environment/Libraries
-%description management
-The CloudStack management server is the central point of coordination,
-management, and intelligence in CloudStack.
-
-%package common
-Summary: Apache CloudStack common files and scripts
-Requires: python
-Obsoletes: cloud-test < 4.1.0
-Obsoletes: cloud-scripts < 4.1.0
-Obsoletes: cloud-utils < 4.1.0
-Obsoletes: cloud-core < 4.1.0
-Obsoletes: cloud-deps < 4.1.0
-Obsoletes: cloud-python < 4.1.0
-Obsoletes: cloud-setup < 4.1.0
-Obsoletes: cloud-cli < 4.1.0
-Obsoletes: cloud-daemonize < 4.1.0
-Group: System Environment/Libraries
-%description common
-The Apache CloudStack files shared between agent and management server
-
-%package agent
-Summary: CloudStack Agent for KVM hypervisors
-Requires: openssh-clients
-Requires: java-1.8.0-openjdk
-Requires: %{name}-common = %{_ver}
-Requires: libvirt
-Requires: bridge-utils
-Requires: ebtables
-Requires: iptables
-Requires: ethtool
-Requires: vconfig
-Requires: ipset
-Requires: jsvc
-Requires: jakarta-commons-daemon
-Requires: jakarta-commons-daemon-jsvc
-Requires: perl
-Requires: libvirt-python
-Requires: qemu-img
-Requires: qemu-kvm
-Requires: libcgroup-tools
-Requires: net-tools
-Provides: cloud-agent
-Obsoletes: cloud-agent < 4.1.0
-Obsoletes: cloud-agent-libs < 4.1.0
-Obsoletes: cloud-test < 4.1.0
-Group: System Environment/Libraries
-%description agent
-The CloudStack agent for KVM hypervisors
-
-%package baremetal-agent
-Summary: CloudStack baremetal agent
-Requires: tftp-server
-Requires: xinetd
-Requires: syslinux
-Requires: chkconfig
-Requires: dhcp
-Requires: httpd
-Group: System Environment/Libraries
-%description baremetal-agent
-The CloudStack baremetal agent
-
-%package usage
-Summary: CloudStack Usage calculation server
-Requires: java-1.8.0-openjdk
-Requires: jsvc
-Requires: jakarta-commons-daemon
-Requires: jakarta-commons-daemon-jsvc
-Group: System Environment/Libraries
-Obsoletes: cloud-usage < 4.1.0
-Provides: cloud-usage
-%description usage
-The CloudStack usage calculation service
-
-%package cli
-Summary: Apache CloudStack CLI
-Provides: python-cloudmonkey
-Provides: python-marvin
-Group: System Environment/Libraries
-%description cli
-Apache CloudStack command line interface
-
-%if "%{_ossnoss}" == "noredist"
-%package mysql-ha
-Summary: Apache CloudStack Balancing Strategy for MySQL
-Requires: mysql-connector-java
-Requires: tomcat
-Group: System Environmnet/Libraries
-%description mysql-ha
-Apache CloudStack Balancing Strategy for MySQL
-
-%endif
-
-%prep
-echo Doing CloudStack build
-
-%setup -q -n %{name}-%{_maventag}
-
-%build
-
-cp packaging/centos63/replace.properties build/replace.properties
-echo VERSION=%{_maventag} >> build/replace.properties
-echo PACKAGE=%{name} >> build/replace.properties
-touch build/gitrev.txt
-echo $(git rev-parse HEAD) > build/gitrev.txt
-
-if [ "%{_ossnoss}" == "NOREDIST" -o "%{_ossnoss}" == "noredist" ] ; then
- echo "Executing mvn packaging with non-redistributable libraries"
- if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then
- echo "Executing mvn noredist packaging with simulator ..."
- mvn -Psystemvm -Dnoredist -Dsimulator clean package
- else
- echo "Executing mvn noredist packaging without simulator..."
- mvn -Psystemvm -Dnoredist clean package
- fi
-else
- if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then
- echo "Executing mvn default packaging simulator ..."
- mvn -Psystemvm -Dsimulator clean package
- else
- echo "Executing mvn default packaging without simulator ..."
- mvn -Psystemvm clean package
- fi
-fi
-
-%install
-[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
-# Common directories
-mkdir -p ${RPM_BUILD_ROOT}%{_bindir}
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/ipallocator
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
-mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d
-
-# Common
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/vms
-mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch}/
-mkdir -p ${RPM_BUILD_ROOT}%/usr/bin
-cp -r scripts/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
-install -D systemvm/dist/systemvm.iso ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/vms/systemvm.iso
-install python/lib/cloud_utils.py ${RPM_BUILD_ROOT}%{python_sitearch}/cloud_utils.py
-cp -r python/lib/cloudutils ${RPM_BUILD_ROOT}%{python_sitearch}/
-python -m py_compile ${RPM_BUILD_ROOT}%{python_sitearch}/cloud_utils.py
-python -m compileall ${RPM_BUILD_ROOT}%{python_sitearch}/cloudutils
-cp build/gitrev.txt ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
-cp packaging/centos63/cloudstack-sccs ${RPM_BUILD_ROOT}/usr/bin
-
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts/network/cisco
-cp -r plugins/network-elements/cisco-vnmc/scripts/network/cisco/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts/network/cisco
-
-# Management
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management
-
-# Specific for tomcat
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
-ln -sf /usr/share/tomcat/bin ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/bin
-ln -sf /etc/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/conf
-ln -sf /usr/share/tomcat/lib ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib
-ln -sf /var/log/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/logs
-ln -sf /var/cache/%{name}/management/temp ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/temp
-ln -sf /var/cache/%{name}/management/work ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/work
-
-/bin/touch ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management/catalina.out
-
-install -D client/target/utilities/bin/cloud-migrate-databases ${RPM_BUILD_ROOT}%{_bindir}/%{name}-migrate-databases
-install -D client/target/utilities/bin/cloud-set-guest-password ${RPM_BUILD_ROOT}%{_bindir}/%{name}-set-guest-password
-install -D client/target/utilities/bin/cloud-set-guest-sshkey ${RPM_BUILD_ROOT}%{_bindir}/%{name}-set-guest-sshkey
-install -D client/target/utilities/bin/cloud-setup-databases ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-databases
-install -D client/target/utilities/bin/cloud-setup-encryption ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-encryption
-install -D client/target/utilities/bin/cloud-setup-management ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-management
-install -D client/target/utilities/bin/cloud-setup-baremetal ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-baremetal
-install -D client/target/utilities/bin/cloud-sysvmadm ${RPM_BUILD_ROOT}%{_bindir}/%{name}-sysvmadm
-install -D client/target/utilities/bin/cloud-update-xenserver-licenses ${RPM_BUILD_ROOT}%{_bindir}/%{name}-update-xenserver-licenses
-
-cp -r client/target/utilities/scripts/db/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
-cp -r client/target/cloud-client-ui-%{_maventag}/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client
-
-# Don't package the scripts in the management webapp
-rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/scripts
-rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/vms
-
-for name in db.properties log4j-cloud.xml tomcat6-nonssl.conf tomcat6-ssl.conf server-ssl.xml server-nonssl.xml \
- catalina.policy catalina.properties classpath.conf tomcat-users.xml web.xml environment.properties java.security.ciphers ; do
- mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/$name \
- ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/$name
-done
-
-ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml \
- ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/log4j-cloud.xml
-
-mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/context.xml \
- ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
-
-install python/bindir/cloud-external-ipallocator.py ${RPM_BUILD_ROOT}%{_bindir}/%{name}-external-ipallocator.py
-install -D client/target/pythonlibs/jasypt-1.9.2.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar
-
-install -D packaging/centos63/cloud-ipallocator.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-ipallocator
-install -D packaging/centos63/cloud-management.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-management
-install -D packaging/centos63/cloud-management.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}-management
-install -D packaging/centos63/tomcat.sh ${RPM_BUILD_ROOT}%{_initrddir}/tomcat.sh
-install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina
-
-chmod 440 ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost
-chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
-chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
-
-# KVM Agent
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/plugins
-install -D packaging/centos63/cloud-agent.rc ${RPM_BUILD_ROOT}%{_sysconfdir}/init.d/%{name}-agent
-install -D agent/target/transformed/agent.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/agent.properties
-install -D agent/target/transformed/environment.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/environment.properties
-install -D agent/target/transformed/log4j-cloud.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/log4j-cloud.xml
-install -D agent/target/transformed/cloud-setup-agent ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-agent
-install -D agent/target/transformed/cloudstack-agent-upgrade ${RPM_BUILD_ROOT}%{_bindir}/%{name}-agent-upgrade
-install -D agent/target/transformed/libvirtqemuhook ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib/libvirtqemuhook
-install -D agent/target/transformed/cloud-ssh ${RPM_BUILD_ROOT}%{_bindir}/%{name}-ssh
-install -D agent/target/transformed/cloudstack-agent-profile.sh ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/%{name}-agent-profile.sh
-install -D agent/target/transformed/cloudstack-agent.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-agent
-install -D plugins/hypervisors/kvm/target/cloud-plugin-hypervisor-kvm-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%name-agent/lib/cloud-plugin-hypervisor-kvm-%{_maventag}.jar
-cp plugins/hypervisors/kvm/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib
-
-# Usage server
-mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage
-mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib
-install -D usage/target/cloud-usage-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/cloud-usage-%{_maventag}.jar
-install -D usage/target/transformed/db.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/db.properties
-install -D usage/target/transformed/log4j-cloud_usage.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/log4j-cloud.xml
-cp usage/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib/
-install -D packaging/centos63/cloud-usage.rc ${RPM_BUILD_ROOT}/%{_sysconfdir}/init.d/%{name}-usage
-mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/usage/
-
-# CLI
-cp -r cloud-cli/cloudtool ${RPM_BUILD_ROOT}%{python_sitearch}/
-install cloud-cli/cloudapis/cloud.py ${RPM_BUILD_ROOT}%{python_sitearch}/cloudapis.py
-
-# MYSQL HA
-if [ "x%{_ossnoss}" == "xnoredist" ] ; then
- mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-mysql-ha/lib
- cp -r plugins/database/mysql-ha/target/cloud-plugin-database-mysqlha-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-mysql-ha/lib
-fi
-
-#License files from whisker
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-management-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-management-%{version}/LICENSE
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-common-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-common-%{version}/LICENSE
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-agent-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-agent-%{version}/LICENSE
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
-install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
-install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
-if [ "x%{_ossnoss}" == "xnoredist" ] ; then
- install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/LICENSE
- install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/NOTICE
-fi
-
-%clean
-[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
-
-%preun management
-/sbin/service cloudstack-management stop || true
-if [ "$1" == "0" ] ; then
- /sbin/chkconfig --del cloudstack-management > /dev/null 2>&1 || true
- /sbin/service cloudstack-management stop > /dev/null 2>&1 || true
-fi
-
-%pre management
-id cloud > /dev/null 2>&1 || /usr/sbin/useradd -M -c "CloudStack unprivileged user" \
- -r -s /bin/sh -d %{_localstatedir}/cloudstack/management cloud|| true
-
-# set max file descriptors for cloud user to 4096
-sed -i /"cloud hard nofile"/d /etc/security/limits.conf
-sed -i /"cloud soft nofile"/d /etc/security/limits.conf
-echo "cloud hard nofile 4096" >> /etc/security/limits.conf
-echo "cloud soft nofile 4096" >> /etc/security/limits.conf
-rm -rf %{_localstatedir}/cache/cloud
-rm -rf %{_localstatedir}/cache/cloudstack
-# user harcoded here, also hardcoded on wscript
-
-# save old configs if they exist (for upgrade). Otherwise we may lose them
-# when the old packages are erased. There are a lot of properties files here.
-if [ -d "%{_sysconfdir}/cloud" ] ; then
- mv %{_sysconfdir}/cloud %{_sysconfdir}/cloud.rpmsave
-fi
-
-# in case of upgrade to 4.9+ copy commands.properties if not exists in /etc/cloudstack/management/
-if [ "$1" == "2" ] ; then
- if [ -f "%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/commands.properties" ] && [ ! -f "%{_sysconfdir}/%{name}/management/commands.properties" ] ; then
- cp -p %{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/commands.properties %{_sysconfdir}/%{name}/management/commands.properties
- fi
-fi
-
-%post management
-if [ "$1" == "1" ] ; then
- /sbin/chkconfig --add cloudstack-management > /dev/null 2>&1 || true
- /sbin/chkconfig --level 345 cloudstack-management on > /dev/null 2>&1 || true
-fi
-
-if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util ] ; then
- echo Please download vhd-util from http://download.cloudstack.org/tools/vhd-util and put it in
- echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/
-fi
-
-# change cloud user's home to 4.1+ version if needed. Would do this via 'usermod', but it
-# requires that cloud user not be in use, so RPM could not be installed while management is running
-if getent passwd cloud | grep -q /var/lib/cloud; then
- sed -i 's/\/var\/lib\/cloud\/management/\/var\/cloudstack\/management/g' /etc/passwd
-fi
-
-# if saved configs from upgrade exist, copy them over
-if [ -f "%{_sysconfdir}/cloud.rpmsave/management/db.properties" ]; then
- mv %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/management/db.properties.rpmnew
- cp -p %{_sysconfdir}/cloud.rpmsave/management/db.properties %{_sysconfdir}/%{name}/management
- if [ -f "%{_sysconfdir}/cloud.rpmsave/management/key" ]; then
- cp -p %{_sysconfdir}/cloud.rpmsave/management/key %{_sysconfdir}/%{name}/management
- fi
- # make sure we only do this on the first install of this RPM, don't want to overwrite on a reinstall
- mv %{_sysconfdir}/cloud.rpmsave/management/db.properties %{_sysconfdir}/cloud.rpmsave/management/db.properties.rpmsave
-fi
-
-# Choose server.xml and tomcat.conf links based on old config, if exists
-serverxml=%{_sysconfdir}/%{name}/management/server.xml
-oldserverxml=%{_sysconfdir}/cloud.rpmsave/management/server.xml
-if [ -f $oldserverxml ] || [ -L $oldserverxml ]; then
- if stat -c %N $oldserverxml| grep -q server-ssl ; then
- if [ -f $serverxml ] || [ -L $serverxml ]; then rm -f $serverxml; fi
- ln -s %{_sysconfdir}/%{name}/management/server-ssl.xml $serverxml
- echo Please verify the server.xml in saved folder, and make the required changes manually , saved folder available at $oldserverxml
- else
- if [ -f $serverxml ] || [ -L $serverxml ]; then rm -f $serverxml; fi
- ln -s %{_sysconfdir}/%{name}/management/server-nonssl.xml $serverxml
- echo Please verify the server.xml in saved folder, and make the required changes manually , saved folder available at $oldserverxml
-
- fi
-else
- echo "Unable to determine ssl settings for server.xml, please run cloudstack-setup-management manually"
-fi
-
-
-tomcatconf=%{_sysconfdir}/%{name}/management/tomcat6.conf
-oldtomcatconf=%{_sysconfdir}/cloud.rpmsave/management/tomcat6.conf
-if [ -f $oldtomcatconf ] || [ -L $oldtomcatconf ] ; then
- if stat -c %N $oldtomcatconf| grep -q tomcat6-ssl ; then
- if [ -f $tomcatconf ] || [ -L $tomcatconf ]; then rm -f $tomcatconf; fi
- ln -s %{_sysconfdir}/%{name}/management/tomcat6-ssl.conf $tomcatconf
- echo Please verify the tomcat6.conf in saved folder, and make the required changes manually , saved folder available at $oldtomcatconf
- else
- if [ -f $tomcatconf ] || [ -L $tomcatconf ]; then rm -f $tomcatconf; fi
- ln -s %{_sysconfdir}/%{name}/management/tomcat6-nonssl.conf $tomcatconf
- echo Please verify the tomcat6.conf in saved folder, and make the required changes manually , saved folder available at $oldtomcatconf
- fi
-else
- echo "Unable to determine ssl settings for tomcat.conf, please run cloudstack-setup-management manually"
-fi
-
-%preun agent
-/sbin/service cloudstack-agent stop || true
-if [ "$1" == "0" ] ; then
- /sbin/chkconfig --del cloudstack-agent > /dev/null 2>&1 || true
- /sbin/service cloudstack-agent stop > /dev/null 2>&1 || true
-fi
-
-%pre agent
-
-# save old configs if they exist (for upgrade). Otherwise we may lose them
-# when the old packages are erased. There are a lot of properties files here.
-if [ -d "%{_sysconfdir}/cloud" ] ; then
- mv %{_sysconfdir}/cloud %{_sysconfdir}/cloud.rpmsave
-fi
-
-%post agent
-if [ "$1" == "1" ] ; then
- echo "Running %{_bindir}/%{name}-agent-upgrade to update bridge name for upgrade from CloudStack 4.0.x (and before) to CloudStack 4.1 (and later)"
- %{_bindir}/%{name}-agent-upgrade
- if [ ! -d %{_sysconfdir}/libvirt/hooks ] ; then
- mkdir %{_sysconfdir}/libvirt/hooks
- fi
- cp -a ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib/libvirtqemuhook %{_sysconfdir}/libvirt/hooks/qemu
- /sbin/service libvirtd restart
- /sbin/chkconfig --add cloudstack-agent > /dev/null 2>&1 || true
- /sbin/chkconfig --level 345 cloudstack-agent on > /dev/null 2>&1 || true
-fi
-
-# if saved configs from upgrade exist, copy them over
-if [ -f "%{_sysconfdir}/cloud.rpmsave/agent/agent.properties" ]; then
- mv %{_sysconfdir}/%{name}/agent/agent.properties %{_sysconfdir}/%{name}/agent/agent.properties.rpmnew
- cp -p %{_sysconfdir}/cloud.rpmsave/agent/agent.properties %{_sysconfdir}/%{name}/agent
- # make sure we only do this on the first install of this RPM, don't want to overwrite on a reinstall
- mv %{_sysconfdir}/cloud.rpmsave/agent/agent.properties %{_sysconfdir}/cloud.rpmsave/agent/agent.properties.rpmsave
-fi
-
-%preun usage
-/sbin/service cloudstack-usage stop || true
-if [ "$1" == "0" ] ; then
- /sbin/chkconfig --del cloudstack-usage > /dev/null 2>&1 || true
- /sbin/service cloudstack-usage stop > /dev/null 2>&1 || true
-fi
-
-%post usage
-if [ -f "%{_sysconfdir}/%{name}/management/db.properties" ]; then
- echo Replacing db.properties with management server db.properties
- rm -f %{_sysconfdir}/%{name}/usage/db.properties
- ln -s %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/usage/db.properties
- /sbin/chkconfig --add cloudstack-usage > /dev/null 2>&1 || true
- /sbin/chkconfig --level 345 cloudstack-usage on > /dev/null 2>&1 || true
-fi
-
-if [ -f "%{_sysconfdir}/%{name}/management/key" ]; then
- echo Replacing key with management server key
- rm -f %{_sysconfdir}/%{name}/usage/key
- ln -s %{_sysconfdir}/%{name}/management/key %{_sysconfdir}/%{name}/usage/key
-fi
-
-#No default permission as the permission setup is complex
-%files management
-%defattr(-,root,root,-)
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina/localhost
-%dir %attr(0770,root,cloud) %{_sysconfdir}/%{name}/management/Catalina/localhost/client
-%dir %{_datadir}/%{name}-management
-%dir %attr(0770,root,cloud) %{_localstatedir}/%{name}/mnt
-%dir %attr(0770,cloud,cloud) %{_localstatedir}/%{name}/management
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/work
-%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/temp
-%dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/management
-%config(noreplace) %{_sysconfdir}/sysconfig/%{name}-management
-%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/db.properties
-%config(noreplace) %{_sysconfdir}/%{name}/management/log4j-cloud.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat6-nonssl.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat6-ssl.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/Catalina/localhost/client/context.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.policy
-%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.properties
-%config(noreplace) %{_sysconfdir}/%{name}/management/classpath.conf
-%config(noreplace) %{_sysconfdir}/%{name}/management/server-nonssl.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/server-ssl.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat-users.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/web.xml
-%config(noreplace) %{_sysconfdir}/%{name}/management/environment.properties
-%config(noreplace) %{_sysconfdir}/%{name}/management/java.security.ciphers
-%config(noreplace) %{_sysconfdir}/%{name}/management/commons-logging.properties
-%attr(0755,root,root) %{_initrddir}/%{name}-management
-%attr(0755,root,root) %{_initrddir}/tomcat.sh
-
-%attr(0755,root,root) %{_bindir}/%{name}-setup-management
-%attr(0755,root,root) %{_bindir}/%{name}-update-xenserver-licenses
-%{_datadir}/%{name}-management/webapps
-%{_datadir}/%{name}-management/bin
-%{_datadir}/%{name}-management/conf
-%{_datadir}/%{name}-management/lib
-%{_datadir}/%{name}-management/logs
-%{_datadir}/%{name}-management/temp
-%{_datadir}/%{name}-management/work
-%attr(0755,root,root) %{_bindir}/%{name}-setup-databases
-%attr(0755,root,root) %{_bindir}/%{name}-migrate-databases
-%attr(0755,root,root) %{_bindir}/%{name}-set-guest-password
-%attr(0755,root,root) %{_bindir}/%{name}-set-guest-sshkey
-%attr(0755,root,root) %{_bindir}/%{name}-sysvmadm
-%attr(0755,root,root) %{_bindir}/%{name}-setup-encryption
-%{_datadir}/%{name}-management/setup/*.sql
-%{_datadir}/%{name}-management/setup/db/*.sql
-%{_datadir}/%{name}-management/setup/*.sh
-%{_datadir}/%{name}-management/setup/server-setup.xml
-%attr(0755,root,root) %{_bindir}/%{name}-external-ipallocator.py
-%attr(0755,root,root) %{_initrddir}/%{name}-ipallocator
-%dir %attr(0770,root,root) %{_localstatedir}/log/%{name}/ipallocator
-%{_defaultdocdir}/%{name}-management-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-management-%{version}/NOTICE
-%attr(0644,cloud,cloud) %{_localstatedir}/log/%{name}/management/catalina.out
-%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-catalina
-
-%files agent
-%attr(0755,root,root) %{_bindir}/%{name}-setup-agent
-%attr(0755,root,root) %{_bindir}/%{name}-agent-upgrade
-%attr(0755,root,root) %{_bindir}/%{name}-ssh
-%attr(0755,root,root) %{_sysconfdir}/init.d/%{name}-agent
-%attr(0644,root,root) %{_sysconfdir}/profile.d/%{name}-agent-profile.sh
-%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-agent
-%attr(0755,root,root) %{_datadir}/%{name}-common/scripts/network/cisco
-%config(noreplace) %{_sysconfdir}/%{name}/agent
-%dir %{_localstatedir}/log/%{name}/agent
-%attr(0644,root,root) %{_datadir}/%{name}-agent/lib/*.jar
-%attr(0755,root,root) %{_datadir}/%{name}-agent/lib/libvirtqemuhook
-%dir %{_datadir}/%{name}-agent/plugins
-%{_defaultdocdir}/%{name}-agent-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-agent-%{version}/NOTICE
-
-%files common
-%dir %attr(0755,root,root) %{python_sitearch}/cloudutils
-%dir %attr(0755,root,root) %{_datadir}/%{name}-common/vms
-%attr(0755,root,root) %{_datadir}/%{name}-common/scripts
-%attr(0755,root,root) /usr/bin/cloudstack-sccs
-%attr(0644, root, root) %{_datadir}/%{name}-common/vms/systemvm.iso
-%attr(0644,root,root) %{python_sitearch}/cloud_utils.py
-%attr(0644,root,root) %{python_sitearch}/cloud_utils.pyc
-%attr(0644,root,root) %{python_sitearch}/cloudutils/*
-%attr(0644, root, root) %{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar
-%{_defaultdocdir}/%{name}-common-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-common-%{version}/NOTICE
-
-%files 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/lib/*.jar
-%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/log4j-cloud.xml
-%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
-
-%files cli
-%attr(0644,root,root) %{python_sitearch}/cloudapis.py
-%attr(0644,root,root) %{python_sitearch}/cloudtool/__init__.py
-%attr(0644,root,root) %{python_sitearch}/cloudtool/utils.py
-%{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
-
-%if "%{_ossnoss}" == "noredist"
-%files mysql-ha
-%defattr(0644,cloud,cloud,0755)
-%attr(0644,root,root) %{_datadir}/%{name}-mysql-ha/lib/*
-%{_defaultdocdir}/%{name}-mysql-ha-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-mysql-ha-%{version}/NOTICE
-%endif
-
-%files baremetal-agent
-%attr(0755,root,root) %{_bindir}/cloudstack-setup-baremetal
-
-%changelog
-* Thu Apr 30 2015 Rohit Yadav 4.6.0
-- Remove awsapi package
-
-* Fri Jul 04 2014 Hugo Trippaers 4.5.0
-- Add a package for the mysql ha module
-
-* Wed Oct 03 2012 Hugo Trippaers 4.1.0
-- new style spec file
diff --git a/packaging/fedora21/cloudstack-agent.te b/packaging/fedora21/cloudstack-agent.te
deleted file mode 100644
index 4259e173a46..00000000000
--- a/packaging/fedora21/cloudstack-agent.te
+++ /dev/null
@@ -1,33 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-module cloudstack-agent 1.0;
-
-require {
- type nfs_t;
- type system_conf_t;
- type mount_t;
- type qemu_t;
- class file unlink;
- class filesystem getattr;
-}
-
-#============= mount_t ==============
-allow mount_t system_conf_t:file unlink;
-
-#============= qemu_t ==============
-allow qemu_t nfs_t:filesystem getattr;
diff --git a/packaging/fedora21/replace.properties b/packaging/fedora21/replace.properties
deleted file mode 100644
index bdf6e223b59..00000000000
--- a/packaging/fedora21/replace.properties
+++ /dev/null
@@ -1,59 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-DBUSER=cloud
-DBPW=cloud
-DBROOTPW=
-MSLOG=vmops.log
-APISERVERLOG=api.log
-DBHOST=localhost
-DBDRIVER=jdbc:mysql
-COMPONENTS-SPEC=components-premium.xml
-REMOTEHOST=localhost
-AGENTCLASSPATH=
-AGENTLOG=/var/log/cloudstack/agent/agent.log
-AGENTLOGDIR=/var/log/cloudstack/agent/
-AGENTSYSCONFDIR=/etc/cloudstack/agent
-APISERVERLOG=/var/log/cloudstack/management/apilog.log
-BINDIR=/usr/bin
-COMMONLIBDIR=/usr/share/cloudstack-common
-CONFIGUREVARS=
-DEPSCLASSPATH=
-DOCDIR=
-IPALOCATORLOG=/var/log/cloudstack/management/ipallocator.log
-JAVADIR=/usr/share/java
-LIBEXECDIR=/usr/libexec
-LOCKDIR=/var/lock
-MSCLASSPATH=
-MSCONF=/etc/cloudstack/management
-MSENVIRON=/usr/share/cloudstack-management
-MSLOG=/var/log/cloudstack/management/management-server.log
-MSLOGDIR=/var/log/cloudstack/management/
-MSMNTDIR=/var/cloudstack/mnt
-MSUSER=cloud
-PIDDIR=/var/run
-PLUGINJAVADIR=/usr/share/cloudstack-management/plugin
-PREMIUMJAVADIR=/usr/share/cloudstack-management/premium
-PYTHONDIR=/usr/lib/python2.6/site-packages/
-SERVERSYSCONFDIR=/etc/sysconfig
-SETUPDATADIR=/usr/share/cloudstack-management/setup
-SYSCONFDIR=/etc/sysconfig
-SYSTEMCLASSPATH=
-SYSTEMJARS=
-USAGECLASSPATH=
-USAGELOG=/var/log/cloudstack/usage/usage.log
-USAGESYSCONFDIR=/etc/sysconfig
diff --git a/packaging/fedora21/tomcat.sh b/packaging/fedora21/tomcat.sh
deleted file mode 100644
index 76ba7419a53..00000000000
--- a/packaging/fedora21/tomcat.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-service tomcat start
diff --git a/packaging/systemd/cloudstack-management.default b/packaging/systemd/cloudstack-management.default
index eb5b654b1b0..fbdb25634a1 100644
--- a/packaging/systemd/cloudstack-management.default
+++ b/packaging/systemd/cloudstack-management.default
@@ -5,9 +5,9 @@
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,35 +15,21 @@
# specific language governing permissions and limitations
# under the License.
-# Required for a tocmat cloned service
-SERVICE_NAME=cloudstack-management
-
# Where your java installation lives
#JAVA_HOME="/usr/lib/jvm/java"
-# Where your cloudstack-management installation lives
-CATALINA_BASE="/usr/share/cloudstack-management"
-CATALINA_HOME="/usr/share/cloudstack-management"
-JASPER_HOME="/usr/share/cloudstack-management"
-CATALINA_TMPDIR="/usr/share/cloudstack-management/temp"
-
-
if [ -r "/etc/cloudstack/management/cloud.jks" ] ; then
- JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:PermSize=512M -XX:MaxPermSize=800m -Djavax.net.ssl.trustStore=/etc/cloudstack/management/cloud.jks -Djavax.net.ssl.trustStorePassword=vmops.com "
+ JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:PermSize=512M -XX:MaxPermSize=800m -Djavax.net.ssl.trustStore=/etc/cloudstack/management/cloud.jks -Djavax.net.ssl.trustStorePassword=vmops.com -Djava.security.properties=/etc/cloudstack/management/java.security.ciphers "
else
- JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:PermSize=512M -XX:MaxPermSize=800m"
+ JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:PermSize=512M -XX:MaxPermSize=800m -Djava.security.properties=/etc/cloudstack/management/java.security.ciphers "
fi
-TOMCAT_USER="cloud"
+CLOUDSTACK_USER="cloud"
-SECURITY_MANAGER="false"
+CLOUDSTACK_PID="/var/run/cloudstack-management.pid"
-SHUTDOWN_WAIT="30"
+LOGDIR="/var/log/cloudstack/management"
-SHUTDOWN_VERBOSE="false"
-
-# Set the TOMCAT_PID location
-CATALINA_PID="/var/run/cloudstack-management.pid"
-
-CLASSPATH=/etc/cloudstack/management:/usr/share/cloudstack-common:/usr/share/cloudstack-management/setup
+CLASSPATH="/etc/cloudstack/management:/usr/share/cloudstack-common:/usr/share/cloudstack-management/setup:/usr/share/cloudstack-management:/usr/share/java/mysql-connector-java.jar:/usr/share/java/commons-daemon.jar"
+BOOTSTRAP_CLASS=org.apache.cloudstack.ServerDaemon
diff --git a/packaging/systemd/cloudstack-management.default.ubuntu b/packaging/systemd/cloudstack-management.default.ubuntu
deleted file mode 100644
index 9b3d0c475b5..00000000000
--- a/packaging/systemd/cloudstack-management.default.ubuntu
+++ /dev/null
@@ -1,50 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# Required for a tocmat cloned service
-SERVICE_NAME=cloudstack-management
-
-# Where your java installation lives
-#JAVA_HOME="/usr/lib/jvm/java"
-
-# Where your cloudstack-management installation lives
-CATALINA_BASE="/usr/share/cloudstack-management"
-CATALINA_HOME="/usr/share/cloudstack-management"
-JASPER_HOME="/usr/share/cloudstack-management"
-CATALINA_TMPDIR="/usr/share/cloudstack-management/temp"
-
-
-if [ -r "/etc/cloudstack/management/cloud.jks" ] ; then
- JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:PermSize=512M -XX:MaxPermSize=800m -Djavax.net.ssl.trustStore=/etc/cloudstack/management/cloud.jks -Djavax.net.ssl.trustStorePassword=vmops.com "
-else
- JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:PermSize=512M -XX:MaxPermSize=800m"
-fi
-
-TOMCAT_USER="cloud"
-
-SECURITY_MANAGER="false"
-
-SHUTDOWN_WAIT="30"
-
-SHUTDOWN_VERBOSE="false"
-
-# Set the TOMCAT_PID location
-CATALINA_PID="/var/run/cloudstack-management.pid"
-
-CLASSPATH=/usr/share/java/commons-daemon.jar:/usr/share/cloudstack-management/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar:/etc/cloudstack/management:/usr/share/cloudstack-common:/usr/share/cloudstack-management/setup
-
-BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
diff --git a/packaging/systemd/cloudstack-management.service b/packaging/systemd/cloudstack-management.service
index c1ede4bed80..afcea8ca6f6 100644
--- a/packaging/systemd/cloudstack-management.service
+++ b/packaging/systemd/cloudstack-management.service
@@ -16,8 +16,6 @@
# under the License.
# Systemd unit file for CloudStack Management server
-#
-# clone tomcat service, see /usr/lib/systemd/system/tomcat.service
[Unit]
Description=CloudStack Management Server
@@ -25,16 +23,14 @@ After=syslog.target network.target
[Service]
UMask=0022
-Type=simple
-EnvironmentFile=/etc/tomcat/tomcat.conf
+Type=forking
Environment="NAME=cloudstack-management"
-EnvironmentFile=-/etc/default/cloudstack-management
-ExecStart=/usr/libexec/tomcat/server start
-ExecStop=/usr/libexec/tomcat/server stop
+EnvironmentFile=/etc/default/cloudstack-management
+ExecStartPre=/bin/bash -c "/bin/systemctl set-environment JAVA_HOME=$( readlink -f $( which java ) | sed s:bin/.*$:: )"
+ExecStartPre=/bin/bash -c "/bin/systemctl set-environment JARS=$(ls /usr/share/cloudstack-management/lib/*.jar | tr '\n' ':' | sed s'/.$//')"
+ExecStart=/usr/bin/jsvc -home "${JAVA_HOME}" -user "${CLOUDSTACK_USER}" -cp "${JARS}:${CLASSPATH}" -errfile ${LOGDIR}/${NAME}.err -cwd ${LOGDIR} -pidfile "${CLOUDSTACK_PID}" ${JAVA_OPTS} "${BOOTSTRAP_CLASS}"
+ExecStop=/usr/bin/jsvc -cp "$JARS:$CLASSPATH" -pidfile "$CLOUDSTACK_PID" -stop "$BOOTSTRAP_CLASS"
SuccessExitStatus=143
-User=cloud
-Group=cloud
[Install]
WantedBy=multi-user.target
-
diff --git a/packaging/systemd/cloudstack-management.service.ubuntu b/packaging/systemd/cloudstack-management.service.ubuntu
deleted file mode 100644
index 2fd77676399..00000000000
--- a/packaging/systemd/cloudstack-management.service.ubuntu
+++ /dev/null
@@ -1,40 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# Systemd unit file for CloudStack Management server
-#
-# clone tomcat service, see /usr/lib/systemd/system/tomcat.service
-
-[Unit]
-Description=CloudStack Management Server
-After=syslog.target network.target
-
-[Service]
-UMask=0022
-Type=forking
-Environment="NAME=cloudstack-management"
-EnvironmentFile=-/etc/default/cloudstack-management
-ExecStartPre=/bin/bash -c "/bin/systemctl set-environment JAVA_HOME=$( readlink -f $( which java ) | sed s:bin/.*$:: )"
-ExecStart=/usr/bin/jsvc -user "${TOMCAT_USER}" -cp "$CLASSPATH" \
- -outfile SYSLOG -errfile SYSLOG \
- -pidfile "${CATALINA_PID}" ${JAVA_OPTS} \
- -Dcatalina.base="${CATALINA_BASE}" -Dcatalina.home="${CATALINA_HOME}" -Djava.io.tmpdir="${CATALINA_TMPDIR}" "${BOOTSTRAP_CLASS}"
-ExecStop=/usr/bin/jsvc -cp "$CLASSPATH" -pidfile "$CATALINA_PID" \
- -stop "$BOOTSTRAP_CLASS"
-
-[Install]
-WantedBy=multi-user.target
diff --git a/plugins/ca/root-ca/src/org/apache/cloudstack/ca/provider/RootCAProvider.java b/plugins/ca/root-ca/src/org/apache/cloudstack/ca/provider/RootCAProvider.java
index 93c8d9d2f22..4a3585ac4e2 100644
--- a/plugins/ca/root-ca/src/org/apache/cloudstack/ca/provider/RootCAProvider.java
+++ b/plugins/ca/root-ca/src/org/apache/cloudstack/ca/provider/RootCAProvider.java
@@ -17,13 +17,9 @@
package org.apache.cloudstack.ca.provider;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringReader;
import java.math.BigInteger;
-import java.security.GeneralSecurityException;
import java.security.InvalidKeyException;
import java.security.KeyManagementException;
import java.security.KeyPair;
@@ -66,13 +62,10 @@ import org.bouncycastle.util.io.pem.PemObject;
import org.bouncycastle.util.io.pem.PemReader;
import com.cloud.certificate.dao.CrlDao;
-import com.cloud.utils.PropertiesUtil;
import com.cloud.utils.component.AdapterBase;
-import com.cloud.utils.db.DbProperties;
import com.cloud.utils.db.GlobalLock;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
-import com.cloud.utils.nio.Link;
import com.google.common.base.Strings;
public final class RootCAProvider extends AdapterBase implements CAProvider, Configurable {
@@ -84,6 +77,7 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
private static KeyPair caKeyPair = null;
private static X509Certificate caCertificate = null;
+ private static KeyStore managementKeyStore = null;
@Inject
private ConfigurationDao configDao;
@@ -165,7 +159,6 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
subject, CAManager.CertSignatureAlgorithm.value(),
validityDays, domainNames, ipAddresses);
return new Certificate(clientCertificate, null, Collections.singletonList(caCertificate));
-
}
////////////////////////////////////////////////////////
@@ -211,15 +204,11 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
/////////////// Root CA Trust Management ///////////////////
////////////////////////////////////////////////////////////
- private char[] getCaKeyStorePassphrase() {
- return KeyStoreUtils.defaultKeystorePassphrase;
- }
-
private KeyStore getCaKeyStore() throws CertificateException, NoSuchAlgorithmException, IOException, KeyStoreException {
final KeyStore ks = KeyStore.getInstance("JKS");
ks.load(null, null);
if (caKeyPair != null && caCertificate != null) {
- ks.setKeyEntry(caAlias, caKeyPair.getPrivate(), getCaKeyStorePassphrase(), new X509Certificate[]{caCertificate});
+ ks.setKeyEntry(caAlias, caKeyPair.getPrivate(), getKeyStorePassphrase(), new X509Certificate[]{caCertificate});
} else {
return null;
}
@@ -232,7 +221,7 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
final TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
final KeyStore ks = getCaKeyStore();
- kmf.init(ks, getCaKeyStorePassphrase());
+ kmf.init(ks, getKeyStorePassphrase());
tmf.init(ks);
final boolean authStrictness = rootCAAuthStrictness.value();
@@ -245,82 +234,24 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
return sslEngine;
}
- //////////////////////////////////////////////////
- /////////////// Root CA Config ///////////////////
- //////////////////////////////////////////////////
-
- private int getCaValidityDays() {
- return 365 * caValidityYears;
+ @Override
+ public KeyStore getManagementKeyStore() throws KeyStoreException {
+ return managementKeyStore;
}
- private char[] findKeyStorePassphrase() {
- char[] passphrase = KeyStoreUtils.defaultKeystorePassphrase;
- final String configuredPassphrase = DbProperties.getDbProperties().getProperty("db.cloud.keyStorePassphrase");
- if (configuredPassphrase != null) {
- passphrase = configuredPassphrase.toCharArray();
- }
- return passphrase;
- }
-
- private boolean createManagementServerKeystore(final String keyStoreFilePath, final char[] passphrase) {
- final Certificate managementServerCertificate = issueCertificate(Collections.singletonList(NetUtils.getHostName()),
- Collections.singletonList(NetUtils.getDefaultHostIp()), getCaValidityDays());
- if (managementServerCertificate == null || managementServerCertificate.getPrivateKey() == null) {
- throw new CloudRuntimeException("Failed to generate certificate and setup management server keystore");
- }
- LOG.info("Creating new management server certificate and keystore");
- try {
- final KeyStore keyStore = KeyStore.getInstance("JKS");
- keyStore.load(null, null);
- keyStore.setCertificateEntry(caAlias, caCertificate);
- keyStore.setKeyEntry(managementAlias, managementServerCertificate.getPrivateKey(), passphrase,
- new X509Certificate[]{managementServerCertificate.getClientCertificate(), caCertificate});
- final String tmpFile = KeyStoreUtils.defaultTmpKeyStoreFile;
- final FileOutputStream stream = new FileOutputStream(tmpFile);
- keyStore.store(stream, passphrase);
- stream.close();
- KeyStoreUtils.copyKeystore(keyStoreFilePath, tmpFile);
- LOG.debug("Saved default root CA (server) keystore file at:" + keyStoreFilePath);
- } catch (final CertificateException | NoSuchAlgorithmException | KeyStoreException | IOException e) {
- LOG.error("Failed to save root CA (server) keystore due to exception: ", e);
- return false;
- }
- return true;
- }
-
- private boolean checkManagementServerKeystore() {
- final File confFile = PropertiesUtil.findConfigFile("db.properties");
- if (confFile == null) {
- return false;
- }
- final char[] passphrase = findKeyStorePassphrase();
- final String keystorePath = confFile.getParent() + "/" + KeyStoreUtils.defaultKeystoreFile;
- final File keystoreFile = new File(keystorePath);
- if (keystoreFile.exists()) {
- try {
- final KeyStore msKeystore = Link.loadKeyStore(new FileInputStream(keystorePath), passphrase);
- try {
- final java.security.cert.Certificate[] msCertificates = msKeystore.getCertificateChain(managementAlias);
- if (msCertificates != null && msCertificates.length > 1) {
- msCertificates[0].verify(caKeyPair.getPublic());
- ((X509Certificate)msCertificates[0]).checkValidity();
- return true;
- }
- } catch (final CertificateException | NoSuchAlgorithmException | InvalidKeyException | NoSuchProviderException | SignatureException e) {
- LOG.info("Renewing management server keystore, current certificate has expired");
- return createManagementServerKeystore(keystoreFile.getAbsolutePath(), passphrase);
- }
- } catch (final GeneralSecurityException | IOException e) {
- LOG.error("Failed to read current management server keystore, renewing keystore!");
- }
- }
- return createManagementServerKeystore(keystoreFile.getAbsolutePath(), passphrase);
+ @Override
+ public char[] getKeyStorePassphrase() {
+ return KeyStoreUtils.defaultKeystorePassphrase;
}
/////////////////////////////////////////////////
/////////////// Root CA Setup ///////////////////
/////////////////////////////////////////////////
+ private int getCaValidityDays() {
+ return 365 * caValidityYears;
+ }
+
private boolean saveNewRootCAKeypair() {
try {
LOG.debug("Generating root CA public/private keys");
@@ -384,6 +315,29 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
return caCertificate != null;
}
+ private boolean loadManagementKeyStore() {
+ if (managementKeyStore != null) {
+ return true;
+ }
+ final Certificate serverCertificate = issueCertificate(Collections.singletonList(NetUtils.getHostName()),
+ Collections.singletonList(NetUtils.getDefaultHostIp()), getCaValidityDays());
+ if (serverCertificate == null || serverCertificate.getPrivateKey() == null) {
+ throw new CloudRuntimeException("Failed to generate management server certificate and load management server keystore");
+ }
+ LOG.info("Creating new management server certificate and keystore");
+ try {
+ managementKeyStore = KeyStore.getInstance("JKS");
+ managementKeyStore.load(null, null);
+ managementKeyStore.setCertificateEntry(caAlias, caCertificate);
+ managementKeyStore.setKeyEntry(managementAlias, serverCertificate.getPrivateKey(), getKeyStorePassphrase(),
+ new X509Certificate[]{serverCertificate.getClientCertificate(), caCertificate});
+ } catch (final CertificateException | NoSuchAlgorithmException | KeyStoreException | IOException e) {
+ LOG.error("Failed to load root CA management-server keystore due to exception: ", e);
+ return false;
+ }
+ return managementKeyStore != null;
+ }
+
private boolean setupCA() {
if (!loadRootCAKeyPair() && !saveNewRootCAKeypair()) {
LOG.error("Failed to save and load root CA keypair");
@@ -393,7 +347,7 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
LOG.error("Failed to save and load root CA certificate");
return false;
}
- if (!checkManagementServerKeystore()) {
+ if (!loadManagementKeyStore()) {
LOG.error("Failed to check and configure management server keystore");
return false;
}
@@ -402,7 +356,7 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
@Override
public boolean start() {
- return loadRootCAKeyPair() && loadRootCAKeyPair() && checkManagementServerKeystore();
+ return loadRootCAKeyPair() && loadRootCAKeyPair() && loadManagementKeyStore();
}
@Override
diff --git a/plugins/event-bus/kafka/pom.xml b/plugins/event-bus/kafka/pom.xml
index 4e38004ef10..e39596146f3 100644
--- a/plugins/event-bus/kafka/pom.xml
+++ b/plugins/event-bus/kafka/pom.xml
@@ -36,7 +36,7 @@
org.apache.kafka
kafka-clients
- 0.10.1.1
+ 0.11.0.1
diff --git a/plugins/event-bus/rabbitmq/pom.xml b/plugins/event-bus/rabbitmq/pom.xml
index ce7e8f76ae1..50c7710fce6 100644
--- a/plugins/event-bus/rabbitmq/pom.xml
+++ b/plugins/event-bus/rabbitmq/pom.xml
@@ -31,7 +31,7 @@
com.rabbitmq
amqp-client
- 3.6.6
+ 5.0.0
org.apache.cloudstack
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index 6247809fbf2..b73aec47566 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -27,11 +27,6 @@
../../pom.xml
-
- xml-apis
- xml-apis
- ${cs.xml-apis.version}
-
org.apache.xmlrpc
xmlrpc-client
diff --git a/plugins/network-elements/globodns/pom.xml b/plugins/network-elements/globodns/pom.xml
index 9dab3ded003..33cf20fbf52 100644
--- a/plugins/network-elements/globodns/pom.xml
+++ b/plugins/network-elements/globodns/pom.xml
@@ -31,7 +31,7 @@
com.globo.globodns
globodns-client
- 0.0.22
+ 0.0.23
diff --git a/plugins/network-elements/globodns/test/resources/db.properties b/plugins/network-elements/globodns/test/resources/db.properties
index 6e38a4a6f32..f62d76dd7ae 100644
--- a/plugins/network-elements/globodns/test/resources/db.properties
+++ b/plugins/network-elements/globodns/test/resources/db.properties
@@ -17,7 +17,7 @@
# management server clustering parameters, change cluster.node.IP to the machine IP address
-# in which the management server(Tomcat) is running
+# in which the management server is running
cluster.node.IP=127.0.0.1
cluster.servlet.port=9090
region.id=1
diff --git a/plugins/network-elements/juniper-contrail/pom.xml b/plugins/network-elements/juniper-contrail/pom.xml
index 14e5ba4063a..f98b629c52c 100644
--- a/plugins/network-elements/juniper-contrail/pom.xml
+++ b/plugins/network-elements/juniper-contrail/pom.xml
@@ -98,6 +98,12 @@
${project.version}
test
+
+ org.eclipse.jetty
+ jetty-security
+ ${cs.jetty.version}
+ test
+
com.google.guava
guava
diff --git a/plugins/outofbandmanagement-drivers/nested-cloudstack/pom.xml b/plugins/outofbandmanagement-drivers/nested-cloudstack/pom.xml
index 6759610ab4c..29ae8883155 100644
--- a/plugins/outofbandmanagement-drivers/nested-cloudstack/pom.xml
+++ b/plugins/outofbandmanagement-drivers/nested-cloudstack/pom.xml
@@ -40,7 +40,7 @@
br.com.autonomiccs
apache-cloudstack-java-client
- 1.0.5
+ 1.0.6
diff --git a/pom.xml b/pom.xml
index 938031c9744..45095d4c30e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,11 +33,11 @@
4.11.0.0-SNAPSHOT
pom
Apache CloudStack
- Apache CloudStack is an IaaS (“Infrastructure as a Service”) cloud orchestration platform.
+ Apache CloudStack is an IaaS ("Infrastructure as a Service") cloud orchestration platform.
http://www.cloudstack.org
- scm:git:https://git-wip-us.apache.org/repos/asf/cloudstack.git
- scm:git:https://git-wip-us.apache.org/repos/asf/cloudstack.git
+ scm:git:https://gitbox.apache.org/repos/asf/cloudstack.git
+ scm:git:https://gitbox.apache.org/repos/asf/cloudstack.git
jira
@@ -51,34 +51,33 @@
1.2.17
1.2.17
- 3.2.4
+ 3.2.5
1.4
1.6
1.10
1.10
- 3.2.2
1.1.1
0.5
3.0
4.12
1.3
- 1.12.0
- 1.57
+ 1.13.1
+ 1.58
0.1.54
- 2.1.1
+ 2.2.0
1.9.2
- 1.0.0-build220
+ 1.0.0-build221
2.6.11
1.7.2
18.0
- 20.0
+ 23.2-jre
6.2.0-3.1
- 4.5.2
- 4.4.5
+ 4.5.3
+ 4.4.8
3.1
5.1.34
- 1.4.9
+ 1.4.10
3.1.3
1.5.0-b01
1.4
@@ -86,24 +85,24 @@
1.5.1
1.2.8
2.0.4
- 3.1.0
+ 4.0.0
1.2
1.2.1
1.0-20081010.060147
6.0
- 4.3.4.RELEASE
+ 5.0.0.RELEASE
1.10.19
1.6.4
- 1.11.61
- 2.7.1
+ 1.11.213
+ 2.9.2
2.6
3.4
2.5
- 1.3.2
- 3.2.2
- 1.5.1
- 0.9.10
- 3.18.2-GA
+ 1.3.3
+ 4.1
+ 1.6
+ 0.9.11
+ 3.22.0-GA
0.16
build/replace.properties
0.5.1
@@ -118,14 +117,13 @@
2.6.4
1.4.01
2.8.1
- 1.8
- 2.3.4_1
- 9.2.20.v20161216
- 3.1.4
- 2.4.7
+ 1.9.1
+ 2.5.7_1
+ 3.2.0
+ 2.4.12
10.1
2.8.0
- 9.2.22.v20170606
+ 9.2.22.v20170606
@@ -248,8 +246,8 @@
${cs.batik.version}
- commons-collections
- commons-collections
+ org.apache.commons
+ commons-collections4
${cs.commons-collections.version}
@@ -326,7 +324,12 @@
com.amazonaws
- aws-java-sdk
+ aws-java-sdk-core
+ ${cs.aws.sdk.version}
+
+
+ com.amazonaws
+ aws-java-sdk-s3
${cs.aws.sdk.version}
@@ -444,12 +447,12 @@
org.aspectj
aspectjtools
- 1.8.10
+ 1.8.11
org.aspectj
aspectjweaver
- 1.8.10
+ 1.8.11
org.apache.axis
@@ -486,11 +489,6 @@
jetty-server
${cs.jetty.version}
-
- org.eclipse.jetty
- jetty-servlet
- ${cs.jetty.version}
-
org.eclipse.jetty
jetty-servlets
@@ -511,11 +509,6 @@
jetty-util
${cs.jetty.version}
-
- org.eclipse.jetty
- jetty-annotations
- ${cs.jetty.version}
-
@@ -823,11 +816,6 @@
-
- org.apache.tomcat.maven
- tomcat7-maven-plugin
- 2.2
-
org.apache.maven.plugins
maven-antrun-plugin
@@ -997,6 +985,7 @@
2.5
+ false
true
true
diff --git a/python/bindir/cloud-grab-dependent-library-versions b/python/bindir/cloud-grab-dependent-library-versions
index d485cb05e3b..f07ec1a46d5 100755
--- a/python/bindir/cloud-grab-dependent-library-versions
+++ b/python/bindir/cloud-grab-dependent-library-versions
@@ -18,7 +18,7 @@
import subprocess
-depLibraries = ['python', 'bzip2', 'gzip', 'unzip', 'openssh-clients', 'nfs-utils', 'wget', 'tomcat6', 'ws-commons-util', 'commons-dbcp',
+depLibraries = ['python', 'bzip2', 'gzip', 'unzip', 'openssh-clients', 'nfs-utils', 'wget', 'ws-commons-util', 'commons-dbcp',
'commons-collections', 'commons-httpclient', 'jpackage-utils', 'MySQL-python', 'python-paramiko', 'ipmitool', 'commons-httpclient', 'commons-collections',
'commons-pool', 'commons-dbcp', 'jakarta-commons-logging', 'java-*-openjdk']
diff --git a/python/lib/cloudutils/globalEnv.py b/python/lib/cloudutils/globalEnv.py
index f3a40b76fc9..1389bab9020 100644
--- a/python/lib/cloudutils/globalEnv.py
+++ b/python/lib/cloudutils/globalEnv.py
@@ -24,8 +24,6 @@ class globalEnv:
self.noStart = False
#myCloud/Agent/Console
self.agentMode = None
- #Tomcat6/Tomcat7
- self.svrConf = None
#debug
self.debug = False
#management server IP
diff --git a/python/lib/cloudutils/serviceConfigServer.py b/python/lib/cloudutils/serviceConfigServer.py
index c975f6eb9cf..17485721710 100644
--- a/python/lib/cloudutils/serviceConfigServer.py
+++ b/python/lib/cloudutils/serviceConfigServer.py
@@ -71,81 +71,14 @@ class cloudManagementConfig(serviceCfgBase):
#add DNAT 443 to 8250
if not bash("iptables-save |grep PREROUTING | grep 8250").isSuccess():
bash("iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 8250 ")
-
- #generate keystore
- keyPath = "/var/cloudstack/management/web.keystore"
- if not os.path.exists(keyPath):
- cmd = bash("keytool -genkey -keystore %s -storepass \"cloud.com\" -keypass \"cloud.com\" -validity 3650 -dname cn=\"Cloudstack User\",ou=\"mycloud.cloud.com\",o=\"mycloud.cloud.com\",c=\"Unknown\""%keyPath)
-
- if not cmd.isSuccess():
- raise CloudInternalException(cmd.getErrMsg())
- if not self.syscfg.env.svrConf == "Tomcat7":
- cfo = configFileOps("/etc/cloudstack/management/tomcat6.conf", self)
- cfo.add_lines("JAVA_OPTS+=\" -Djavax.net.ssl.trustStore=%s \""%keyPath)
elif self.syscfg.env.svrMode == "HttpsServer":
- if self.syscfg.env.svrConf == "Tomcat7":
- if not os.path.exists("/etc/cloudstack/management/server7-ssl.xml"):
- raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server7-ssl.xml, https enable failed")
- if os.path.exists("/etc/cloudstack/management/server.xml"):
- bash("rm -f /etc/cloudstack/management/server.xml")
- bash("ln -s /etc/cloudstack/management/server7-ssl.xml /etc/cloudstack/management/server.xml")
- if os.path.exists("/usr/share/tomcat7/bin"):
- bash("rm -f /usr/share/cloudstack-management/bin")
- bash("ln -s /usr/share/tomcat7/bin /usr/share/cloudstack-management/bin")
- if os.path.exists("/usr/share/tomcat7/lib"):
- bash("rm -f /usr/share/cloudstack-management/lib")
- bash("ln -s /usr/share/tomcat7/lib /usr/share/cloudstack-management/lib")
- else:
- if not os.path.exists("/etc/cloudstack/management/server-ssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-ssl.conf"):
- raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-ssl.xml or /etc/cloudstack/management/tomcat6-ssl.conf, https enable failed")
- if os.path.exists("/etc/cloudstack/management/server.xml"):
- bash("rm -f /etc/cloudstack/management/server.xml")
- if os.path.exists("/etc/cloudstack/management/tomcat6.conf"):
- bash("rm -f /etc/cloudstack/management/tomcat6.conf")
- bash("ln -s /etc/cloudstack/management/server-ssl.xml /etc/cloudstack/management/server.xml")
- bash("ln -s /etc/cloudstack/management/tomcat6-ssl.conf /etc/cloudstack/management/tomcat6.conf")
- if os.path.exists("/usr/share/tomcat6/bin"):
- bash("rm -f /usr/share/cloudstack-management/bin")
- bash("ln -s /usr/share/tomcat6/bin /usr/share/cloudstack-management/bin")
- if os.path.exists("/usr/share/tomcat6/lib"):
- bash("rm -f /usr/share/cloudstack-management/lib")
- bash("ln -s /usr/share/tomcat6/lib /usr/share/cloudstack-management/lib")
- if not bash("iptables-save |grep PREROUTING | grep 6443").isSuccess():
- bash("iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 6443")
- else:
- if self.syscfg.env.svrConf == "Tomcat7":
- if not os.path.exists("/etc/cloudstack/management/server7-nonssl.xml"):
- raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server7-nonssl.xml, https enable failed")
- if os.path.exists("/etc/cloudstack/management/server.xml"):
- bash("rm -f /etc/cloudstack/management/server.xml")
- bash("ln -s /etc/cloudstack/management/server7-nonssl.xml /etc/cloudstack/management/server.xml")
- if os.path.exists("/usr/share/tomcat7/bin"):
- bash("rm -f /usr/share/cloudstack-management/bin")
- bash("ln -s /usr/share/tomcat7/bin /usr/share/cloudstack-management/bin")
- if os.path.exists("/usr/share/tomcat7/lib"):
- bash("rm -f /usr/share/cloudstack-management/lib")
- bash("ln -s /usr/share/tomcat7/lib /usr/share/cloudstack-management/lib")
- else:
- if not os.path.exists("/etc/cloudstack/management/server-nonssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-nonssl.conf"):
- raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-nonssl.xml or /etc/cloudstack/management/tomcat6-nonssl.conf, https enable failed")
- if os.path.exists("/etc/cloudstack/management/server.xml"):
- bash("rm -f /etc/cloudstack/management/server.xml")
- if os.path.exists("/etc/cloudstack/management/tomcat6.conf"):
- bash("rm -f /etc/cloudstack/management/tomcat6.conf")
- bash("ln -s /etc/cloudstack/management/server-nonssl.xml /etc/cloudstack/management/server.xml")
- bash("ln -s /etc/cloudstack/management/tomcat6-nonssl.conf /etc/cloudstack/management/tomcat6.conf")
- if os.path.exists("/usr/share/tomcat6/bin"):
- bash("rm -f /usr/share/cloudstack-management/bin")
- bash("ln -s /usr/share/tomcat6/bin /usr/share/cloudstack-management/bin")
- if os.path.exists("/usr/share/tomcat6/lib"):
- bash("rm -f /usr/share/cloudstack-management/lib")
- bash("ln -s /usr/share/tomcat6/lib /usr/share/cloudstack-management/lib")
+ if not bash("iptables-save |grep PREROUTING | grep 8443").isSuccess():
+ bash("iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 8443")
bash("touch /var/run/cloudstack-management.pid")
bash("chown cloud.cloud /var/run/cloudstack-management.pid")
- #distro like sl 6.1 needs this folder, or tomcat6 failed to start
checkHostName()
+ bash("mkdir -p /var/lib/cloudstack/")
bash("chown cloud:cloud -R /var/lib/cloudstack/")
- bash("chmod +x -R /usr/share/cloudstack-management/webapps/client/WEB-INF/classes/scripts/")
#set max process per account is unlimited
if os.path.exists("/etc/security/limits.conf"):
cfo = configFileOps("/etc/security/limits.conf")
@@ -153,14 +86,6 @@ class cloudManagementConfig(serviceCfgBase):
cfo.add_lines("cloud hard nproc -1\n")
cfo.save()
- try:
- if self.syscfg.env.svrConf == "Tomcat7":
- self.syscfg.svo.disableService("tomcat")
- else:
- self.syscfg.svo.disableService("tomcat6")
- except:
- pass
-
if self.syscfg.env.noStart == False:
self.syscfg.svo.stopService("cloudstack-management")
if self.syscfg.svo.enableService("cloudstack-management"):
diff --git a/server/src/com/cloud/servlet/StaticResourceServlet.java b/server/src/com/cloud/servlet/StaticResourceServlet.java
deleted file mode 100644
index 8e96732e4ff..00000000000
--- a/server/src/com/cloud/servlet/StaticResourceServlet.java
+++ /dev/null
@@ -1,115 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.servlet;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
-
-/**
- * Serves static resources with support for gzip compression and content
- * caching.
- */
-public class StaticResourceServlet extends HttpServlet {
-
- private static final long serialVersionUID = -8833228931973461812L;
-
- private File getRequestedFile(final HttpServletRequest req) {
- return new File(getServletContext().getRealPath(req.getServletPath()));
- }
-
- @Override
- protected void doGet(final HttpServletRequest req,
- final HttpServletResponse resp) throws ServletException,
- IOException {
- final File requestedFile = getRequestedFile(req);
- if (!requestedFile.exists() || !requestedFile.isFile()) {
- resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
- return;
- }
- final String etag = getEtag(requestedFile);
- if (etag.equals(req.getHeader("If-None-Match"))) {
- resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
- return;
- }
- // have to send data, either compressed or the original
- final File compressedStatic = getCompressedVersion(requestedFile);
- InputStream fileContent = null;
- try {
- resp.setContentType(getContentType(requestedFile.getName()));
- resp.setHeader("ETag", etag);
- resp.setStatus(HttpServletResponse.SC_OK);
- if (isClientCompressionSupported(req) && compressedStatic.exists()) {
- // gzip compressed
- resp.setHeader("Content-Encoding", "gzip");
- resp.setContentLength((int) compressedStatic.length());
- fileContent = new FileInputStream(compressedStatic);
- } else {
- // uncompressed
- resp.setContentLength((int) requestedFile.length());
- fileContent = new FileInputStream(requestedFile);
- }
- IOUtils.copy(fileContent, resp.getOutputStream());
- } finally {
- IOUtils.closeQuietly(fileContent);
- }
- }
-
- @SuppressWarnings("serial")
- static final Map contentTypes = Collections
- .unmodifiableMap(new HashMap() {
- {
- put("css", "text/css");
- put("svg", "image/svg+xml");
- put("js", "application/javascript");
- put("htm", "text/html");
- put("html", "text/html");
- put("txt", "text/plain");
- put("xml", "text/xml");
- }
- });
-
- static String getContentType(final String fileName) {
- return contentTypes.get(StringUtils.lowerCase(StringUtils
- .substringAfterLast(fileName, ".")));
- }
-
- static File getCompressedVersion(final File requestedFile) {
- return new File(requestedFile.getAbsolutePath() + ".gz");
- }
-
- static boolean isClientCompressionSupported(final HttpServletRequest req) {
- return StringUtils.contains(req.getHeader("Accept-Encoding"), "gzip");
- }
-
- static String getEtag(final File resource) {
- return "W/\"" + resource.length() + "-" + resource.lastModified();
- }
-
-}
diff --git a/server/src/org/apache/cloudstack/ca/CAManagerImpl.java b/server/src/org/apache/cloudstack/ca/CAManagerImpl.java
index b8b752de651..3a904315fe1 100644
--- a/server/src/org/apache/cloudstack/ca/CAManagerImpl.java
+++ b/server/src/org/apache/cloudstack/ca/CAManagerImpl.java
@@ -20,6 +20,8 @@ package org.apache.cloudstack.ca;
import java.io.IOException;
import java.math.BigInteger;
import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
import java.security.cert.CertificateExpiredException;
import java.security.cert.CertificateNotYetValidException;
import java.security.cert.X509Certificate;
@@ -270,6 +272,16 @@ public class CAManagerImpl extends ManagerBase implements CAManager {
return getConfiguredCaProvider().createSSLEngine(sslContext, remoteAddress, getActiveCertificatesMap());
}
+ @Override
+ public KeyStore getManagementKeyStore() throws KeyStoreException {
+ return getConfiguredCaProvider().getManagementKeyStore();
+ }
+
+ @Override
+ public char[] getKeyStorePassphrase() {
+ return getConfiguredCaProvider().getKeyStorePassphrase();
+ }
+
////////////////////////////////////////////////////
/////////////// CA Manager Setup ///////////////////
////////////////////////////////////////////////////
diff --git a/server/test/com/cloud/servlet/StaticResourceServletTest.java b/server/test/com/cloud/servlet/StaticResourceServletTest.java
deleted file mode 100644
index ae5c3847f5b..00000000000
--- a/server/test/com/cloud/servlet/StaticResourceServletTest.java
+++ /dev/null
@@ -1,235 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package com.cloud.servlet;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.io.FileUtils;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Matchers;
-import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-
-public class StaticResourceServletTest {
-
- File rootDirectory;
-
- @Before
- public void setupFiles() throws IOException {
- rootDirectory = new File("target/tmp");
- rootDirectory.mkdirs();
- final File webInf = new File(rootDirectory, "WEB-INF");
- webInf.mkdirs();
- final File dir = new File(rootDirectory, "dir");
- dir.mkdirs();
- final File indexHtml = new File(rootDirectory, "index.html");
- indexHtml.createNewFile();
- FileUtils.writeStringToFile(indexHtml, "index.html");
- final File defaultCss = new File(rootDirectory, "default.css");
- defaultCss.createNewFile();
- final File defaultCssGziped = new File(rootDirectory, "default.css.gz");
- defaultCssGziped.createNewFile();
- }
-
- @After
- public void cleanupFiles() {
- FileUtils.deleteQuietly(rootDirectory);
- }
-
- // negative tests
-
- @Test
- public void testNoSuchFile() throws ServletException, IOException {
- final StaticResourceServlet servlet = Mockito
- .mock(StaticResourceServlet.class);
- Mockito.doCallRealMethod()
- .when(servlet)
- .doGet(Matchers.any(HttpServletRequest.class),
- Matchers.any(HttpServletResponse.class));
- final ServletContext servletContext = Mockito
- .mock(ServletContext.class);
- Mockito.when(servletContext.getRealPath("notexisting.css")).thenReturn(
- new File(rootDirectory, "notexisting.css").getAbsolutePath());
- Mockito.when(servlet.getServletContext()).thenReturn(servletContext);
-
- final HttpServletRequest request = Mockito
- .mock(HttpServletRequest.class);
- Mockito.when(request.getServletPath()).thenReturn("notexisting.css");
- final HttpServletResponse response = Mockito
- .mock(HttpServletResponse.class);
- servlet.doGet(request, response);
- Mockito.verify(response).setStatus(HttpServletResponse.SC_NOT_FOUND);
- }
-
- @Test
- public void testDirectory() throws ServletException, IOException {
- final HttpServletResponse response = doGetTest("dir");
- Mockito.verify(response).setStatus(HttpServletResponse.SC_NOT_FOUND);
- }
-
- @Test
- public void testWebInf() throws ServletException, IOException {
- final HttpServletResponse response = doGetTest("WEB-INF/web.xml");
- Mockito.verify(response).setStatus(HttpServletResponse.SC_NOT_FOUND);
- }
-
- // positive tests
-
- @Test
- public void testNotCompressedFile() throws ServletException, IOException {
- final HttpServletResponse response = doGetTest("index.html");
- Mockito.verify(response).setStatus(HttpServletResponse.SC_OK);
- Mockito.verify(response).setContentType("text/html");
- Mockito.verify(response, Mockito.times(0)).setHeader(
- "Content-Encoding", "gzip");
- }
-
- @Test
- public void testCompressedFile() throws ServletException, IOException {
- final HashMap headers = new HashMap();
- headers.put("Accept-Encoding", "gzip");
- final HttpServletResponse response = doGetTest("default.css", headers);
- Mockito.verify(response).setStatus(HttpServletResponse.SC_OK);
- Mockito.verify(response).setContentType("text/css");
- Mockito.verify(response, Mockito.times(1)).setHeader(
- "Content-Encoding", "gzip");
- }
-
- @Test
- public void testCompressedFileWithoutBrowserSupport()
- throws ServletException, IOException {
- final HashMap headers = new HashMap();
- headers.put("Accept-Encoding", "");
- final HttpServletResponse response = doGetTest("default.css", headers);
- Mockito.verify(response).setStatus(HttpServletResponse.SC_OK);
- Mockito.verify(response).setContentType("text/css");
- Mockito.verify(response, Mockito.times(0)).setHeader(
- "Content-Encoding", "gzip");
- }
-
- @Test
- public void testWithEtag() throws ServletException, IOException {
- final HashMap headers = new HashMap();
- headers.put("If-None-Match", StaticResourceServlet.getEtag(new File(
- rootDirectory, "default.css")));
- final HttpServletResponse response = doGetTest("default.css", headers);
- Mockito.verify(response).setStatus(HttpServletResponse.SC_NOT_MODIFIED);
- }
-
- @Test
- public void testWithEtagOutdated() throws ServletException, IOException {
- final HashMap headers = new HashMap();
- headers.put("If-None-Match", "NO-GOOD-ETAG");
- final HttpServletResponse response = doGetTest("default.css", headers);
- Mockito.verify(response).setStatus(HttpServletResponse.SC_OK);
- }
-
- // utility methods
-
- @Test
- public void getEtag() {
- Assert.assertNotNull(StaticResourceServlet.getEtag(new File(
- rootDirectory, "index.html")));
- }
-
- @Test
- public void getContentType() {
- Assert.assertEquals("text/plain",
- StaticResourceServlet.getContentType("foo.txt"));
- Assert.assertEquals("text/html",
- StaticResourceServlet.getContentType("index.html"));
- Assert.assertEquals("text/plain",
- StaticResourceServlet.getContentType("README.TXT"));
- }
-
- @Test
- public void isClientCompressionSupported() {
- final HttpServletRequest request = Mockito
- .mock(HttpServletRequest.class);
- Mockito.when(request.getHeader("Accept-Encoding")).thenReturn(
- "gzip, deflate");
- Assert.assertTrue(StaticResourceServlet
- .isClientCompressionSupported(request));
- }
-
- @Test
- public void isClientCompressionSupportedWithoutHeader() {
- final HttpServletRequest request = Mockito
- .mock(HttpServletRequest.class);
- Mockito.when(request.getHeader("Accept-Encoding")).thenReturn(null);
- Assert.assertFalse(StaticResourceServlet
- .isClientCompressionSupported(request));
- }
-
- // test utilities
- private HttpServletResponse doGetTest(final String uri)
- throws ServletException, IOException {
- return doGetTest(uri, Collections. emptyMap());
- }
-
- private HttpServletResponse doGetTest(final String uri,
- final Map headers) throws ServletException,
- IOException {
- final StaticResourceServlet servlet = Mockito
- .mock(StaticResourceServlet.class);
- Mockito.doCallRealMethod()
- .when(servlet)
- .doGet(Matchers.any(HttpServletRequest.class),
- Matchers.any(HttpServletResponse.class));
- final ServletContext servletContext = Mockito
- .mock(ServletContext.class);
- Mockito.when(servletContext.getRealPath(uri)).thenReturn(
- new File(rootDirectory, uri).getAbsolutePath());
- Mockito.when(servlet.getServletContext()).thenReturn(servletContext);
-
- final HttpServletRequest request = Mockito
- .mock(HttpServletRequest.class);
- Mockito.when(request.getServletPath()).thenReturn(uri);
- Mockito.when(request.getHeader(Matchers.anyString())).thenAnswer(
- new Answer() {
-
- @Override
- public String answer(final InvocationOnMock invocation)
- throws Throwable {
- return headers.get(invocation.getArguments()[0]);
- }
- });
- final HttpServletResponse response = Mockito
- .mock(HttpServletResponse.class);
- final ServletOutputStream responseBody = Mockito
- .mock(ServletOutputStream.class);
- Mockito.when(response.getOutputStream()).thenReturn(responseBody);
- servlet.doGet(request, response);
- return response;
- }
-
-}
diff --git a/server/test/resources/db.properties b/server/test/resources/db.properties
index e9355a3db35..5eefc45ea50 100644
--- a/server/test/resources/db.properties
+++ b/server/test/resources/db.properties
@@ -17,7 +17,7 @@
# management server clustering parameters, change cluster.node.IP to the machine IP address
-# in which the management server(Tomcat) is running
+# in which the management server is running
cluster.node.IP=127.0.0.1
cluster.servlet.port=9090
diff --git a/services/iam/plugin/test/resources/db.properties b/services/iam/plugin/test/resources/db.properties
index a672d63f799..fc2fb33669c 100644
--- a/services/iam/plugin/test/resources/db.properties
+++ b/services/iam/plugin/test/resources/db.properties
@@ -17,7 +17,7 @@
# management server clustering parameters, change cluster.node.IP to the machine IP address
-# in which the management server(Tomcat) is running
+# in which the management server is running
cluster.node.IP=127.0.0.1
cluster.servlet.port=9090
region.id=1
diff --git a/setup/bindir/cloud-migrate-databases.in b/setup/bindir/cloud-migrate-databases.in
index 513e60b75df..95d04d45606 100644
--- a/setup/bindir/cloud-migrate-databases.in
+++ b/setup/bindir/cloud-migrate-databases.in
@@ -39,7 +39,7 @@ from cloud_utils import check_selinux, CheckFailed, resolves_to_ipv6
import cloud_utils
# RUN ME LIKE THIS
-# python setup/bindir/cloud-migrate-databases.in --config=client/tomcatconf/override/db.properties --resourcedir=setup/db --dry-run
+# python setup/bindir/cloud-migrate-databases.in --config=client/conf/override/db.properties --resourcedir=setup/db --dry-run
# --dry-run makes it so the changes to the database in the context of the migrator are rolled back
# This program / library breaks down as follows:
diff --git a/setup/bindir/cloud-setup-databases.in b/setup/bindir/cloud-setup-databases.in
index 08a3cc937c3..0e66cfa68ae 100755
--- a/setup/bindir/cloud-setup-databases.in
+++ b/setup/bindir/cloud-setup-databases.in
@@ -388,7 +388,7 @@ for example:
def processEncryptionStuff(self):
def encrypt(input):
- cmd = ['java','-classpath','"' + self.encryptionJarPath + '"','org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI', 'encrypt.sh', 'input=%s'%input, 'password=%s'%self.mgmtsecretkey,'verbose=false']
+ cmd = ['java','-Djava.security.egd=file:/dev/urandom','-classpath','"' + self.encryptionJarPath + '"','org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI', 'encrypt.sh', 'input=%s'%input, 'password=%s'%self.mgmtsecretkey,'verbose=false']
return runCmd(cmd).strip('\r\n')
def saveMgmtServerSecretKey():
diff --git a/setup/bindir/cloud-setup-encryption.in b/setup/bindir/cloud-setup-encryption.in
index a617d498162..0c9b650fdb6 100755
--- a/setup/bindir/cloud-setup-encryption.in
+++ b/setup/bindir/cloud-setup-encryption.in
@@ -58,7 +58,6 @@ class DBDeployer(object):
isDebug = False
mgmtsecretkey = None
dbsecretkey = None
- keyStorePassphrase = "vmops.com"
encryptiontype = None
dbConfPath = r"@MSCONF@"
dbDotProperties = {}
@@ -198,9 +197,6 @@ for example:
def encryptDBSecretKey():
self.putDbProperty('db.cloud.encrypt.secret', formatEncryptResult(encrypt(self.dbsecretkey)))
- def encryptKeyStorePassphrase():
- self.putDbProperty('db.cloud.keyStorePassphrase', formatEncryptResult(encrypt(self.keyStorePassphrase)))
-
def encryptDBPassword():
dbPassword = self.getDbProperty('db.cloud.password')
if dbPassword == '': return # Don't encrypt empty password
@@ -216,7 +212,6 @@ for example:
self.putDbProperty("db.cloud.encryption.type", self.encryptiontype)
saveMgmtServerSecretKey()
encryptDBSecretKey()
- encryptKeyStorePassphrase()
encryptDBPassword()
self.info(None, True)
@@ -225,7 +220,6 @@ for example:
self.encryptiontype = self.options.encryptiontype
self.mgmtsecretkey = self.options.mgmtsecretkey
self.dbsecretkey = self.options.dbsecretkey
- self.keyStorePassphrase = self.options.keyStorePassphrase
self.isDebug = self.options.debug
@@ -248,9 +242,7 @@ for example:
help="Secret key used to encrypt confidential parameters in db.properties. A string, default is password")
self.parser.add_option("-k", "--database-secretkey", action="store", type="string", dest="dbsecretkey", default="password",
help="Secret key used to encrypt sensitive database values. A string, default is password")
- self.parser.add_option("-p", "--keystore-passphrase", action="store", type="string", dest="keyStorePassphrase", default="vmops.com",
- help="Passphrase used while generating jks file for ssl communication. A string, default is vmops.com")
-
+
(self.options, self.args) = self.parser.parse_args()
parseOtherOptions()
validateParameters()
diff --git a/test/integration/smoke/test_staticroles.py b/test/integration/smoke/test_staticroles.py
index 5421f6b4e3c..2300da5cd6e 100644
--- a/test/integration/smoke/test_staticroles.py
+++ b/test/integration/smoke/test_staticroles.py
@@ -68,7 +68,7 @@ class TestStaticRoles(cloudstackTestCase):
except Exception:
self.debug("Failed to ssh into mgmt server host and grab commands.properties file")
testDir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
- localFileName = os.path.abspath(testDir + "/../../../client/tomcatconf/commands.properties.in")
+ localFileName = os.path.abspath(testDir + "/../../../client/conf/commands.properties.in")
if os.path.isfile(localFileName):
self.info("Detected that we're running in developer mode with maven, using file at:" + localFileName)
with open(localFileName) as f:
diff --git a/tools/apidoc/build-apidoc.sh b/tools/apidoc/build-apidoc.sh
index 8ab69c83739..4e1f9a639d1 100755
--- a/tools/apidoc/build-apidoc.sh
+++ b/tools/apidoc/build-apidoc.sh
@@ -47,7 +47,7 @@ fi
CP=$PATHSEP/
-java -cp $CP$PATHSEP$TARGETJARDIR/*$PATHSEP$DEPSDIR/* com.cloud.api.doc.ApiXmlDocWriter -d "$DISTDIR" $*
+java -cp $CP$PATHSEP$TARGETJARDIR$PATHSEP$DEPSDIR com.cloud.api.doc.ApiXmlDocWriter -d "$DISTDIR" $*
if [ $? -ne 0 ]
then
diff --git a/tools/apidoc/gen_toc.py b/tools/apidoc/gen_toc.py
index 47af1155434..cffc5d4e4db 100644
--- a/tools/apidoc/gen_toc.py
+++ b/tools/apidoc/gen_toc.py
@@ -184,7 +184,9 @@ known_categories = {
'listAnnotations' : 'Annotations',
'addAnnotation' : 'Annotations',
'removeAnnotation' : 'Annotations',
- 'CA': 'Certificate'
+ 'CA': 'Certificate',
+ 'listElastistorInterface': 'Misc',
+ 'cloudian': 'Cloudian'
}
diff --git a/tools/apidoc/pom.xml b/tools/apidoc/pom.xml
index e6804a0e787..61c1ccd5937 100644
--- a/tools/apidoc/pom.xml
+++ b/tools/apidoc/pom.xml
@@ -21,8 +21,8 @@
../pom.xml
- ../../client/target/cloud-client-ui-${project.version}/WEB-INF/
- ${client.config.base}/lib
+ ../../client/target/
+ ${client.config.base}/cloud-client-ui-${project.version}.jar
${client.config.base}/classes
diff --git a/usage/pom.xml b/usage/pom.xml
index cf06745f652..864787a68a4 100644
--- a/usage/pom.xml
+++ b/usage/pom.xml
@@ -113,7 +113,7 @@
-
+
diff --git a/usage/src/com/cloud/usage/UsageServer.java b/usage/src/com/cloud/usage/UsageServer.java
index 246ad06eba6..df3f374cc30 100644
--- a/usage/src/com/cloud/usage/UsageServer.java
+++ b/usage/src/com/cloud/usage/UsageServer.java
@@ -16,19 +16,13 @@
// under the License.
package com.cloud.usage;
-import java.io.File;
-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.PropertyConfigurator;
-import org.apache.log4j.xml.DOMConfigurator;
import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.util.Log4jConfigurer;
-import com.cloud.utils.PropertiesUtil;
+import com.cloud.utils.LogUtils;
import com.cloud.utils.component.ComponentContext;
public class UsageServer implements Daemon {
@@ -83,28 +77,7 @@ public class UsageServer implements Daemon {
}
static private void initLog4j() {
- File file = PropertiesUtil.findConfigFile("log4j-cloud.xml");
- if (file != null) {
- System.out.println("log4j configuration found at " + file.getAbsolutePath());
- try {
- Log4jConfigurer.initLogging(file.getAbsolutePath());
- } catch (FileNotFoundException e) {
- s_logger.info("[ignored] log initialisation ;)" + e.getLocalizedMessage(), e);
- }
- DOMConfigurator.configureAndWatch(file.getAbsolutePath());
-
- } else {
- file = PropertiesUtil.findConfigFile("log4j-cloud.properties");
- if (file != null) {
- System.out.println("log4j configuration found at " + file.getAbsolutePath());
- try {
- Log4jConfigurer.initLogging(file.getAbsolutePath());
- } catch (FileNotFoundException e) {
- s_logger.info("[ignored] log properties initialization :)" + e.getLocalizedMessage(), e);
- }
- PropertyConfigurator.configureAndWatch(file.getAbsolutePath());
- }
- }
+ LogUtils.initLog4j("log4j-cloud.xml");
}
}
diff --git a/usage/test/resources/db.properties b/usage/test/resources/db.properties
index e8e94121fe1..eabc445c208 100644
--- a/usage/test/resources/db.properties
+++ b/usage/test/resources/db.properties
@@ -17,7 +17,7 @@
# management server clustering parameters, change cluster.node.IP to the machine IP address
-# in which the management server(Tomcat) is running
+# in which the management server is running
cluster.node.IP=127.0.0.1
cluster.servlet.port=9090
diff --git a/utils/conf/db.properties b/utils/conf/db.properties
index 4182811a6a6..2fd6910368a 100644
--- a/utils/conf/db.properties
+++ b/utils/conf/db.properties
@@ -19,7 +19,7 @@
# management server clustering parameters, change cluster.node.IP to the machine IP address
-# in which the management server(Tomcat) is running
+# in which the management server is running
cluster.node.IP=127.0.0.1
cluster.servlet.port=9090
region.id=1
diff --git a/utils/pom.xml b/utils/pom.xml
index 52e5dd5fd4f..9989afc084e 100755
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -94,7 +94,11 @@
com.amazonaws
- aws-java-sdk
+ aws-java-sdk-core
+
+
+ com.amazonaws
+ aws-java-sdk-s3
log4j
@@ -156,6 +160,10 @@
xerces
xmlParserAPIs
+
+ commons-beanutils
+ commons-beanutils-core
+
@@ -166,7 +174,7 @@
commons-net
commons-net
- 3.5
+ 3.6
com.google.code.gson
diff --git a/utils/src/main/java/com/cloud/utils/nio/Link.java b/utils/src/main/java/com/cloud/utils/nio/Link.java
index e8f36c69944..7848d5330a3 100644
--- a/utils/src/main/java/com/cloud/utils/nio/Link.java
+++ b/utils/src/main/java/com/cloud/utils/nio/Link.java
@@ -49,7 +49,7 @@ import org.apache.cloudstack.utils.security.SSLUtils;
import org.apache.log4j.Logger;
import com.cloud.utils.PropertiesUtil;
-import com.cloud.utils.db.DbProperties;
+import com.cloud.utils.exception.CloudRuntimeException;
/**
*/
@@ -365,6 +365,12 @@ public class Link {
_connection.scheduleTask(task);
}
+ public static KeyStore loadKeyStore(final InputStream stream, final char[] passphrase) throws GeneralSecurityException, IOException {
+ final KeyStore ks = KeyStore.getInstance("JKS");
+ ks.load(stream, passphrase);
+ return ks;
+ }
+
public static SSLEngine initServerSSLEngine(final CAService caService, final String clientAddress) throws GeneralSecurityException, IOException {
final SSLContext sslContext = SSLUtils.getSSLContext();
if (caService != null) {
@@ -381,15 +387,26 @@ public class Link {
return sslContext.createSSLEngine();
}
- public static KeyStore loadKeyStore(final InputStream stream, final char[] passphrase) throws GeneralSecurityException, IOException {
- final KeyStore ks = KeyStore.getInstance("JKS");
- ks.load(stream, passphrase);
- return ks;
+ public static SSLContext initManagementSSLContext(final CAService caService) throws GeneralSecurityException, IOException {
+ if (caService == null) {
+ throw new CloudRuntimeException("CAService is not available to load/get management server keystore");
+ }
+ final KeyStore ks = caService.getManagementKeyStore();
+ char[] passphrase = caService.getKeyStorePassphrase();
+
+ final TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
+ tmf.init(ks);
+ final TrustManager[] tms = tmf.getTrustManagers();
+
+ final KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+ kmf.init(ks, passphrase);
+
+ final SSLContext sslContext = SSLUtils.getSSLContext();
+ sslContext.init(kmf.getKeyManagers(), tms, new SecureRandom());
+ return sslContext;
}
public static SSLContext initClientSSLContext() throws GeneralSecurityException, IOException {
- final SSLContext sslContext = SSLUtils.getSSLContext();
-
char[] passphrase = KeyStoreUtils.defaultKeystorePassphrase;
File confFile = PropertiesUtil.findConfigFile("agent.properties");
if (confFile != null) {
@@ -398,14 +415,6 @@ public class Link {
if (pass != null) {
passphrase = pass.toCharArray();
}
- } else {
- confFile = PropertiesUtil.findConfigFile("db.properties");
- if (confFile != null) {
- final String pass = DbProperties.getDbProperties().getProperty("db.cloud.keyStorePassphrase");
- if (pass != null) {
- passphrase = pass.toCharArray();
- }
- }
}
InputStream stream = null;
@@ -435,12 +444,9 @@ public class Link {
final KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, passphrase);
+
+ final SSLContext sslContext = SSLUtils.getSSLContext();
sslContext.init(kmf.getKeyManagers(), tms, new SecureRandom());
-
- if (s_logger.isTraceEnabled()) {
- s_logger.trace("SSL: SSLcontext has been initialized");
- }
-
return sslContext;
}
diff --git a/utils/src/main/java/org/apache/cloudstack/utils/security/KeyStoreUtils.java b/utils/src/main/java/org/apache/cloudstack/utils/security/KeyStoreUtils.java
index e02d3b09d8f..8259d77d4ff 100644
--- a/utils/src/main/java/org/apache/cloudstack/utils/security/KeyStoreUtils.java
+++ b/utils/src/main/java/org/apache/cloudstack/utils/security/KeyStoreUtils.java
@@ -19,12 +19,6 @@
package org.apache.cloudstack.utils.security;
-import java.io.File;
-import java.io.IOException;
-
-import com.cloud.utils.script.Script;
-import com.google.common.base.Strings;
-
public class KeyStoreUtils {
public static String defaultTmpKeyStoreFile = "/tmp/tmp.jks";
@@ -44,27 +38,4 @@ public class KeyStoreUtils {
public static String sshMode = "ssh";
public static String agentMode = "agent";
-
- public static void copyKeystore(final String keystorePath, final String tmpKeystorePath) throws IOException {
- if (Strings.isNullOrEmpty(keystorePath) || Strings.isNullOrEmpty(tmpKeystorePath)) {
- throw new IOException("Invalid keystore path provided");
- }
- try {
- final Script script = new Script(true, "cp", 5000, null);
- script.add("-f");
- script.add(tmpKeystorePath);
- script.add(keystorePath);
- final String result = script.execute();
- if (result != null) {
- throw new IOException("Failed to execute cp to copy keystore file to mgmt server conf location");
- }
- } catch (final Exception e) {
- throw new IOException("Failed to create keystore file: " + keystorePath, e);
- }
- try {
- new File(tmpKeystorePath).delete();
- } catch (Exception ignored) {
- }
- }
-
}