install_osm.sh: uninstall procedure for lightweight build
[osm/devops.git] / installers / install_osm.sh
index 103b3f7..15037c7 100755 (executable)
@@ -66,6 +66,36 @@ function uninstall(){
     return 0
 }
 
+#Uninstall lightweight OSM: remove dockers
+function uninstall_lightweight(){
+    echo -e "\nUninstalling lightweight OSM"
+    docker stack rm osm
+    COUNTER=0
+    result=11
+    while [ ${COUNTER} -lt 30 ]; do
+        sleep 1
+        result=$(docker stack ps osm | wc -l)
+        #echo "Dockers running: $result"
+        if [ "${result}" == "0" ]; then
+            break
+        fi
+        let COUNTER=COUNTER+1
+    done
+    if [ "${result}" == "0" ]; then
+        echo "All dockers of the stack osm were removed"
+    else
+        FATAL "Some dockers of the stack osm could not be removed. Could not uninstall OSM in single shot. Try to uninstall again"
+    fi
+    sleep 5
+    docker image rm osm/ro
+    docker image rm osm/lcm
+    docker image rm osm/light-ui
+    docker image rm osm/nbi
+    docker image rm osm/mon
+    docker image rm osm/pm
+    return 0
+}
+
 #Configure NAT rules, based on the current IP addresses of containers
 function nat(){
     echo -e "\nChecking required packages: iptables-persistent"
@@ -375,7 +405,7 @@ function install_lxd() {
     lxd waitready
     lxc network create lxdbr0 ipv4.address=auto ipv4.nat=true ipv6.address=none ipv6.nat=false
     DEFAULT_INTERFACE=$(route -n | awk '$1~/^0.0.0.0/ {print $8}')
-    DEFAULT_MTU=$( ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}')
+    DEFAULT_MTU=$(ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}')
     lxc profile device set default eth0 mtu $DEFAULT_MTU
     #sudo systemctl stop lxd-bridge
     #sudo systemctl --system daemon-reload
@@ -420,6 +450,9 @@ function install_osmclient(){
     curl $key_location | sudo apt-key add -
     sudo add-apt-repository -y "deb [arch=amd64] $CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE $CLIENT_REPOSITORY osmclient"
     sudo apt-get update
+    sudo apt-get install -y python-pip
+    sudo -H pip install pip==9.0.3
+    sudo -H pip install python-magic
     sudo apt-get install -y python-osmclient
     #sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ${HOME}/.bashrc
     #echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc
@@ -488,6 +521,14 @@ function install_docker_ce() {
     echo "... restarted Docker service"
 }
 
+function install_docker_compose() {
+    # installs and configures docker-compose
+    echo "Installing Docker Compose ..."
+    sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
+    sudo chmod +x /usr/local/bin/docker-compose
+    echo "... Docker Compose installation done"
+}
+
 function install_juju() {
     echo "Installing juju"
     sudo snap install juju --classic
@@ -502,7 +543,7 @@ function generate_docker_images() {
     docker pull wurstmeister/kafka
     docker pull wurstmeister/zookeeper
     docker pull mongo
-    docker pull mysql
+    docker pull mysql:5
     git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/MON
     docker build ${LWTEMPDIR}/MON -f ${LWTEMPDIR}/MON/docker/Dockerfile -t osm/mon || ! echo "cannot build MON docker image" >&2
     docker build ${LWTEMPDIR}/MON/policy_module -f ${LWTEMPDIR}/MON/policy_module/Dockerfile -t osm/pm || ! echo "cannot build PM docker image" >&2
@@ -534,34 +575,23 @@ function deploy_lightweight() {
     echo "Deploying lightweight build"
     newgrp docker << EONG
     docker swarm init --advertise-addr ${DEFAULT_IP}
-    docker network create --driver=overlay --attachable netOSM
+    docker network create --driver=overlay --attachable --opt com.docker.network.driver.mtu=${DEFAULT_MTU} netOSM
     docker stack deploy -c ${OSM_DEVOPS}/installers/docker/docker-compose.yaml osm
+    #docker-compose -f /usr/share/osm-devops/installers/docker/docker-compose.yaml up -d
 EONG
     echo "Finished deployment of lightweight build"
 }
 
-function install_osmclient_sol005() {
-    sudo apt-get update
-    sudo apt-get install -y python-pip libcurl4-gnutls-dev libgnutls-dev
-    git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/osmclient
-    sudo -H pip install -U pip
-    sudo -H pip install -U setuptools
-    pushd ${LWTEMPDIR}/osmclient
-    sudo -H python setup.py install
-    popd
-    #sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ~/.bashrc
-    echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc
-    echo 'export OSM_SOL005=True' >> ${HOME}/.bashrc
-}
-
 function install_lightweight() {
     echo "Installing lightweight build of OSM"
     LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")"
     trap 'rm -rf "${LWTEMPDIR}"' EXIT
     DEFAULT_IF=`route -n |awk '$1~/^0.0.0.0/ {print $8}'`
     DEFAULT_IP=`ip -o -4 a |grep ${DEFAULT_IF}|awk '{split($4,a,"/"); print a[1]}'`
+    DEFAULT_MTU=$(ip addr show ${DEFAULT_IF} | perl -ne 'if (/mtu\s(\d+)/) {print $1;}')
     install_juju
     install_docker_ce
+    #install_docker_compose
     generate_docker_images
     generate_docker_env_files
     deploy_lightweight
@@ -774,6 +804,7 @@ fi
 OSM_JENKINS="$OSM_DEVOPS/jenkins"
 . $OSM_JENKINS/common/all_funcs
 
+[ -n "$INSTALL_LIGHTWEIGHT" ] && [ -n "$UNINSTALL" ] && uninstall_lightweight && echo -e "\nDONE" && exit 0
 [ -n "$UNINSTALL" ] && uninstall && echo -e "\nDONE" && exit 0
 [ -n "$NAT" ] && nat && echo -e "\nDONE" && exit 0
 [ -n "$UPDATE" ] && update && echo -e "\nDONE" && exit 0