Merge changes I4396d3ef,I1f9ce570
[osm/devops.git] / installers / install_osm.sh
index f903175..6e114be 100755 (executable)
@@ -133,30 +133,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 +186,14 @@ 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
 
     so_is_up $SO_CONTAINER_IP
@@ -209,14 +215,50 @@ function configure(){
       --data '{"account": [ { "name": "osmjuju", "account-type": "juju", "juju": { "ip-address": "'$JUJU_CONTROLLER_IP'", "port": "17070", "user": "admin", "secret": "'$JUJU_PASSWD'" }  }  ]}')
     [[ $result =~ .*success.* ]] || FATAL "Failed config-agent configuration: $result"
 
+    #R1/R2 config line
+    #result=$(curl -k --request PUT \
+    #  --url https://$SO_CONTAINER_IP:8008/api/config/resource-orchestrator \
+    #  --header 'accept: application/vnd.yang.data+json' \
+    #  --header 'authorization: Basic YWRtaW46YWRtaW4=' \
+    #  --header 'cache-control: no-cache' \
+    #  --header 'content-type: application/vnd.yang.data+json' \
+    #  --data '{ "openmano": { "host": "'$RO_CONTAINER_IP'", "port": "9090", "tenant-id": "'$RO_TENANT_ID'" }, "name": "osmopenmano", "account-type": "openmano" }')
+
     result=$(curl -k --request PUT \
-      --url https://$SO_CONTAINER_IP:8008/api/config/resource-orchestrator \
+      --url https://$SO_CONTAINER_IP:8008/api/config/project/default/ro-account/account \
       --header 'accept: application/vnd.yang.data+json' \
       --header 'authorization: Basic YWRtaW46YWRtaW4=' \
-      --header 'cache-control: no-cache' \
+      --header 'cache-control: no-cache'   \
       --header 'content-type: application/vnd.yang.data+json' \
-      --data '{ "openmano": { "host": "'$RO_CONTAINER_IP'", "port": "9090", "tenant-id": "'$RO_TENANT_ID'" }, "name": "osmopenmano", "account-type": "openmano" }')
+      --data '{"rw-ro-account:account": [ { "openmano": { "host": "'$RO_CONTAINER_IP'", "port": "9090", "tenant-id": "'$RO_TENANT_ID'"}, "name": "osmopenmano", "ro-account-type": "openmano" }]}')
     [[ $result =~ .*success.* ]] || FATAL "Failed resource-orchestrator configuration: $result"
+
+    result=$(curl -k --request PATCH \
+      --url https://$SO_CONTAINER_IP:8008/v2/api/config/openidc-provider-config/rw-ui-client/redirect-uri \
+      --header 'accept: application/vnd.yang.data+json' \
+      --header 'authorization: Basic YWRtaW46YWRtaW4=' \
+      --header 'cache-control: no-cache'   \
+      --header 'content-type: application/vnd.yang.data+json' \
+      --data '{"redirect-uri": "https://'$DEFAULT_IP':8443/callback" }')
+    [[ $result =~ .*success.* ]] || FATAL "Failed redirect-uri configuration: $result"
+
+    result=$(curl -k --request PATCH \
+      --url https://$SO_CONTAINER_IP:8008/v2/api/config/openidc-provider-config/rw-ui-client/post-logout-redirect-uri \
+      --header 'accept: application/vnd.yang.data+json' \
+      --header 'authorization: Basic YWRtaW46YWRtaW4=' \
+      --header 'cache-control: no-cache'   \
+      --header 'content-type: application/vnd.yang.data+json' \
+      --data '{"post-logout-redirect-uri": "https://'$DEFAULT_IP':8443/?api_server=https://'$DEFAULT_IP'" }')
+    [[ $result =~ .*success.* ]] || FATAL "Failed post-logout-redirect-uri configuration: $result"
+
+    lxc exec SO-ub -- tee /etc/network/interfaces.d/60-rift.cfg <<EOF
+auto lo:1
+iface lo:1 inet static 
+        address  $DEFAULT_IP
+        netmask 255.255.255.255
+EOF
+    lxc exec SO-ub ifup lo:1
+
 }
 
 function install_lxd() {
@@ -330,8 +372,12 @@ 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
+done
+
 if [ -z "$TEST_INSTALLER" ]; then
     echo -e "\nCloning devops repo temporarily"
     git clone https://osm.etsi.org/gerrit/osm/devops.git $TEMPDIR
@@ -367,7 +413,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
@@ -391,5 +437,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"