From eda3b35bfa56fd2f96b68fe7deb52572f4e6fe75 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Mon, 7 Aug 2017 13:24:08 +0200 Subject: [PATCH] CLOUDSTACK-10012: Migrate to Embedded Jetty - Migrate to embedded Jetty server. - Improve ServerDaemon implementation. - Introduce a new server.properties file for easier configuration. - Have a single /etc/default/cloudstack-management to configure env. - Reduce shaded jar file, removing unnecessary dependencies. - Upgrade to Spring 5.x, upgrade several jar dependencies. - Does not shade and include mysql-connector, used from classpath instead. - Upgrade and use bountcastle as a separate un-shaded jar dependency. - Remove tomcat related configuration and files. - Have both embedded UI assets in uber jar and separate webapp directory. - Refactor systemd and init scripts, cleanup packaging. - Made cloudstack-setup-databases faster, using `urandom`. - Remove unmaintained distro packagings. - Moves creation and usage of server keystore in CA manager, this deprecates the need to create/store cloud.jks in conf folder and the db.cloud.keyStorePassphrase in db.properties file. This also remove the need of the --keystore-passphrase in the cloudstack-setup-encryption script. - GZip contents dynamically in embedded Jetty Signed-off-by: Rohit Yadav --- INSTALL.md | 4 +- README.md | 2 +- build/replace.properties | 2 +- client/WEB-INF/web.xml | 51 +- client/bindir/cloud-setup-management.in | 4 +- .../commons-logging.properties.in | 4 +- client/{tomcatconf => conf}/db.properties.in | 7 +- client/{tomcatconf => conf}/ehcache.xml.in | 26 +- .../environment.properties.in | 4 +- .../java.security.ciphers.in | 0 .../{tomcatconf => conf}/log4j-cloud.xml.in | 16 +- .../conf/server.properties.in | 27 +- .../rc.d/init.d/cloud-management.in | 107 -- .../SYSCONFDIR/sysconfig/cloud-management.in | 23 - .../rc.d/init.d/cloud-management.in | 106 -- .../SYSCONFDIR/sysconfig/cloud-management.in | 23 - .../SYSCONFDIR/init.d/cloud-management.in | 239 ---- .../SYSCONFDIR/sysconfig/cloud-management.in | 23 - .../rc.d/init.d/cloud-management.in | 108 -- .../SYSCONFDIR/sysconfig/cloud-management.in | 23 - .../SYSCONFDIR/init.d/cloud-management.in | 239 ---- .../SYSCONFDIR/sysconfig/cloud-management.in | 23 - .../SYSCONFDIR/init.d/cloud-management.in | 244 ---- client/pom.xml | 143 +- .../org/apache/cloudstack/ServerDaemon.java | 321 +++-- client/tomcatconf/catalina.policy.in | 180 --- client/tomcatconf/catalina.properties.in | 81 -- client/tomcatconf/classpath.conf.in | 41 - client/tomcatconf/context.xml.in | 35 - client/tomcatconf/logging.properties.in | 64 - client/tomcatconf/server-nonssl.xml.in | 149 --- client/tomcatconf/server-ssl.xml.in | 157 --- client/tomcatconf/server7-nonssl.xml.in | 149 --- client/tomcatconf/server7-ssl.xml.in | 157 --- client/tomcatconf/tomcat-users.xml.in | 31 - client/tomcatconf/tomcat6-nonssl.conf.in | 73 - client/tomcatconf/tomcat6-ssl.conf.in | 72 - client/tomcatconf/web.xml.in | 1187 ----------------- core/pom.xml | 2 +- debian/cloudstack-agent.postinst | 0 debian/cloudstack-management.install | 4 +- debian/cloudstack-management.postinst | 5 +- .../cloudstack-management.preinst | 14 +- debian/cloudstack-marvin.postinst | 0 debian/cloudstack-usage.postinst | 0 debian/control | 7 +- debian/rules | 25 +- engine/api/pom.xml | 15 - .../manager/ClusteredAgentManagerImpl.java | 5 +- engine/schema/test/resources/db.properties | 2 +- .../service/src/main/webapp/WEB-INF/log4j.xml | 14 +- .../service/src/main/webapp/WEB-INF/web.xml | 3 - .../snapshot/test/resources/db.properties | 2 +- .../cloudstack/framework/ca/CAProvider.java | 14 + .../cloudstack/framework/ca/CAService.java | 14 + packaging/centos63/cloud-management.rc | 203 +-- packaging/centos63/cloud-management.sysconfig | 23 - packaging/centos63/cloud.spec | 124 +- packaging/centos63/tomcat.sh | 18 - packaging/centos7/cloud.spec | 80 +- packaging/centos7/tomcat7/catalina.properties | 81 -- .../tomcat7/commons-logging.properties | 30 - packaging/centos7/tomcat7/db.properties | 106 -- .../centos7/tomcat7/environment.properties | 22 - .../centos7/tomcat7/java.security.ciphers | 18 - packaging/centos7/tomcat7/log4j-cloud.xml | 199 --- packaging/centos7/tomcat7/server.xml | 80 -- packaging/centos7/tomcat7/tomcat-users.xml | 31 - packaging/centos7/tomcat7/web.xml | 1187 ----------------- packaging/debian/init/cloud-management | 92 +- packaging/debian/replace.properties | 2 +- packaging/fedora20/cloud-agent.rc | 118 -- packaging/fedora20/cloud-ipallocator.rc | 96 -- packaging/fedora20/cloud-management.rc | 115 -- packaging/fedora20/cloud-management.sysconfig | 23 - packaging/fedora20/cloud-usage.rc | 156 --- packaging/fedora20/cloud.spec | 649 --------- packaging/fedora20/cloudstack-agent.te | 33 - packaging/fedora20/replace.properties | 59 - packaging/fedora20/tomcat.sh | 18 - packaging/fedora21/cloud-agent.rc | 118 -- packaging/fedora21/cloud-ipallocator.rc | 96 -- packaging/fedora21/cloud-management.rc | 115 -- packaging/fedora21/cloud-management.sysconfig | 23 - packaging/fedora21/cloud-usage.rc | 156 --- packaging/fedora21/cloud.spec | 649 --------- packaging/fedora21/cloudstack-agent.te | 33 - packaging/fedora21/replace.properties | 59 - packaging/fedora21/tomcat.sh | 18 - .../systemd/cloudstack-management.default | 32 +- .../cloudstack-management.default.ubuntu | 50 - .../systemd/cloudstack-management.service | 16 +- .../cloudstack-management.service.ubuntu | 40 - .../ca/provider/RootCAProvider.java | 122 +- plugins/event-bus/kafka/pom.xml | 2 +- plugins/event-bus/rabbitmq/pom.xml | 2 +- plugins/hypervisors/ovm3/pom.xml | 5 - plugins/network-elements/globodns/pom.xml | 2 +- .../globodns/test/resources/db.properties | 2 +- .../network-elements/juniper-contrail/pom.xml | 6 + .../nested-cloudstack/pom.xml | 2 +- pom.xml | 85 +- .../cloud-grab-dependent-library-versions | 2 +- python/lib/cloudutils/globalEnv.py | 2 - python/lib/cloudutils/serviceConfigServer.py | 81 +- .../cloud/servlet/StaticResourceServlet.java | 115 -- .../apache/cloudstack/ca/CAManagerImpl.java | 12 + .../servlet/StaticResourceServletTest.java | 235 ---- server/test/resources/db.properties | 2 +- .../iam/plugin/test/resources/db.properties | 2 +- setup/bindir/cloud-migrate-databases.in | 2 +- setup/bindir/cloud-setup-databases.in | 2 +- setup/bindir/cloud-setup-encryption.in | 10 +- test/integration/smoke/test_staticroles.py | 2 +- tools/apidoc/build-apidoc.sh | 2 +- tools/apidoc/gen_toc.py | 4 +- tools/apidoc/pom.xml | 4 +- usage/pom.xml | 2 +- usage/src/com/cloud/usage/UsageServer.java | 31 +- usage/test/resources/db.properties | 2 +- utils/conf/db.properties | 2 +- utils/pom.xml | 12 +- .../main/java/com/cloud/utils/nio/Link.java | 46 +- .../utils/security/KeyStoreUtils.java | 29 - 124 files changed, 764 insertions(+), 9304 deletions(-) rename client/{tomcatconf => conf}/commons-logging.properties.in (97%) rename client/{tomcatconf => conf}/db.properties.in (97%) rename client/{tomcatconf => conf}/ehcache.xml.in (98%) rename client/{tomcatconf => conf}/environment.properties.in (99%) rename client/{tomcatconf => conf}/java.security.ciphers.in (100%) rename client/{tomcatconf => conf}/log4j-cloud.xml.in (99%) rename packaging/fedora21/cloudstack-sccs => client/conf/server.properties.in (50%) delete mode 100755 client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in delete mode 100644 client/distro/centos/SYSCONFDIR/sysconfig/cloud-management.in delete mode 100755 client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in delete mode 100644 client/distro/fedora/SYSCONFDIR/sysconfig/cloud-management.in delete mode 100755 client/distro/opensuse/SYSCONFDIR/init.d/cloud-management.in delete mode 100644 client/distro/opensuse/SYSCONFDIR/sysconfig/cloud-management.in delete mode 100644 client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in delete mode 100644 client/distro/rhel/SYSCONFDIR/sysconfig/cloud-management.in delete mode 100755 client/distro/sles/SYSCONFDIR/init.d/cloud-management.in delete mode 100644 client/distro/sles/SYSCONFDIR/sysconfig/cloud-management.in delete mode 100755 client/distro/ubuntu/SYSCONFDIR/init.d/cloud-management.in delete mode 100644 client/tomcatconf/catalina.policy.in delete mode 100644 client/tomcatconf/catalina.properties.in delete mode 100644 client/tomcatconf/classpath.conf.in delete mode 100644 client/tomcatconf/context.xml.in delete mode 100644 client/tomcatconf/logging.properties.in delete mode 100755 client/tomcatconf/server-nonssl.xml.in delete mode 100755 client/tomcatconf/server-ssl.xml.in delete mode 100755 client/tomcatconf/server7-nonssl.xml.in delete mode 100755 client/tomcatconf/server7-ssl.xml.in delete mode 100644 client/tomcatconf/tomcat-users.xml.in delete mode 100644 client/tomcatconf/tomcat6-nonssl.conf.in delete mode 100644 client/tomcatconf/tomcat6-ssl.conf.in delete mode 100644 client/tomcatconf/web.xml.in mode change 100644 => 100755 debian/cloudstack-agent.postinst mode change 100644 => 100755 debian/cloudstack-management.postinst rename packaging/fedora20/cloudstack-sccs => debian/cloudstack-management.preinst (65%) mode change 100644 => 100755 mode change 100644 => 100755 debian/cloudstack-marvin.postinst mode change 100644 => 100755 debian/cloudstack-usage.postinst delete mode 100644 packaging/centos63/cloud-management.sysconfig delete mode 100644 packaging/centos63/tomcat.sh delete mode 100644 packaging/centos7/tomcat7/catalina.properties delete mode 100644 packaging/centos7/tomcat7/commons-logging.properties delete mode 100644 packaging/centos7/tomcat7/db.properties delete mode 100644 packaging/centos7/tomcat7/environment.properties delete mode 100644 packaging/centos7/tomcat7/java.security.ciphers delete mode 100644 packaging/centos7/tomcat7/log4j-cloud.xml delete mode 100644 packaging/centos7/tomcat7/server.xml delete mode 100644 packaging/centos7/tomcat7/tomcat-users.xml delete mode 100644 packaging/centos7/tomcat7/web.xml delete mode 100755 packaging/fedora20/cloud-agent.rc delete mode 100755 packaging/fedora20/cloud-ipallocator.rc delete mode 100755 packaging/fedora20/cloud-management.rc delete mode 100644 packaging/fedora20/cloud-management.sysconfig delete mode 100755 packaging/fedora20/cloud-usage.rc delete mode 100644 packaging/fedora20/cloud.spec delete mode 100644 packaging/fedora20/cloudstack-agent.te delete mode 100644 packaging/fedora20/replace.properties delete mode 100644 packaging/fedora20/tomcat.sh delete mode 100755 packaging/fedora21/cloud-agent.rc delete mode 100755 packaging/fedora21/cloud-ipallocator.rc delete mode 100755 packaging/fedora21/cloud-management.rc delete mode 100644 packaging/fedora21/cloud-management.sysconfig delete mode 100755 packaging/fedora21/cloud-usage.rc delete mode 100644 packaging/fedora21/cloud.spec delete mode 100644 packaging/fedora21/cloudstack-agent.te delete mode 100644 packaging/fedora21/replace.properties delete mode 100644 packaging/fedora21/tomcat.sh delete mode 100644 packaging/systemd/cloudstack-management.default.ubuntu delete mode 100644 packaging/systemd/cloudstack-management.service.ubuntu delete mode 100644 server/src/com/cloud/servlet/StaticResourceServlet.java delete mode 100644 server/test/com/cloud/servlet/StaticResourceServletTest.java 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) { - } - } - }