catch if not using gerrit triggers
[osm/devops.git] / installers / install_osm.sh
index 9d10308..1bb4257 100755 (executable)
@@ -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"
@@ -405,7 +422,7 @@ echo -e "Checking required packages: lxd"
 lxd --version &>/dev/null || FATAL "lxd not present, exiting."
 [ -n "$LXD" ] && echo -e "\nConfiguring lxd" && install_lxd
 
-wget -q -O- https://osm-download.etsi.org/ftp/osm-2.0-two/README.txt &> /dev/null
+wget -q -O- https://osm-download.etsi.org/ftp/osm-3.0-three/README.txt &> /dev/null
 
 # use local devops for containers
 export OSM_USE_LOCAL_DEVOPS=true
@@ -429,5 +446,5 @@ nat
 #Configure components
 configure
 
-wget -q -O- https://osm-download.etsi.org/ftp/osm-2.0-two/README2.txt &> /dev/null
+wget -q -O- https://osm-download.etsi.org/ftp/osm-3.0-three/README2.txt &> /dev/null
 echo -e "\nDONE"