Set VERBOSE=False to turn off the noise of stack.sh output. All
output still is written to the logfile if LOGFILE is set.
Rebased
Change-Id: I316bc4d68c997ec907a48e720e2f7778428d935b
| ... | ... |
@@ -16,9 +16,9 @@ |
| 16 | 16 |
# stop_XXX |
| 17 | 17 |
# cleanup_XXX |
| 18 | 18 |
|
| 19 |
-# Print the commands being run so that we can see the command that triggers |
|
| 20 |
-# an error. It is also useful for following along as the install occurs. |
|
| 21 |
-set -o xtrace |
|
| 19 |
+# Save trace setting |
|
| 20 |
+XTRACE=$(set +o | grep xtrace) |
|
| 21 |
+set +o xtrace |
|
| 22 | 22 |
|
| 23 | 23 |
|
| 24 | 24 |
# Defaults |
| ... | ... |
@@ -71,3 +71,6 @@ function start_ceilometer() {
|
| 71 | 71 |
screen_it ceilometer-collector "cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-collector --config-file $CEILOMETER_COLLECTOR_CONF" |
| 72 | 72 |
screen_it ceilometer-api "cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-api -d -v --log-dir=$CEILOMETER_API_LOG_DIR" |
| 73 | 73 |
} |
| 74 |
+ |
|
| 75 |
+# Restore xtrace |
|
| 76 |
+$XTRACE |
| ... | ... |
@@ -16,9 +16,9 @@ |
| 16 | 16 |
# stop_XXX |
| 17 | 17 |
# cleanup_XXX |
| 18 | 18 |
|
| 19 |
-# Print the commands being run so that we can see the command that triggers |
|
| 20 |
-# an error. It is also useful for following along as the install occurs. |
|
| 21 |
-set -o xtrace |
|
| 19 |
+# Save trace setting |
|
| 20 |
+XTRACE=$(set +o | grep xtrace) |
|
| 21 |
+set +o xtrace |
|
| 22 | 22 |
|
| 23 | 23 |
|
| 24 | 24 |
# Defaults |
| ... | ... |
@@ -233,3 +233,6 @@ function stop_cinder() {
|
| 233 | 233 |
stop_service tgt |
| 234 | 234 |
fi |
| 235 | 235 |
} |
| 236 |
+ |
|
| 237 |
+# Restore xtrace |
|
| 238 |
+$XTRACE |
| ... | ... |
@@ -15,9 +15,9 @@ |
| 15 | 15 |
# stop_XXX |
| 16 | 16 |
# cleanup_XXX |
| 17 | 17 |
|
| 18 |
-# Print the commands being run so that we can see the command that triggers |
|
| 19 |
-# an error. It is also useful for following along as the install occurs. |
|
| 20 |
-set -o xtrace |
|
| 18 |
+# Save trace setting |
|
| 19 |
+XTRACE=$(set +o | grep xtrace) |
|
| 20 |
+set +o xtrace |
|
| 21 | 21 |
|
| 22 | 22 |
|
| 23 | 23 |
# Defaults |
| ... | ... |
@@ -178,3 +178,6 @@ function stop_heat() {
|
| 178 | 178 |
# This function intentionally left blank |
| 179 | 179 |
: |
| 180 | 180 |
} |
| 181 |
+ |
|
| 182 |
+# Restore xtrace |
|
| 183 |
+$XTRACE |
| ... | ... |
@@ -18,9 +18,9 @@ |
| 18 | 18 |
# stop_keystone |
| 19 | 19 |
# cleanup_keystone |
| 20 | 20 |
|
| 21 |
-# Print the commands being run so that we can see the command that triggers |
|
| 22 |
-# an error. It is also useful for following along as the install occurs. |
|
| 23 |
-set -o xtrace |
|
| 21 |
+# Save trace setting |
|
| 22 |
+XTRACE=$(set +o | grep xtrace) |
|
| 23 |
+set +o xtrace |
|
| 24 | 24 |
|
| 25 | 25 |
|
| 26 | 26 |
# Defaults |
| ... | ... |
@@ -170,3 +170,6 @@ function stop_keystone() {
|
| 170 | 170 |
# Kill the Keystone screen window |
| 171 | 171 |
screen -S $SCREEN_NAME -p key -X kill |
| 172 | 172 |
} |
| 173 |
+ |
|
| 174 |
+# Restore xtrace |
|
| 175 |
+$XTRACE |
| ... | ... |
@@ -18,9 +18,9 @@ |
| 18 | 18 |
# stop_nvol |
| 19 | 19 |
# cleanup_nvol |
| 20 | 20 |
|
| 21 |
-# Print the commands being run so that we can see the command that triggers |
|
| 22 |
-# an error. It is also useful for following along as the install occurs. |
|
| 23 |
-set -o xtrace |
|
| 21 |
+# Save trace setting |
|
| 22 |
+XTRACE=$(set +o | grep xtrace) |
|
| 23 |
+set +o xtrace |
|
| 24 | 24 |
|
| 25 | 25 |
|
| 26 | 26 |
# Defaults |
| ... | ... |
@@ -120,3 +120,6 @@ function stop_nvol() {
|
| 120 | 120 |
|
| 121 | 121 |
stop_service tgt |
| 122 | 122 |
} |
| 123 |
+ |
|
| 124 |
+# Restore xtrace |
|
| 125 |
+$XTRACE |
| ... | ... |
@@ -16,9 +16,9 @@ |
| 16 | 16 |
# stop_XXXX |
| 17 | 17 |
# cleanup_XXXX |
| 18 | 18 |
|
| 19 |
-# Print the commands being run so that we can see the command that triggers |
|
| 20 |
-# an error. It is also useful for following along as the install occurs. |
|
| 21 |
-set -o xtrace |
|
| 19 |
+# Save trace setting |
|
| 20 |
+XTRACE=$(set +o | grep xtrace) |
|
| 21 |
+set +o xtrace |
|
| 22 | 22 |
|
| 23 | 23 |
|
| 24 | 24 |
# Defaults |
| ... | ... |
@@ -75,3 +75,6 @@ function stop_XXXX() {
|
| 75 | 75 |
# FIXME(dtroyer): stop only our screen screen window? |
| 76 | 76 |
: |
| 77 | 77 |
} |
| 78 |
+ |
|
| 79 |
+# Restore xtrace |
|
| 80 |
+$XTRACE |
| ... | ... |
@@ -166,6 +166,9 @@ if is_service_enabled cinder && is_service_enabled n-vol; then |
| 166 | 166 |
exit 1 |
| 167 | 167 |
fi |
| 168 | 168 |
|
| 169 |
+# Set up logging level |
|
| 170 |
+VERBOSE=$(trueorfalse True $VERBOSE) |
|
| 171 |
+ |
|
| 169 | 172 |
|
| 170 | 173 |
# root Access |
| 171 | 174 |
# ----------- |
| ... | ... |
@@ -380,6 +383,7 @@ SCHEDULER=${SCHEDULER:-nova.scheduler.filter_scheduler.FilterScheduler}
|
| 380 | 380 |
|
| 381 | 381 |
# Generic helper to configure passwords |
| 382 | 382 |
function read_password {
|
| 383 |
+ XTRACE=$(set +o | grep xtrace) |
|
| 383 | 384 |
set +o xtrace |
| 384 | 385 |
var=$1; msg=$2 |
| 385 | 386 |
pw=${!var}
|
| ... | ... |
@@ -416,7 +420,7 @@ function read_password {
|
| 416 | 416 |
eval "$var=$pw" |
| 417 | 417 |
echo "$var=$pw" >> $localrc |
| 418 | 418 |
fi |
| 419 |
- set -o xtrace |
|
| 419 |
+ $XTRACE |
|
| 420 | 420 |
} |
| 421 | 421 |
|
| 422 | 422 |
|
| ... | ... |
@@ -599,6 +603,18 @@ APACHE_GROUP=${APACHE_GROUP:-$APACHE_USER}
|
| 599 | 599 |
# Log files |
| 600 | 600 |
# --------- |
| 601 | 601 |
|
| 602 |
+# Echo text to the log file, summary log file and stdout |
|
| 603 |
+# echo_summary "something to say" |
|
| 604 |
+function echo_summary() {
|
|
| 605 |
+ echo $@ >&6 |
|
| 606 |
+} |
|
| 607 |
+ |
|
| 608 |
+# Echo text only to stdout, no log files |
|
| 609 |
+# echo_nolog "something not for the logs" |
|
| 610 |
+function echo_nolog() {
|
|
| 611 |
+ echo $@ >&3 |
|
| 612 |
+} |
|
| 613 |
+ |
|
| 602 | 614 |
# Set up logging for ``stack.sh`` |
| 603 | 615 |
# Set ``LOGFILE`` to turn on logging |
| 604 | 616 |
# Append '.xxxxxxxx' to the given name to maintain history |
| ... | ... |
@@ -617,13 +633,38 @@ if [[ -n "$LOGFILE" ]]; then |
| 617 | 617 |
LOGNAME=$(basename "$LOGFILE") |
| 618 | 618 |
mkdir -p $LOGDIR |
| 619 | 619 |
find $LOGDIR -maxdepth 1 -name $LOGNAME.\* -mtime +$LOGDAYS -exec rm {} \;
|
| 620 |
- |
|
| 621 | 620 |
LOGFILE=$LOGFILE.${CURRENT_LOG_TIME}
|
| 622 |
- # Redirect stdout/stderr to tee to write the log file |
|
| 623 |
- exec 1> >( tee "${LOGFILE}" ) 2>&1
|
|
| 624 |
- echo "stack.sh log $LOGFILE" |
|
| 621 |
+ SUMFILE=$LOGFILE.${CURRENT_LOG_TIME}.summary
|
|
| 622 |
+ |
|
| 623 |
+ # Redirect output according to config |
|
| 624 |
+ # Copy stdout to fd 3 |
|
| 625 |
+ exec 3>&1 |
|
| 626 |
+ if [[ "$VERBOSE" == "True" ]]; then |
|
| 627 |
+ # Redirect stdout/stderr to tee to write the log file |
|
| 628 |
+ exec 1> >( tee "${LOGFILE}" ) 2>&1
|
|
| 629 |
+ # Set up a second fd for output |
|
| 630 |
+ exec 6> >( tee "${SUMFILE}" )
|
|
| 631 |
+ else |
|
| 632 |
+ # Set fd 1 and 2 to primary logfile |
|
| 633 |
+ exec 1> "${LOGFILE}" 2>&1
|
|
| 634 |
+ # Set fd 6 to summary logfile and stdout |
|
| 635 |
+ exec 6> >( tee "${SUMFILE}" /dev/fd/3 )
|
|
| 636 |
+ fi |
|
| 637 |
+ |
|
| 638 |
+ echo_summary "stack.sh log $LOGFILE" |
|
| 625 | 639 |
# Specified logfile name always links to the most recent log |
| 626 | 640 |
ln -sf $LOGFILE $LOGDIR/$LOGNAME |
| 641 |
+ ln -sf $SUMFILE $LOGDIR/$LOGNAME.summary |
|
| 642 |
+else |
|
| 643 |
+ # Set up output redirection without log files |
|
| 644 |
+ # Copy stdout to fd 3 |
|
| 645 |
+ exec 3>&1 |
|
| 646 |
+ if [[ "$VERBOSE" != "yes" ]]; then |
|
| 647 |
+ # Throw away stdout and stderr |
|
| 648 |
+ exec 1>/dev/null 2>&1 |
|
| 649 |
+ fi |
|
| 650 |
+ # Always send summary fd to original stdout |
|
| 651 |
+ exec 6>&3 |
|
| 627 | 652 |
fi |
| 628 | 653 |
|
| 629 | 654 |
# Set up logging of screen windows |
| ... | ... |
@@ -667,6 +708,7 @@ set -o xtrace |
| 667 | 667 |
# OpenStack uses a fair number of other projects. |
| 668 | 668 |
|
| 669 | 669 |
# Install package requirements |
| 670 |
+echo_summary "Installing package prerequisites" |
|
| 670 | 671 |
if [[ "$os_PACKAGE" = "deb" ]]; then |
| 671 | 672 |
install_package $(get_packages $FILES/apts) |
| 672 | 673 |
else |
| ... | ... |
@@ -785,6 +827,7 @@ TRACK_DEPENDS=${TRACK_DEPENDS:-False}
|
| 785 | 785 |
|
| 786 | 786 |
# Install python packages into a virtualenv so that we can track them |
| 787 | 787 |
if [[ $TRACK_DEPENDS = True ]] ; then |
| 788 |
+ echo_summary "Installing Python packages into a virtualenv $DEST/.venv" |
|
| 788 | 789 |
install_package python-virtualenv |
| 789 | 790 |
|
| 790 | 791 |
rm -rf $DEST/.venv |
| ... | ... |
@@ -794,12 +837,15 @@ if [[ $TRACK_DEPENDS = True ]] ; then |
| 794 | 794 |
fi |
| 795 | 795 |
|
| 796 | 796 |
# Install python requirements |
| 797 |
+echo_summary "Installing Python prerequisites" |
|
| 797 | 798 |
pip_install $(get_packages $FILES/pips | sort -u) |
| 798 | 799 |
|
| 799 | 800 |
|
| 800 | 801 |
# Check Out Source |
| 801 | 802 |
# ---------------- |
| 802 | 803 |
|
| 804 |
+echo_summary "Installing OpenStack project source" |
|
| 805 |
+ |
|
| 803 | 806 |
install_keystoneclient |
| 804 | 807 |
|
| 805 | 808 |
git_clone $NOVA_REPO $NOVA_DIR $NOVA_BRANCH |
| ... | ... |
@@ -857,6 +903,8 @@ fi |
| 857 | 857 |
# Initialization |
| 858 | 858 |
# ============== |
| 859 | 859 |
|
| 860 |
+echo_summary "Configuring OpenStack projects" |
|
| 861 |
+ |
|
| 860 | 862 |
# Set up our checkouts so they are installed into python path |
| 861 | 863 |
# allowing ``import nova`` or ``import glance.client`` |
| 862 | 864 |
configure_keystoneclient |
| ... | ... |
@@ -923,6 +971,7 @@ EOF |
| 923 | 923 |
EOF |
| 924 | 924 |
sudo mv /tmp/90-stack-s.conf /etc/rsyslog.d |
| 925 | 925 |
fi |
| 926 |
+ echo_summary "Starting rsyslog" |
|
| 926 | 927 |
restart_service rsyslog |
| 927 | 928 |
fi |
| 928 | 929 |
|
| ... | ... |
@@ -932,6 +981,7 @@ fi |
| 932 | 932 |
|
| 933 | 933 |
if is_service_enabled rabbit; then |
| 934 | 934 |
# Start rabbitmq-server |
| 935 |
+ echo_summary "Starting RabbitMQ" |
|
| 935 | 936 |
if [[ "$os_PACKAGE" = "rpm" ]]; then |
| 936 | 937 |
# RPM doesn't start the service |
| 937 | 938 |
restart_service rabbitmq-server |
| ... | ... |
@@ -939,6 +989,7 @@ if is_service_enabled rabbit; then |
| 939 | 939 |
# change the rabbit password since the default is "guest" |
| 940 | 940 |
sudo rabbitmqctl change_password guest $RABBIT_PASSWORD |
| 941 | 941 |
elif is_service_enabled qpid; then |
| 942 |
+ echo_summary "Starting qpid" |
|
| 942 | 943 |
restart_service qpidd |
| 943 | 944 |
fi |
| 944 | 945 |
|
| ... | ... |
@@ -947,6 +998,7 @@ fi |
| 947 | 947 |
# ----- |
| 948 | 948 |
|
| 949 | 949 |
if is_service_enabled mysql; then |
| 950 |
+ echo_summary "Configuring and starting MySQL" |
|
| 950 | 951 |
|
| 951 | 952 |
# Start mysql-server |
| 952 | 953 |
if [[ "$os_PACKAGE" = "rpm" ]]; then |
| ... | ... |
@@ -998,6 +1050,7 @@ screen -r $SCREEN_NAME -X hardstatus alwayslastline "$SCREEN_HARDSTATUS" |
| 998 | 998 |
# -------- |
| 999 | 999 |
|
| 1000 | 1000 |
if is_service_enabled key; then |
| 1001 |
+ echo_summary "Starting Keystone" |
|
| 1001 | 1002 |
configure_keystone |
| 1002 | 1003 |
init_keystone |
| 1003 | 1004 |
start_keystone |
| ... | ... |
@@ -1030,6 +1083,7 @@ fi |
| 1030 | 1030 |
# Set up the django horizon application to serve via apache/wsgi |
| 1031 | 1031 |
|
| 1032 | 1032 |
if is_service_enabled horizon; then |
| 1033 |
+ echo_summary "Configuring and starting Horizon" |
|
| 1033 | 1034 |
|
| 1034 | 1035 |
# Remove stale session database. |
| 1035 | 1036 |
rm -f $HORIZON_DIR/openstack_dashboard/local/dashboard_openstack.sqlite3 |
| ... | ... |
@@ -1079,6 +1133,8 @@ fi |
| 1079 | 1079 |
# ------ |
| 1080 | 1080 |
|
| 1081 | 1081 |
if is_service_enabled g-reg; then |
| 1082 |
+ echo_summary "Configuring Glance" |
|
| 1083 |
+ |
|
| 1082 | 1084 |
GLANCE_CONF_DIR=/etc/glance |
| 1083 | 1085 |
if [[ ! -d $GLANCE_CONF_DIR ]]; then |
| 1084 | 1086 |
sudo mkdir -p $GLANCE_CONF_DIR |
| ... | ... |
@@ -1174,6 +1230,7 @@ fi |
| 1174 | 1174 |
# ------- |
| 1175 | 1175 |
|
| 1176 | 1176 |
if is_service_enabled quantum; then |
| 1177 |
+ echo_summary "Configuring Quantum" |
|
| 1177 | 1178 |
# |
| 1178 | 1179 |
# Quantum Network Configuration |
| 1179 | 1180 |
# |
| ... | ... |
@@ -1469,6 +1526,8 @@ fi |
| 1469 | 1469 |
# Nova |
| 1470 | 1470 |
# ---- |
| 1471 | 1471 |
|
| 1472 |
+echo_summary "Configuring Nova" |
|
| 1473 |
+ |
|
| 1472 | 1474 |
# Put config files in ``/etc/nova`` for everyone to find |
| 1473 | 1475 |
NOVA_CONF_DIR=/etc/nova |
| 1474 | 1476 |
if [[ ! -d $NOVA_CONF_DIR ]]; then |
| ... | ... |
@@ -1676,6 +1735,7 @@ fi |
| 1676 | 1676 |
# --------------- |
| 1677 | 1677 |
|
| 1678 | 1678 |
if is_service_enabled swift; then |
| 1679 |
+ echo_summary "Configuring Swift" |
|
| 1679 | 1680 |
|
| 1680 | 1681 |
# Make sure to kill all swift processes first |
| 1681 | 1682 |
swift-init all stop || true |
| ... | ... |
@@ -1930,8 +1990,10 @@ fi |
| 1930 | 1930 |
# -------------- |
| 1931 | 1931 |
|
| 1932 | 1932 |
if is_service_enabled cinder; then |
| 1933 |
+ echo_summary "Configuring Cinder" |
|
| 1933 | 1934 |
init_cinder |
| 1934 | 1935 |
elif is_service_enabled n-vol; then |
| 1936 |
+ echo_summary "Configuring Nova volumes" |
|
| 1935 | 1937 |
init_nvol |
| 1936 | 1938 |
fi |
| 1937 | 1939 |
|
| ... | ... |
@@ -2072,6 +2134,7 @@ done |
| 2072 | 2072 |
# --------- |
| 2073 | 2073 |
|
| 2074 | 2074 |
if [ "$VIRT_DRIVER" = 'xenserver' ]; then |
| 2075 |
+ echo_summary "Using XenServer virtualization driver" |
|
| 2075 | 2076 |
read_password XENAPI_PASSWORD "ENTER A PASSWORD TO USE FOR XEN." |
| 2076 | 2077 |
add_nova_opt "compute_driver=xenapi.XenAPIDriver" |
| 2077 | 2078 |
XENAPI_CONNECTION_URL=${XENAPI_CONNECTION_URL:-"http://169.254.0.1"}
|
| ... | ... |
@@ -2084,6 +2147,7 @@ if [ "$VIRT_DRIVER" = 'xenserver' ]; then |
| 2084 | 2084 |
XEN_FIREWALL_DRIVER=${XEN_FIREWALL_DRIVER:-"nova.virt.firewall.IptablesFirewallDriver"}
|
| 2085 | 2085 |
add_nova_opt "firewall_driver=$XEN_FIREWALL_DRIVER" |
| 2086 | 2086 |
elif [ "$VIRT_DRIVER" = 'openvz' ]; then |
| 2087 |
+ echo_summary "Using OpenVZ virtualization driver" |
|
| 2087 | 2088 |
# TODO(deva): OpenVZ driver does not yet work if compute_driver is set here. |
| 2088 | 2089 |
# Replace connection_type when this is fixed. |
| 2089 | 2090 |
# add_nova_opt "compute_driver=openvz.connection.OpenVzConnection" |
| ... | ... |
@@ -2091,6 +2155,7 @@ elif [ "$VIRT_DRIVER" = 'openvz' ]; then |
| 2091 | 2091 |
LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"}
|
| 2092 | 2092 |
add_nova_opt "firewall_driver=$LIBVIRT_FIREWALL_DRIVER" |
| 2093 | 2093 |
else |
| 2094 |
+ echo_summary "Using libvirt virtualization driver" |
|
| 2094 | 2095 |
add_nova_opt "compute_driver=libvirt.LibvirtDriver" |
| 2095 | 2096 |
LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"}
|
| 2096 | 2097 |
add_nova_opt "firewall_driver=$LIBVIRT_FIREWALL_DRIVER" |
| ... | ... |
@@ -2121,6 +2186,7 @@ fi |
| 2121 | 2121 |
# ---- |
| 2122 | 2122 |
|
| 2123 | 2123 |
if is_service_enabled heat; then |
| 2124 |
+ echo_summary "Configuring Heat" |
|
| 2124 | 2125 |
init_heat |
| 2125 | 2126 |
fi |
| 2126 | 2127 |
|
| ... | ... |
@@ -2134,6 +2200,7 @@ fi |
| 2134 | 2134 |
|
| 2135 | 2135 |
# Launch the glance registry service |
| 2136 | 2136 |
if is_service_enabled g-reg; then |
| 2137 |
+ echo_summary "Starting Glance" |
|
| 2137 | 2138 |
screen_it g-reg "cd $GLANCE_DIR; $GLANCE_BIN_DIR/glance-registry --config-file=$GLANCE_CONF_DIR/glance-registry.conf" |
| 2138 | 2139 |
fi |
| 2139 | 2140 |
|
| ... | ... |
@@ -2163,6 +2230,7 @@ screen_it zeromq "cd $NOVA_DIR && $NOVA_DIR/bin/nova-rpc-zmq-receiver" |
| 2163 | 2163 |
|
| 2164 | 2164 |
# Launch the nova-api and wait for it to answer before continuing |
| 2165 | 2165 |
if is_service_enabled n-api; then |
| 2166 |
+ echo_summary "Starting Nova API" |
|
| 2166 | 2167 |
add_nova_opt "enabled_apis=$NOVA_ENABLED_APIS" |
| 2167 | 2168 |
screen_it n-api "cd $NOVA_DIR && $NOVA_BIN_DIR/nova-api" |
| 2168 | 2169 |
echo "Waiting for nova-api to start..." |
| ... | ... |
@@ -2173,6 +2241,7 @@ if is_service_enabled n-api; then |
| 2173 | 2173 |
fi |
| 2174 | 2174 |
|
| 2175 | 2175 |
if is_service_enabled q-svc; then |
| 2176 |
+ echo_summary "Starting Quantum" |
|
| 2176 | 2177 |
# Start the Quantum service |
| 2177 | 2178 |
screen_it q-svc "cd $QUANTUM_DIR && python $QUANTUM_DIR/bin/quantum-server --config-file $Q_CONF_FILE --config-file /$Q_PLUGIN_CONF_FILE" |
| 2178 | 2179 |
echo "Waiting for Quantum to start..." |
| ... | ... |
@@ -2226,6 +2295,7 @@ screen_it q-agt "sudo python $AGENT_BINARY --config-file $Q_CONF_FILE --config-f |
| 2226 | 2226 |
screen_it q-dhcp "sudo python $AGENT_DHCP_BINARY --config-file $Q_CONF_FILE --config-file=$Q_DHCP_CONF_FILE" |
| 2227 | 2227 |
screen_it q-l3 "sudo python $AGENT_L3_BINARY --config-file $Q_CONF_FILE --config-file=$Q_L3_CONF_FILE" |
| 2228 | 2228 |
|
| 2229 |
+echo_summary "Starting Nova" |
|
| 2229 | 2230 |
# The group **libvirtd** is added to the current user in this script. |
| 2230 | 2231 |
# Use 'sg' to execute nova-compute as a member of the **libvirtd** group. |
| 2231 | 2232 |
# ``screen_it`` checks ``is_service_enabled``, it is not needed here |
| ... | ... |
@@ -2237,12 +2307,15 @@ screen_it n-novnc "cd $NOVNC_DIR && ./utils/nova-novncproxy --config-file $NOVA_ |
| 2237 | 2237 |
screen_it n-xvnc "cd $NOVA_DIR && ./bin/nova-xvpvncproxy --config-file $NOVA_CONF_DIR/$NOVA_CONF" |
| 2238 | 2238 |
screen_it n-cauth "cd $NOVA_DIR && ./bin/nova-consoleauth" |
| 2239 | 2239 |
if is_service_enabled n-vol; then |
| 2240 |
+ echo_summary "Starting Nova volumes" |
|
| 2240 | 2241 |
start_nvol |
| 2241 | 2242 |
fi |
| 2242 | 2243 |
if is_service_enabled cinder; then |
| 2244 |
+ echo_summary "Starting Cinder" |
|
| 2243 | 2245 |
start_cinder |
| 2244 | 2246 |
fi |
| 2245 | 2247 |
if is_service_enabled ceilometer; then |
| 2248 |
+ echo_summary "Starting Ceilometer" |
|
| 2246 | 2249 |
configure_ceilometer |
| 2247 | 2250 |
start_ceilometer |
| 2248 | 2251 |
fi |
| ... | ... |
@@ -2256,6 +2329,7 @@ is_service_enabled swift3 || \ |
| 2256 | 2256 |
|
| 2257 | 2257 |
# launch heat engine, api and metadata |
| 2258 | 2258 |
if is_service_enabled heat; then |
| 2259 |
+ echo_summary "Starting Heat" |
|
| 2259 | 2260 |
start_heat |
| 2260 | 2261 |
fi |
| 2261 | 2262 |
|
| ... | ... |
@@ -2274,6 +2348,7 @@ fi |
| 2274 | 2274 |
# * **precise**: http://uec-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64.tar.gz |
| 2275 | 2275 |
|
| 2276 | 2276 |
if is_service_enabled g-reg; then |
| 2277 |
+ echo_summary "Uploading images" |
|
| 2277 | 2278 |
TOKEN=$(keystone token-get | grep ' id ' | get_field 2) |
| 2278 | 2279 |
|
| 2279 | 2280 |
# Option to upload legacy ami-tty, which works with xenserver |
| ... | ... |
@@ -2302,6 +2377,15 @@ fi |
| 2302 | 2302 |
|
| 2303 | 2303 |
set +o xtrace |
| 2304 | 2304 |
|
| 2305 |
+if [[ -n "$LOGFILE" ]]; then |
|
| 2306 |
+ exec 1>&3 |
|
| 2307 |
+ # Force all output to stdout and logs now |
|
| 2308 |
+ exec 1> >( tee "${LOGFILE}" ) 2>&1
|
|
| 2309 |
+else |
|
| 2310 |
+ # Force all output to stdout now |
|
| 2311 |
+ exec 1>&3 |
|
| 2312 |
+fi |
|
| 2313 |
+ |
|
| 2305 | 2314 |
|
| 2306 | 2315 |
# Using the cloud |
| 2307 | 2316 |
# --------------- |
| ... | ... |
@@ -2329,8 +2413,8 @@ echo "This is your host ip: $HOST_IP" |
| 2329 | 2329 |
|
| 2330 | 2330 |
# Warn that ``EXTRA_FLAGS`` needs to be converted to ``EXTRA_OPTS`` |
| 2331 | 2331 |
if [[ -n "$EXTRA_FLAGS" ]]; then |
| 2332 |
- echo "WARNING: EXTRA_FLAGS is defined and may need to be converted to EXTRA_OPTS" |
|
| 2332 |
+ echo_summary "WARNING: EXTRA_FLAGS is defined and may need to be converted to EXTRA_OPTS" |
|
| 2333 | 2333 |
fi |
| 2334 | 2334 |
|
| 2335 | 2335 |
# Indicate how long this took to run (bash maintained variable ``SECONDS``) |
| 2336 |
-echo "stack.sh completed in $SECONDS seconds." |
|
| 2336 |
+echo_summary "stack.sh completed in $SECONDS seconds." |