Add bmcDisableCertificateVerification to chart
[icn.git] / env / ubuntu / bootloader-env / 02_clean_bootloader_package_req.sh
index 4154b6f..6bb3b15 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-set -ex
+set -eux -o pipefail
 
 source $(dirname $PWD)/../lib/common.sh
 source $(dirname $PWD)/../lib/logging.sh
@@ -9,26 +9,28 @@ if [[ $EUID -ne 0 ]]; then
     exit 1
 fi
 
-if [[ $(lsb_release -d | cut -f2) != $UBUNTU_BIONIC ]]; then
-    echo "Currently Ubuntu 18.04.2 LTS is only supported"
-    exit 1
-fi
+function autoremove {
+    rm -rf /etc/apt/sources.list.d/*
+}
 
-function clean_essential_packages() {
+function clean_essential_packages {
     apt-get update
-       for package in crudini curl dnsmasq figlet golang nmap patch psmisc \
-                       python-pip python-requests python-setuptools vim wget; do
-       apt-get remove $package -y
-       done
+    for package in crudini curl dnsmasq figlet golang nmap patch psmisc \
+        python3-pip python3-requests python3-setuptools vim wget; do
+        apt-get remove $package -y
+    done
+    update-alternatives --remove python /usr/bin/python3
+    update-alternatives --remove pip /usr/bin/pip3
 
-       apt-get autoremove -y
-       rm -rf /etc/apt/sources.list.d/*
+    autoremove
 }
 
-function check_prerequisite() {
+function check_prerequisite {
     if !(which pip); then
-        apt-get install python-pip -y
+        apt-get install python3-pip -y
     fi
+    update-alternatives --install /usr/bin/python python /usr/bin/python3 1
+    update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
 
     if !(which curl); then
         apt-get install curl -y
@@ -39,106 +41,64 @@ function check_prerequisite() {
     fi
 }
 
-function clean_ironic_packages() {
-       for package in jq nodejs python-ironicclient \
-                       python-ironic-inspector-client python-lxml python-netaddr \
-                       python-openstackclient unzip genisoimage; do
-       apt-get remove $package -y
-       done    
+function clean_ironic_packages {
+    for package in python3-ironicclient \
+        python3-ironic-inspector-client \
+        python3-openstackclient genisoimage; do
+        apt-get remove $package -y
+    done
 }
 
-function clean_docker_packages() {
+function clean_docker_packages {
     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"
     apt-get update
+    docker rmi -f $(docker image ls -a -q)
     apt-get remove docker-ce -y
-       for package in apt-transport-https ca-certificates gnupg-agent \
-            software-properties-common; do
-        apt-get remove $package -y
-    done
-
-       apt-get remove -y docker \
+    apt-get remove -y docker \
         docker-engine \
         docker.io \
         containerd \
         runc \
         docker-ce
-
-       apt-get update
-}
-
-function clean_podman_packages() {
+    apt-get purge docker-* -y --allow-change-held-packages
     apt-get update
-    add-apt-repository -y ppa:projectatomic/ppa
-    apt-get remove podman -y
 }
 
-function clean_kubernetes_packages() {
-       #Just to make sure kubernetes packages are removed during the download
-   curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
-   bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
+function clean_kubernetes_packages {
+    #Just to make sure kubernetes packages are removed during the download
+    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
+    bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
 deb https://apt.kubernetes.io/ kubernetes-xenial main
 EOF'
-   apt-get update
-   apt-get remove kubelet kubeadm kubectl -y
-}
-
-function clean_apt_cache() {
-       shopt -s extglob
-       pushd /var/cache/apt/archives
-
-       if [ $(ls -1q . | wc -l ) -ge 3 ]; then
-       $(rm !("lock"|"partial"))
-       fi
-       popd
-       
+    apt-get update
+    apt-get remove kubelet kubeadm kubectl -y
 }
 
-function mv_apt_cache() {
-       shopt -s extglob
+function clean_apt_cache {
+    shopt -s extglob
     pushd /var/cache/apt/archives
 
-    if [ $(ls -1q . | wc -l ) -gt 2 ]; then
-        $(mv !("lock"|"partial") $LOCAL_APT_REPO)
+    if [ $(ls -1q . | wc -l ) -ge 3 ]; then
+        $(rm !("lock"|"partial"))
     fi
     popd
-}
 
-function check_dir() {
-    if [ ! -d $1 ]; then
-        mkdir -p $1
-    fi
 }
 
-function clean_dir() {
-       shopt -s extglob
-    pushd $1
-
-    if [ $(ls -1q . | wc -l ) -ne 0 ]; then
-        $(rm -r ./*)
-    fi
-    popd
-}
+if [ "$1" == "--only-packages" ]; then
+    check_prerequisite
+    clean_docker_packages || true
+    autoremove
+    exit 0
+fi
 
 check_prerequisite
 clean_apt_cache
-check_dir $LOCAL_APT_REPO
-clean_dir $LOCAL_APT_REPO
-check_dir $PIP_CACHE_DIR
-clean_dir $PIP_CACHE_DIR
-check_dir $BUILD_DIR
-clean_dir $BUILD_DIR
-check_dir $CONTAINER_IMAGES_DIR
-clean_dir $CONTAINER_IMAGES_DIR
 clean_kubernetes_packages
-clean_podman_packages
 clean_docker_packages
 clean_ironic_packages
 clean_essential_packages
-rm -rf $LOCAL_APT_REPO
-rm -rf $PIP_CACHE_DIR
-rm -rf $BUILD_DIR
-rm -rf $CONTAINER_IMAGES_DIR