Merge "Enable multidistro support"
diff --git a/bootstrap/vagrant-onap/lib/commons b/bootstrap/vagrant-onap/lib/commons
index 2b01dc5..1c45413 100755
--- a/bootstrap/vagrant-onap/lib/commons
+++ b/bootstrap/vagrant-onap/lib/commons
@@ -6,11 +6,22 @@
     if [ -f /var/onap/files/sources.list ]; then
         cp /var/onap/files/sources.list /etc/apt/sources.list
     fi
-    if [[ "$debug" == "False" ]]; then
-        apt-get update > /dev/null
-    else
-        apt-get update
-    fi
+    source /etc/os-release || source /usr/lib/os-release
+    case ${ID,,} in
+        *suse)
+            zypper -n ref
+        ;;
+        ubuntu|debian)
+            if [[ "$debug" == "False" ]]; then
+                apt-get update > /dev/null
+            else
+                apt-get update
+            fi
+        ;;
+        rhel|centos|fedora)
+            yum updateinfo
+        ;;
+    esac
 }
 
 # is_package_installed() - Function to tell if a package is installed
@@ -18,13 +29,31 @@
     if [[ -z "$@" ]]; then
         return 1
     fi
-    dpkg -s "$@" > /dev/null 2> /dev/null
+    source /etc/os-release || source /usr/lib/os-release
+    case ${ID,,} in
+        *suse)
+        ;;
+        ubuntu|debian)
+            dpkg -s "$@" > /dev/null 2> /dev/null
+        ;;
+        rhel|centos|fedora)
+        ;;
+    esac
 }
 
 # install_packages() - Install a list of packages
 function install_packages {
     local package=$@
-    apt-get install -y -qq $package
+    source /etc/os-release || source /usr/lib/os-release
+    case ${ID,,} in
+        *suse)
+        ;;
+        ubuntu|debian)
+            apt-get install -y -qq $package
+        ;;
+        rhel|centos|fedora)
+        ;;
+    esac
 }
 
 # install_package() - Install specific package if doesn't exist
@@ -34,24 +63,54 @@
     if ! is_package_installed $package; then
         echo "Installing $package..."
 
-        if [[ "$debug" == "False" ]]; then
-            apt-get install -y -qq -o=Dpkg::Use-Pty=0 $package
-        else
-            apt-get install -y $package
-        fi
+        source /etc/os-release || source /usr/lib/os-release
+        case ${ID,,} in
+            *suse)
+                zypper install -y $package
+            ;;
+            ubuntu|debian)
+                if [[ "$debug" == "False" ]]; then
+                    apt-get install -y -qq -o=Dpkg::Use-Pty=0 $package
+                else
+                    apt-get install -y $package
+                fi
+            ;;
+            rhel|centos|fedora)
+                PKG_MANAGER=$(which dnf || which yum)
+                ${PKG_MANAGER} -y install $package
+            ;;
+        esac
     fi
 }
 
 # uninstall_packages() - Uninstall a list of packages
 function uninstall_packages {
     local packages=$@
-    apt-get purge -y -qq $packages
+    source /etc/os-release || source /usr/lib/os-release
+    case ${ID,,} in
+        *suse)
+        ;;
+        ubuntu|debian)
+            apt-get purge -y -qq $packages
+        ;;
+        rhel|centos|fedora)
+        ;;
+    esac
 }
 
 # uninstall_package() - Uninstall specific package if exists
 function uninstall_package {
     local package=$1
     if is_package_installed $package; then
-        apt-get purge -y -qq $package
+        source /etc/os-release || source /usr/lib/os-release
+        case ${ID,,} in
+            *suse)
+            ;;
+            ubuntu|debian)
+                apt-get purge -y -qq $package
+            ;;
+            rhel|centos|fedora)
+            ;;
+        esac
     fi
 }
diff --git a/bootstrap/vagrant-onap/lib/functions b/bootstrap/vagrant-onap/lib/functions
index de6f9ee..ce95ea0 100755
--- a/bootstrap/vagrant-onap/lib/functions
+++ b/bootstrap/vagrant-onap/lib/functions
@@ -42,7 +42,7 @@
 
 # clone_repo() - Clone Git repository into specific folder
 function clone_repo {
-    local repo_url=https://git.onap.org/
+    local repo_url=${3:-"https://git.onap.org/"}
     local repo=$1
     local dest_folder=${2:-$git_src_folder/$repo}
     if [ ! -d $dest_folder ]; then
@@ -73,8 +73,17 @@
     if is_package_installed openjdk-8-jdk; then
         return
     fi
-    install_package software-properties-common
-    add-apt-repository -y ppa:openjdk-r/ppa
+    source /etc/os-release || source /usr/lib/os-release
+    case ${ID,,} in
+        *suse)
+        ;;
+        ubuntu|debian)
+            install_package software-properties-common
+            add-apt-repository -y ppa:openjdk-r/ppa
+        ;;
+        rhel|centos|fedora)
+        ;;
+    esac
     update_repos
 
     # Remove Java 7
@@ -91,8 +100,17 @@
         return
     fi
     install_java
-    install_package software-properties-common
-    add-apt-repository -y ppa:andrei-pozolotin/maven3
+    source /etc/os-release || source /usr/lib/os-release
+    case ${ID,,} in
+        *suse)
+        ;;
+        ubuntu|debian)
+            install_package software-properties-common
+            add-apt-repository -y ppa:andrei-pozolotin/maven3
+        ;;
+        rhel|centos|fedora)
+        ;;
+    esac
     update_repos
     install_package maven3
 
@@ -170,11 +188,20 @@
     if is_package_installed docker-ce; then
         return
     fi
-    install_package software-properties-common
-    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-        add-apt-repository \
-        "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
-        $(lsb_release -cs) stable"
+    source /etc/os-release || source /usr/lib/os-release
+    case ${ID,,} in
+        *suse)
+        ;;
+        ubuntu|debian)
+            install_package software-properties-common
+            curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
+            add-apt-repository \
+            "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
+            $(lsb_release -cs) stable"
+        ;;
+        rhel|centos|fedora)
+        ;;
+    esac
     update_repos
 
     install_package docker-ce