X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Finstall_osm.sh;h=1bb42571107f67e2a6ad301a233053c62a0cbc2b;hb=ae8b04e946f0e8028eaf49b87858582c46487004;hp=4046cfb2d4cace9f654870aea034d66cae6092e0;hpb=b884a463086b9841ef3f7b324f320db5e6e11492;p=osm%2Fdevops.git diff --git a/installers/install_osm.sh b/installers/install_osm.sh index 4046cfb2..1bb42571 100755 --- a/installers/install_osm.sh +++ b/installers/install_osm.sh @@ -61,6 +61,11 @@ function nat(){ sudo $OSM_DEVOPS/installers/nat_osm } +function FATAL(){ + echo "FATAL error: Cannot install OSM due to \"$1\"" + exit 1 +} + #Update RO, SO and UI: function update(){ echo -e "\nUpdating components" @@ -133,30 +138,28 @@ function update(){ echo } -function so_is_up(){ +function so_is_up() { SO_IP=$1 time=0 step=5 timelength=300 while [ $time -le $timelength ] do - curl -k https://$SO_IP:8008/api/operational/vcs/info \ - --header 'accept: application/vnd.yang.data+json' \ - --header 'authorization: Basic YWRtaW46YWRtaW4=' \ - --header 'cache-control: no-cache' \ - --header 'content-type: application/vnd.yang.data+json' &> /dev/null - RET=$? - if [ "$RET" == 0 ]; then - break + if [[ `curl -k -X GET https://$SO_IP:8008/api/operational/vcs/info \ + -H 'accept: application/vnd.yang.data+json' \ + -H 'authorization: Basic YWRtaW46YWRtaW4=' \ + -H 'cache-control: no-cache' 2> /dev/null | jq '.[].components.component_info[] | select(.component_name=="RW.Restconf")' 2>/dev/null | grep "RUNNING" | wc -l` -eq 1 ]] + then + echo "RW.Restconf running....SO is up" + return 0 fi + sleep $step echo -n "." time=$((time+step)) done - if [ "$RET" != 0 ]; then - FATAL "OSM Failed to startup" - fi - echo + + FATAL "OSM Failed to startup" } #Configure VCA, SO and RO with the initial configuration: @@ -188,6 +191,12 @@ function configure(){ echo -e " Configuring SO" sudo route add -host $JUJU_CONTROLLER_IP gw $VCA_CONTAINER_IP sudo sed -i "$ i route add -host $JUJU_CONTROLLER_IP gw $VCA_CONTAINER_IP" /etc/rc.local + + # make journaling persistent + lxc exec SO-ub -- mkdir -p /var/log/journal + lxc exec SO-ub -- systemd-tmpfiles --create --prefix /var/log/journal + lxc exec SO-ub -- systemctl restart systemd-journald + echo RIFT_EXTERNAL_ADDRESS=$DEFAULT_IP | lxc exec SO-ub -- tee -a /usr/rift/etc/default/launchpad lxc exec SO-ub -- systemctl restart launchpad @@ -291,6 +300,7 @@ SHOWOPTS="" COMMIT_ID="" ASSUME_YES="" INSTALL_FROM_SOURCE="" +RELEASE="-R ReleaseTHREE" while getopts ":hy-:b:r:k:u:R:" o; do case "${o}" in @@ -368,8 +378,15 @@ else trap 'rm -rf "$TEMPDIR"' EXIT fi -echo -e "Checking required packages: git" -dpkg -l git &>/dev/null || ! echo -e " git not installed.\nInstalling git requires root privileges" || sudo apt-get install -y git +need_packages="git jq" +for package in $need_packages; do + echo -e "Checking required packages: $package" + dpkg -l $package &>/dev/null \ + || ! echo -e " $package not installed.\nInstalling $package requires root privileges" \ + || sudo apt-get install -y $package \ + || FATAL "failed to install $package" +done + if [ -z "$TEST_INSTALLER" ]; then echo -e "\nCloning devops repo temporarily" git clone https://osm.etsi.org/gerrit/osm/devops.git $TEMPDIR @@ -377,7 +394,7 @@ if [ -z "$TEST_INSTALLER" ]; then fi echo -e "\nGuessing the current stable release" -LATEST_STABLE_DEVOPS=`git -C $TEMPDIR tag -l v[0-9].* | tail -n1` +LATEST_STABLE_DEVOPS=`git -C $TEMPDIR tag -l v[0-9].* | sort -V | tail -n1` [ -z "$COMMIT_ID" ] && [ -z "$LATEST_STABLE_DEVOPS" ] && echo "Could not find the current latest stable release" && exit 0 echo "Latest tag in devops repo: $LATEST_STABLE_DEVOPS" [ -z "$COMMIT_ID" ] && [ -n "$LATEST_STABLE_DEVOPS" ] && COMMIT_ID="tags/$LATEST_STABLE_DEVOPS"