From: Martin Kulhavy Date: Tue, 15 Aug 2017 13:04:11 +0000 (+0300) Subject: Improve and highlight logging to console (2) X-Git-Tag: opnfv-5.0.RC1~56 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=0ab327d6ccdc62f75d6693bea29f3bf41e60c14c;p=joid.git Improve and highlight logging to console (2) xtrace produces a lot of output that can be hard to read. This commit uses extra functions for formatted output (info and error), so that they stand out in the log and make it easier for the user to understand what is currently happening. Building up on change #38909: https://gerrit.opnfv.org/gerrit/38909 Change-Id: I0ddf9e0d3a12a62ae45c56d33a8d48c335b618a0 Signed-off-by: Martin Kulhavy --- diff --git a/ci/03-maasdeploy.sh b/ci/03-maasdeploy.sh index 6d33691e..5ed39341 100755 --- a/ci/03-maasdeploy.sh +++ b/ci/03-maasdeploy.sh @@ -671,4 +671,4 @@ fi # # End of scripts # -echo_info " .... MAAS deployment finished successfully ...." +echo_info "MAAS deployment finished successfully" diff --git a/ci/cleanvm.sh b/ci/cleanvm.sh index df069baf..a2609bd8 100755 --- a/ci/cleanvm.sh +++ b/ci/cleanvm.sh @@ -2,7 +2,9 @@ set -x -echo " Cleanup Started ..." +source tools.sh + +echo_info "Cleanup Started..." #use the below commands if you needs to delete the virtual machine # also along with environment destroy. @@ -20,4 +22,4 @@ do sudo rm -f /var/lib/libvirt/images/${vm}.qcow2 done -echo " Cleanup Finished ..." +echo_info "Cleanup Finished!" diff --git a/ci/deploy.sh b/ci/deploy.sh index 768f5e84..795babbf 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -2,6 +2,8 @@ set -ex +source tools.sh + #need to put multiple cases here where decide this bundle to deploy by default use the odl bundle. # Below parameters are the default and we can according the release @@ -111,7 +113,7 @@ createresource() { jq -r ".[] | select(.hostname == \"$node\").system_id") fi if [[ -z "$node_id" ]]; then - echo "Error: failed to create node $node ." + echo_error "Error: failed to create node $node ." exit 1 fi maas $PROFILE tag update-nodes control add=$node_id || true @@ -138,7 +140,7 @@ deploy() { python genDeploymentConfig.py -l labconfig.yaml > deployconfig.yaml fi else - echo " MAAS not deployed please deploy MAAS first." + echo_error "MAAS not deployed please deploy MAAS first." fi fi @@ -153,7 +155,7 @@ deploy() { cp ~/joid_config/environments.yaml ./environments.yaml fi #copy the script which needs to get deployed as part of ofnfv release - echo "...... deploying now ......" + echo_info "Deploying now..." echo " " >> environments.yaml echo " enable-os-refresh-update: false" >> environments.yaml echo " enable-os-upgrade: false" >> environments.yaml @@ -184,19 +186,19 @@ check_status() { retval=0 timeoutiter=0 - echo -n "executing the relationship within charms ." + echo_info "Executing the relationships within charms..." while [ $retval -eq 0 ]; do if juju status | grep -q $waitstatus; then - echo -n '.' + echo_info "Still waiting for $waitstatus units" if [ $timeoutiter -ge 180 ]; then - echo 'timed out' + echo_error 'Timed out' retval=1 else sleep 30 fi timeoutiter=$((timeoutiter+1)) else - echo 'done' + echo_info 'Done executing the relationships' retval=1 fi done @@ -206,7 +208,7 @@ check_status() { #juju ssh ceph/0 \ 'sudo radosgw-admin user create --uid="ubuntu" --display-name="Ubuntu Ceph"' fi - echo "...... deployment finishing ......." + echo_info "Deployment finishing..." } # In the case of a virtual deployment @@ -214,15 +216,15 @@ if [ "$virtinstall" -eq 1 ]; then ./clean.sh || true fi -echo "...... deployment started ......" +echo_info "Deployment started" deploy check_status executing -echo "...... deployment finished ......." +echo_info "Deployment finished" -echo "...... configuring public access ......." +echo_info "Configuring public access" # translate bundle.yaml to json python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)' < bundles.yaml > bundles.json @@ -237,7 +239,7 @@ admin_gw=$(cat labconfig.json | jq --raw-output ".opnfv.spaces[] | select(.type= if ([ $admin_gw ] && [ $admin_gw != "null" ]); then # set default gateway to public api gateway for cnt in $cnt_list; do - echo "changing default gw on $cnt" + echo_info "Changing default gateway on $cnt" if ([ $public_api_gw ] && [ $public_api_gw != "null" ]); then juju ssh $cnt "sudo ip r d default && sudo ip r a default via $public_api_gw"; juju ssh $cnt "gw_dev=\$(ip r l | grep 'via $public_api_gw' | cut -d \ -f5) &&\ @@ -250,9 +252,10 @@ if ([ $admin_gw ] && [ $admin_gw != "null" ]); then done fi -echo "...... configure ......." - +// Configuring deployment if ([ $opnfvmodel == "openstack" ]); then + echo_info "Configuring OpenStack deployment" + ./openstack.sh "$opnfvsdn" "$opnfvlab" "$opnfvdistro" "$openstack" || true # creating heat domain after pushing the public API into /etc/hosts @@ -272,12 +275,14 @@ if ([ $opnfvmodel == "openstack" ]); then fi elif ([ $opnfvmodel == "kubernetes" ]); then + echo_info "Configuring Kubernetes deployment" + ./k8.sh fi # expose the juju gui-url to login into juju gui -echo " ...... JUJU GUI can be access using the below URL ...... " +echo_info "Juju GUI can be accessed using the following URL and credentials:" juju gui --show-credentials --no-browser -echo "...... finished ......." +echo "Finished deployment and configuration" diff --git a/ci/openstack.sh b/ci/openstack.sh index 9020fd7c..98ebb145 100755 --- a/ci/openstack.sh +++ b/ci/openstack.sh @@ -1,5 +1,4 @@ #!/bin/bash -ex - ############################################################################## # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -7,6 +6,10 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +set -ex + +source tools.sh + #./openstack.sh "$opnfvsdn" "$opnfvlab" "$opnfvdistro" "$openstack" || true opnfvsdn=$1 @@ -84,6 +87,8 @@ keystoneIp() { # create external network and subnet in openstack create_openrc() { + echo_info "Creating the openrc (OpenStack client environment scripts)" + mkdir -m 0700 -p cloud keystoneIp=$(keystoneIp) if [[ "$jujuver" < "2" ]]; then @@ -150,7 +155,9 @@ export OS_AUTH_URL=$4 EOF } -if ([ $API_FQDN ] && [ $API_FQDN != "null" ] && [ $API_FQDN != "None"]); then +if ([ $API_FQDN ] && [ $API_FQDN != "null" ] && [ $API_FQDN != "None" ]); then + echo_info "OS domain name was specified - injecting API FQDN to nodes" + # Push api fqdn local ip to all /etc/hosts if [[ "$jujuver" < "2" ]]; then API_FQDN=$(juju get keystone | python -c "import yaml; import sys;\ @@ -187,13 +194,13 @@ create_openrc . ~/joid_config/admin-openrc -echo "...... deploy public api proxy ......" - if ([ "$opnfvlab" == "orangepod1" ] \ || [ "$opnfvlab" == "intelpod6" ]) \ && [ "$opnfvsdn" == "nosdn" ] \ && [ "$API_FQDN" != "None" ]; then # only for first test phase if [ -e ./labconfig.yaml ]; then + echo_info "Deploying public API proxy" + PUB_API_MASK=$(grep floating-ip-range ./labconfig.yaml |cut -d/ -f2) PUB_API_NET=$(grep floating-ip-range ./labconfig.yaml |cut -d, -f4) PUB_API_IP=$(grep public-api-ip ./labconfig.yaml |cut -d: -f2) @@ -218,10 +225,11 @@ if ([ "$opnfvlab" == "orangepod1" ] \ juju run --unit nodes/0 "sudo ip l set dev br-ex up" || true python genPublicAPIProxyBundle.py -l labconfig.yaml >> bundles.yaml juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $opnfvdistro-"$opnfvos" || true + + echo_info "Public API proxy deployed!" fi fi -echo "...... deploy end public api proxy ......" ## ## removing the swift API endpoint which is created by radosgw. @@ -238,6 +246,8 @@ echo "...... deploy end public api proxy ......" ## Create external subnet Network ## +echo_info "Creating external network with neutron" + if [ "onos" == "$opnfvsdn" ]; then launch_eth neutron net-show ext-net > /dev/null 2>&1 || neutron net-create ext-net \ diff --git a/ci/tools.sh b/ci/tools.sh index 4eed361b..ecb2e806 100644 --- a/ci/tools.sh +++ b/ci/tools.sh @@ -7,6 +7,8 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +# include only once +[ ! -z "$_tools_included" ] && return || readonly _tools_included=true ####################################### # Echo printing in yellow bold color @@ -24,3 +26,20 @@ function echo_info { ( echo "${@:1:($#-1)}" -e "$yellow_bold${@: -1}$color_off"; ) } + +####################################### +# Echo error +# Arguments: +# Same as for echo +# Returns: +# None +####################################### +function echo_error { ( + # don't clutter the script output with the xtrace of the echo command + { set +x; } 2> /dev/null + + red_bold='\033[1;31m' + color_off='\033[0m' + >&2 echo "${@:1:($#-1)}" -e "$red_bold${@: -1}$color_off"; + ) +}