mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
packaging: deprecate el6 and add 4.13-4.14 upgrade path (#3591)
- Removes CentOS6/el6 packaging (voting thread reference https://markmail.org/message/u3ka4hwn2lzwiero) - Add upgrade path from 4.13 to 4.14 - Enable live storage migration support for KVM by default as el6 is deprecated - PRs using live storage migration #2997 KVM VM live migration with ROOT volume on file storage type #2983 KVM live storage migration intra cluster from NFS source and destination #2298 CLOUDSTACK-9620: Enhancements for managed storage Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
parent
c01ce7b2b2
commit
89053c7612
@ -66,6 +66,7 @@ import com.cloud.upgrade.dao.Upgrade41110to41120;
|
|||||||
import com.cloud.upgrade.dao.Upgrade41120to41130;
|
import com.cloud.upgrade.dao.Upgrade41120to41130;
|
||||||
import com.cloud.upgrade.dao.Upgrade41120to41200;
|
import com.cloud.upgrade.dao.Upgrade41120to41200;
|
||||||
import com.cloud.upgrade.dao.Upgrade41200to41300;
|
import com.cloud.upgrade.dao.Upgrade41200to41300;
|
||||||
|
import com.cloud.upgrade.dao.Upgrade41300to41400;
|
||||||
import com.cloud.upgrade.dao.Upgrade420to421;
|
import com.cloud.upgrade.dao.Upgrade420to421;
|
||||||
import com.cloud.upgrade.dao.Upgrade421to430;
|
import com.cloud.upgrade.dao.Upgrade421to430;
|
||||||
import com.cloud.upgrade.dao.Upgrade430to440;
|
import com.cloud.upgrade.dao.Upgrade430to440;
|
||||||
@ -187,6 +188,7 @@ public class DatabaseUpgradeChecker implements SystemIntegrityChecker {
|
|||||||
.next("4.11.2.0", new Upgrade41120to41130())
|
.next("4.11.2.0", new Upgrade41120to41130())
|
||||||
.next("4.11.3.0", new Upgrade41120to41200())
|
.next("4.11.3.0", new Upgrade41120to41200())
|
||||||
.next("4.12.0.0", new Upgrade41200to41300())
|
.next("4.12.0.0", new Upgrade41200to41300())
|
||||||
|
.next("4.13.0.0", new Upgrade41300to41400())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,71 @@
|
|||||||
|
// 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.upgrade.dao;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.sql.Connection;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
|
|
||||||
|
public class Upgrade41300to41400 implements DbUpgrade {
|
||||||
|
|
||||||
|
final static Logger LOG = Logger.getLogger(Upgrade41300to41400.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] getUpgradableVersionRange() {
|
||||||
|
return new String[] {"4.13.0.0", "4.14.0.0"};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUpgradedVersion() {
|
||||||
|
return "4.14.0.0";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsRollingUpgrade() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InputStream[] getPrepareScripts() {
|
||||||
|
final String scriptFile = "META-INF/db/schema-41300to41400.sql";
|
||||||
|
final InputStream script = Thread.currentThread().getContextClassLoader().getResourceAsStream(scriptFile);
|
||||||
|
if (script == null) {
|
||||||
|
throw new CloudRuntimeException("Unable to find " + scriptFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new InputStream[] {script};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void performDataMigration(Connection conn) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InputStream[] getCleanupScripts() {
|
||||||
|
final String scriptFile = "META-INF/db/schema-41300to41400-cleanup.sql";
|
||||||
|
final InputStream script = Thread.currentThread().getContextClassLoader().getResourceAsStream(scriptFile);
|
||||||
|
if (script == null) {
|
||||||
|
throw new CloudRuntimeException("Unable to find " + scriptFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new InputStream[] {script};
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
-- 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.
|
||||||
|
|
||||||
|
--;
|
||||||
|
-- Schema upgrade cleanup from 4.13.0.0 to 4.14.0.0
|
||||||
|
--;
|
||||||
|
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
-- 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.
|
||||||
|
|
||||||
|
--;
|
||||||
|
-- Schema upgrade from 4.13.0.0 to 4.14.0.0
|
||||||
|
--;
|
||||||
|
|
||||||
|
-- KVM: enable storage data motion on KVM hypervisor_capabilities
|
||||||
|
UPDATE `cloud`.`hypervisor_capabilities` SET `storage_motion_supported` = 1 WHERE `hypervisor_capabilities`.`hypervisor_type` = 'KVM';
|
||||||
@ -6,9 +6,9 @@ These scripts are also used by the CloudStack team to build packages for the off
|
|||||||
# Requirements
|
# Requirements
|
||||||
The RPM and DEB packages have dependencies on versions of specific libraries. Due to these dependencies the following distributions and their versions are supported by the packages.
|
The RPM and DEB packages have dependencies on versions of specific libraries. Due to these dependencies the following distributions and their versions are supported by the packages.
|
||||||
|
|
||||||
* CentOS / RHEL: 6 and 7
|
* CentOS / RHEL: 7
|
||||||
* Debian 7 (Wheezy) and 8 (Jessy) (untested!)
|
* Debian 7 (Wheezy) and 8 (Jessy) (untested!)
|
||||||
* Ubuntu: 14.04 (Trusty) and 16.04 (Xenial)
|
* Ubuntu: 16.04 (Xenial) and 18.04 (Bionic)
|
||||||
|
|
||||||
# Building
|
# Building
|
||||||
Using the scripts in the *packaging* directory the RPM and DEB packages can be build.
|
Using the scripts in the *packaging* directory the RPM and DEB packages can be build.
|
||||||
|
|||||||
@ -1,122 +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
|
|
||||||
|
|
||||||
TMP=/usr/share/cloudstack-agent/tmp
|
|
||||||
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
|
|
||||||
|
|
||||||
# create java tmp dir if not found
|
|
||||||
mkdir -m 0755 -p "$TMP"
|
|
||||||
|
|
||||||
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-1.8.0 /usr/lib/jvm/java-8-openjdk /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-openjdk-amd64"
|
|
||||||
|
|
||||||
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 -Djava.io.tmpdir="$TMP" -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
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -1,147 +0,0 @@
|
|||||||
#!/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
|
|
||||||
# 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-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
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
setJavaHome
|
|
||||||
|
|
||||||
JARS=$(ls /usr/share/cloudstack-management/lib/*.jar | tr '\n' ':' | sed s'/.$//')
|
|
||||||
CLASSPATH="$JARS:$CLASSPATH:/usr/share/java/commons-daemon.jar"
|
|
||||||
|
|
||||||
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 $JAVA_DEBUG -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
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
@ -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 $JAVA_DEBUG -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
|
|
||||||
|
|
||||||
@ -1,637 +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
|
|
||||||
%define _maventag %{_fullver}
|
|
||||||
Release: %{_rel}%{dist}
|
|
||||||
|
|
||||||
%{!?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 <dev@cloudstack.apache.org>
|
|
||||||
Packager: Apache CloudStack <dev@cloudstack.apache.org>
|
|
||||||
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: 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: java-1.8.0-openjdk
|
|
||||||
Requires: jsvc
|
|
||||||
Requires: jakarta-commons-daemon
|
|
||||||
Requires: jakarta-commons-daemon-jsvc
|
|
||||||
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: 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
|
|
||||||
Requires: python-argparse
|
|
||||||
Requires: python-netaddr
|
|
||||||
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
|
|
||||||
%global __requires_exclude ^libuuid\\.so\\.1$
|
|
||||||
|
|
||||||
%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: net-tools
|
|
||||||
Requires: perl
|
|
||||||
Requires: libvirt-python
|
|
||||||
Requires: qemu-img
|
|
||||||
Requires: qemu-kvm
|
|
||||||
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-marvin
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
%description cli
|
|
||||||
Apache CloudStack command line interface
|
|
||||||
|
|
||||||
%package marvin
|
|
||||||
Summary: Apache CloudStack Marvin library
|
|
||||||
Requires: python-pip
|
|
||||||
Requires: gcc
|
|
||||||
Requires: python-devel
|
|
||||||
Requires: libffi-devel
|
|
||||||
Requires: openssl-devel
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
%description marvin
|
|
||||||
Apache CloudStack Marvin library
|
|
||||||
|
|
||||||
%package integration-tests
|
|
||||||
Summary: Apache CloudStack Marvin integration tests
|
|
||||||
Requires: %{name}-marvin = %{_ver}
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
%description integration-tests
|
|
||||||
Apache CloudStack Marvin integration tests
|
|
||||||
|
|
||||||
%if "%{_ossnoss}" == "noredist"
|
|
||||||
%package mysql-ha
|
|
||||||
Summary: Apache CloudStack Balancing Strategy for MySQL
|
|
||||||
Requires: mysql-connector-java
|
|
||||||
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,developer -Dnoredist -Dsimulator clean package
|
|
||||||
else
|
|
||||||
echo "Executing mvn noredist packaging without simulator..."
|
|
||||||
mvn -Psystemvm,developer -Dnoredist clean package
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then
|
|
||||||
echo "Executing mvn default packaging simulator ..."
|
|
||||||
mvn -Psystemvm,developer -Dsimulator clean package
|
|
||||||
else
|
|
||||||
echo "Executing mvn default packaging without simulator ..."
|
|
||||||
mvn -Psystemvm,developer 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}/default
|
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d
|
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.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/src/main/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/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
|
|
||||||
|
|
||||||
ln -sf /etc/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/conf
|
|
||||||
ln -sf /var/log/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/logs
|
|
||||||
|
|
||||||
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/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 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 -sf 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 server/target/conf/cloudstack-sudoers ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
|
|
||||||
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}%{_localstatedir}/%{name}/mnt
|
|
||||||
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
|
|
||||||
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/cloud-guest-tool ${RPM_BUILD_ROOT}%{_bindir}/%{name}-guest-tool
|
|
||||||
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
|
|
||||||
|
|
||||||
# Marvin
|
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-marvin
|
|
||||||
cp tools/marvin/dist/Marvin-*.tar.gz ${RPM_BUILD_ROOT}%{_datadir}/%{name}-marvin/
|
|
||||||
|
|
||||||
# integration-tests
|
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-integration-tests
|
|
||||||
cp -r test/integration/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-integration-tests/
|
|
||||||
|
|
||||||
# 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}-management/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
|
|
||||||
install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-marvin-%{version}/NOTICE
|
|
||||||
install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-marvin-%{version}/LICENSE
|
|
||||||
install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-integration-tests-%{version}/NOTICE
|
|
||||||
install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-integration-tests-%{version}/LICENSE
|
|
||||||
|
|
||||||
%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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
grep -s -q "db.cloud.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties" || sed -i -e "\$adb.cloud.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties"
|
|
||||||
grep -s -q "db.usage.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties" || sed -i -e "\$adb.usage.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties"
|
|
||||||
grep -s -q "db.simulator.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties" || sed -i -e "\$adb.simulator.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties"
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
if [ -f %{_sysconfdir}/sysconfig/%{name}-management ] ; then
|
|
||||||
rm -f %{_sysconfdir}/sysconfig/%{name}-management
|
|
||||||
fi
|
|
||||||
|
|
||||||
chown -R cloud:cloud /var/log/cloudstack/management
|
|
||||||
|
|
||||||
%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" == "2" ] ; 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
|
|
||||||
fi
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
if [ ! -f "%{_sysconfdir}/%{name}/usage/key" ]; then
|
|
||||||
ln -s %{_sysconfdir}/%{name}/management/key %{_sysconfdir}/%{name}/usage/key
|
|
||||||
fi
|
|
||||||
|
|
||||||
%post marvin
|
|
||||||
pip install --upgrade http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
|
|
||||||
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 %{_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}/log/%{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/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) %{_bindir}/%{name}-setup-management
|
|
||||||
%attr(0755,root,root) %{_bindir}/%{name}-update-xenserver-licenses
|
|
||||||
%{_datadir}/%{name}-management/conf
|
|
||||||
%{_datadir}/%{name}-management/lib/*.jar
|
|
||||||
%{_datadir}/%{name}-management/logs
|
|
||||||
%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/*.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,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}-guest-tool
|
|
||||||
%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
|
|
||||||
%config(noreplace) %{_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
|
|
||||||
|
|
||||||
%files marvin
|
|
||||||
%attr(0644,root,root) %{_datadir}/%{name}-marvin/Marvin*.tar.gz
|
|
||||||
%{_defaultdocdir}/%{name}-marvin-%{version}/LICENSE
|
|
||||||
%{_defaultdocdir}/%{name}-marvin-%{version}/NOTICE
|
|
||||||
|
|
||||||
%files integration-tests
|
|
||||||
%attr(0755,root,root) %{_datadir}/%{name}-integration-tests/*
|
|
||||||
%{_defaultdocdir}/%{name}-integration-tests-%{version}/LICENSE
|
|
||||||
%{_defaultdocdir}/%{name}-integration-tests-%{version}/NOTICE
|
|
||||||
|
|
||||||
%if "%{_ossnoss}" == "noredist"
|
|
||||||
%files mysql-ha
|
|
||||||
%defattr(0644,cloud,cloud,0755)
|
|
||||||
%attr(0644,root,root) %{_datadir}/%{name}-management/lib/*mysqlha*jar
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files baremetal-agent
|
|
||||||
%attr(0755,root,root) %{_bindir}/cloudstack-setup-baremetal
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
* Thu Apr 30 2015 Rohit Yadav <bhaisaab@apache.org> 4.6.0
|
|
||||||
- Remove awsapi package
|
|
||||||
|
|
||||||
* Fri Jul 04 2014 Hugo Trippaers <hugo@apache.org> 4.5.0
|
|
||||||
- Add a package for the mysql ha module
|
|
||||||
|
|
||||||
* Wed Oct 03 2012 Hugo Trippaers <hugo@apache.org> 4.1.0
|
|
||||||
- new style spec file
|
|
||||||
@ -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;
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
#!/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
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
cat /usr/share/cloudstack-common/scripts/gitrev.txt
|
|
||||||
@ -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
|
|
||||||
@ -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.
|
|
||||||
|
|
||||||
f /var/run/cloudstack-management.pid 0644 cloud cloud -
|
|
||||||
@ -26,7 +26,7 @@ be used in the final generated package like: cloudstack-management-x.y.z.a-NAME.
|
|||||||
note that you can override/provide "branding" string with "-b, --brand" flag as well.
|
note that you can override/provide "branding" string with "-b, --brand" flag as well.
|
||||||
|
|
||||||
Mandatory arguments:
|
Mandatory arguments:
|
||||||
-d, --distribution string Build package for specified distribution ("centos7"|"centos63")
|
-d, --distribution string Build package for specified distribution ("centos7")
|
||||||
|
|
||||||
Optional arguments:
|
Optional arguments:
|
||||||
-p, --pack string Define which type of libraries to package ("oss"|"OSS"|"noredist"|"NOREDIST") (default "oss")
|
-p, --pack string Define which type of libraries to package ("oss"|"OSS"|"noredist"|"NOREDIST") (default "oss")
|
||||||
|
|||||||
@ -142,11 +142,6 @@ perl -pi -e "s/Version=\"$currentversion\"/Version=\"$version\"/" tools/docker/D
|
|||||||
perl -pi -e "s/Version=\"$currentversion\"/Version=\"$version\"/" tools/docker/Dockerfile.marvin
|
perl -pi -e "s/Version=\"$currentversion\"/Version=\"$version\"/" tools/docker/Dockerfile.marvin
|
||||||
perl -pi -e "s/Marvin-(.*).tar.gz/Marvin-${version}.tar.gz/" tools/docker/Dockerfile.marvin
|
perl -pi -e "s/Marvin-(.*).tar.gz/Marvin-${version}.tar.gz/" tools/docker/Dockerfile.marvin
|
||||||
|
|
||||||
# centos6 based Dockerfile
|
|
||||||
perl -pi -e "s/Version=\"$currentversion\"/Version=\"$version\"/" tools/docker/Dockerfile.centos6
|
|
||||||
perl -pi -e "s/cloudstack-common-(.*).el6.x86_64.rpm/cloudstack-common-${version}.el6.x86_64.rpm/" tools/docker/Dockerfile.centos6
|
|
||||||
perl -pi -e "s/cloudstack-management-(.*)el6.x86_64.rpm/cloudstack-management-${version}.el6.x86_64.rpm/" tools/docker/Dockerfile.centos6
|
|
||||||
|
|
||||||
# systemtpl.sh: system vm template version without -SNAPSHOT
|
# systemtpl.sh: system vm template version without -SNAPSHOT
|
||||||
|
|
||||||
git clean -f
|
git clean -f
|
||||||
|
|||||||
@ -1,56 +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.
|
|
||||||
#
|
|
||||||
FROM centos:6
|
|
||||||
|
|
||||||
MAINTAINER "Apache CloudStack" <dev@cloudstack.apache.org>
|
|
||||||
LABEL Vendor="Apache.org" License="ApacheV2" Version="4.14.0.0-SNAPSHOT"
|
|
||||||
|
|
||||||
ENV PKG_URL=https://builds.cloudstack.org/job/package-master-rhel63/lastSuccessfulBuild/artifact/dist/rpmbuild/RPMS/x86_64
|
|
||||||
|
|
||||||
# install CloudStack
|
|
||||||
RUN rpm -i http://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-2.1.3-1.el6.x86_64.rpm
|
|
||||||
|
|
||||||
RUN yum install -y nc wget \
|
|
||||||
${PKG_URL}/cloudstack-common-4.14.0.0-SNAPSHOT.el6.x86_64.rpm \
|
|
||||||
${PKG_URL}/cloudstack-management-4.14.0.0-SNAPSHOT.el6.x86_64.rpm
|
|
||||||
|
|
||||||
RUN cd /etc/cloudstack/management; \
|
|
||||||
ln -s tomcat6-nonssl.conf tomcat6.conf; \
|
|
||||||
ln -s server-nonssl.xml server.xml; \
|
|
||||||
ln -s log4j-cloud.xml log4j.xml; \
|
|
||||||
wget -O /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util \
|
|
||||||
http://download.cloudstack.org/tools/vhd-util
|
|
||||||
|
|
||||||
COPY init.sh_centos6 /root/init.sh
|
|
||||||
COPY systemtpl.sh /root/systemtpl.sh
|
|
||||||
|
|
||||||
RUN yum clean all
|
|
||||||
|
|
||||||
RUN sed -i "s/cluster.node.IP=.*/cluster.node.IP=localhost/" /etc/cloudstack/management/db.properties
|
|
||||||
|
|
||||||
EXPOSE 8080 8250 8096 45219 9090 8787
|
|
||||||
# Ports:
|
|
||||||
# 8080: webui, api
|
|
||||||
# 8250: systemvm communication
|
|
||||||
# 8096: api port without authentication(default=off)
|
|
||||||
# Troubleshooting ports:
|
|
||||||
# 8787: CloudStack (Tomcat) debug socket
|
|
||||||
# 9090: Cloudstack Management Cluster Interface
|
|
||||||
# 45219: JMX console
|
|
||||||
|
|
||||||
CMD ["/root/init.sh"]
|
|
||||||
@ -1,87 +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.
|
|
||||||
#
|
|
||||||
# update database connection
|
|
||||||
# /usr/bin/cloudstack-setup-databases cloud:password@$MYSQL_PORT_3306_TCP_ADDR
|
|
||||||
# start cloudstack-management server
|
|
||||||
|
|
||||||
# initial startup of the container to generage ssh_key
|
|
||||||
# performed as privileged
|
|
||||||
if [ ! -d /var/cloudstack/management/.ssh ]; then
|
|
||||||
mknod /dev/loop6 -m0660 b 7 6
|
|
||||||
fi
|
|
||||||
|
|
||||||
# if global setting are changed, it will restart the management server
|
|
||||||
RESTART_REQUIRED=false
|
|
||||||
|
|
||||||
if [ ! $MYSQL_PORT_3306_TCP_ADDR ]; then
|
|
||||||
echo "variable MYSQL_PORT_3306_TCP_ADDR not define"
|
|
||||||
exit 12
|
|
||||||
fi
|
|
||||||
|
|
||||||
until nc -z $MYSQL_PORT_3306_TCP_ADDR 3306; do
|
|
||||||
echo "waiting for mysql-server..."
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
mysql -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -h "$MYSQL_PORT_3306_TCP_ADDR" \
|
|
||||||
-e "show databases;"|grep -q cloud
|
|
||||||
|
|
||||||
case $? in
|
|
||||||
1)
|
|
||||||
echo "deploying new cloud databases"
|
|
||||||
INITIATED=false
|
|
||||||
cloudstack-setup-databases cloud:password@${MYSQL_PORT_3306_TCP_ADDR} \
|
|
||||||
--deploy-as=root:${MYSQL_ENV_MYSQL_ROOT_PASSWORD} -i localhost
|
|
||||||
;;
|
|
||||||
0)
|
|
||||||
echo "using existing databases"
|
|
||||||
INITIATED=true
|
|
||||||
cloudstack-setup-databases cloud:password@${MYSQL_PORT_3306_TCP_ADDR}
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "cannot access database"
|
|
||||||
exit 12
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
service cloudstack-management start
|
|
||||||
sleep 10
|
|
||||||
|
|
||||||
if [ $HYPERVISOR_TEMPLATE ]; then
|
|
||||||
#download the systemvm template into /exports
|
|
||||||
/root/systemtpl.sh $HYPERVISOR_TEMPLATE
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $CLOUDSTACK_HOST ]; then
|
|
||||||
mysql -u root -p${MYSQL_ENV_MYSQL_ROOT_PASSWORD} -h ${MYSQL_PORT_3306_TCP_ADDR} -e \
|
|
||||||
"UPDATE cloud.configuration SET value='${CLOUDSTACK_HOST}' where name = 'host';"
|
|
||||||
RESTART_REQUIRED=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $DEV_API ] && [ $INITIATED == false ]; then
|
|
||||||
mysql -u root -p${MYSQL_ENV_MYSQL_ROOT_PASSWORD} -h ${MYSQL_PORT_3306_TCP_ADDR} -e \
|
|
||||||
"UPDATE cloud.configuration SET value='8096' where name = 'integration.api.port';"
|
|
||||||
mysql -u root -p${MYSQL_ENV_MYSQL_ROOT_PASSWORD} -h ${MYSQL_PORT_3306_TCP_ADDR} -e \
|
|
||||||
"UPDATE cloud.configuration SET value='true' where name = 'system.vm.use.local.storage';"
|
|
||||||
RESTART_REQUIRED=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
[ $RESTART_REQUIRED == true ] && service cloudstack-management restart
|
|
||||||
|
|
||||||
tail -f /var/log/cloudstack/management/management-server.log
|
|
||||||
Loading…
x
Reference in New Issue
Block a user