Update to python3
[icn.git] / env / ubuntu / bootloader-env / 02_clean_bootloader_package_req.sh
1 #!/usr/bin/env bash
2 set -eux -o pipefail
3
4 source $(dirname $PWD)/../lib/common.sh
5 source $(dirname $PWD)/../lib/logging.sh
6
7 if [[ $EUID -ne 0 ]]; then
8     echo "This script must be run as root"
9     exit 1
10 fi
11
12 function autoremove {
13     #apt-get autoremove -y
14     rm -rf /etc/apt/sources.list.d/*
15 }
16
17 function clean_essential_packages {
18     apt-get update
19     for package in crudini curl dnsmasq figlet golang nmap patch psmisc \
20         python3-pip python3-requests python3-setuptools vim wget; do
21         apt-get remove $package -y
22     done
23     update-alternatives --remove python /usr/bin/python3
24     update-alternatives --remove pip /usr/bin/pip3
25
26     autoremove
27 }
28
29 function check_prerequisite {
30     if !(which pip); then
31         apt-get install python3-pip -y
32     fi
33     update-alternatives --install /usr/bin/python python /usr/bin/python3 1
34     update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
35
36     if !(which curl); then
37         apt-get install curl -y
38     fi
39
40     if !(which add-apt-repository); then
41         apt-get install software-properties-common -y
42     fi
43 }
44
45 function clean_ironic_packages {
46     for package in python3-ironicclient \
47         python3-ironic-inspector-client \
48         python3-openstackclient genisoimage; do
49         apt-get remove $package -y
50     done
51 }
52
53 function clean_docker_packages {
54     curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
55     add-apt-repository \
56         "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
57         $(lsb_release -cs) \
58         stable"
59     apt-get update
60     docker rmi -f $(docker image ls -a -q)
61     apt-get remove docker-ce -y
62     apt-get remove -y docker \
63         docker-engine \
64         docker.io \
65         containerd \
66         runc \
67         docker-ce
68     apt-get purge docker-* -y --allow-change-held-packages
69     apt-get update
70 }
71
72 function clean_podman_packages {
73     apt-get update
74     add-apt-repository -y ppa:projectatomic/ppa
75     apt-get remove podman -y
76 }
77
78 function clean_kubernetes_packages {
79     #Just to make sure kubernetes packages are removed during the download
80     curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
81     bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
82 deb https://apt.kubernetes.io/ kubernetes-xenial main
83 EOF'
84     apt-get update
85     apt-get remove kubelet kubeadm kubectl -y
86 }
87
88 function clean_all {
89     apt-get remove -y openvswitch-switch openvswitch-common ovn-central \
90         ovn-common ovn-host
91     rm -rf /var/run/openvswitch
92     rm -rf /var/lib/openvswitch
93     rm -rf /var/log/openvswitch
94     rm -rf /var/lib/libvirt
95     rm -rf /etc/libvirt
96     rm -rf /var/lib/virtlet
97     rm -rf /var/run/libvirt
98     rm -rf virtlet.sock
99     rm -rf virtlet-diag.sock
100     rm -rf criproxy.sock
101     systemctl stop dockershim
102     systemctl stop criproxy
103     systemctl disable kubelet
104     systemctl disable dockershim
105     systemctl disable criproxy
106     if ip link show | grep virbr0-nic > /dev/null; then ip link delete virbr0-nic; fi
107     if ip link show | grep virbr0 > /dev/null; then ip link delete virbr0; fi
108 }
109
110 function clean_apt_cache {
111     shopt -s extglob
112     pushd /var/cache/apt/archives
113
114     if [ $(ls -1q . | wc -l ) -ge 3 ]; then
115         $(rm !("lock"|"partial"))
116     fi
117     popd
118
119 }
120
121 function mv_apt_cache {
122     shopt -s extglob
123     pushd /var/cache/apt/archives
124
125     if [ $(ls -1q . | wc -l ) -gt 2 ]; then
126         $(mv !("lock"|"partial") $LOCAL_APT_REPO)
127     fi
128     popd
129 }
130
131 function check_dir {
132     if [ ! -d $1 ]; then
133         mkdir -p $1
134     fi
135 }
136
137 function clean_dir {
138     shopt -s extglob
139     pushd $1
140
141     if [ $(ls -1q . | wc -l ) -ne 0 ]; then
142         $(rm -r ./*)
143     fi
144     popd
145 }
146
147 if [ "$1" == "--only-packages" ]; then
148     check_prerequisite
149     clean_docker_packages || true
150     #clean_ironic_packages
151     autoremove
152     exit 0
153 fi
154
155 if [ "$1" == "--bm-cleanall" ]; then
156     clean_all || true
157     autoremove
158     exit 0
159 fi
160
161 check_prerequisite
162 clean_apt_cache
163 check_dir $LOCAL_APT_REPO
164 clean_dir $LOCAL_APT_REPO
165 check_dir $PIP_CACHE_DIR
166 clean_dir $PIP_CACHE_DIR
167 check_dir $BUILD_DIR
168 clean_dir $BUILD_DIR
169 check_dir $CONTAINER_IMAGES_DIR
170 clean_dir $CONTAINER_IMAGES_DIR
171 clean_kubernetes_packages
172 clean_podman_packages
173 clean_docker_packages
174 clean_ironic_packages
175 clean_essential_packages
176 rm -rf $LOCAL_APT_REPO
177 rm -rf $PIP_CACHE_DIR
178 rm -rf $BUILD_DIR
179 rm -rf $CONTAINER_IMAGES_DIR