-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathreset-containerd.sh
More file actions
135 lines (109 loc) · 3.08 KB
/
reset-containerd.sh
File metadata and controls
135 lines (109 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/bin/bash
#
# Script to reset containerd
#
EXIT_SUCCESS=0
EXIT_FAILURE=1
# Display message
#
# Arguments:
# an integer as exit code
# a string as message
display_message()
{
local EXIT_STATUS=$1
local MESSAGE="$2"
local MAX_SIZE=90
local padding=""
local result=""
size=${#MESSAGE}
paddingSize=`expr ${MAX_SIZE} - ${size}`
if [ ${size} -lt ${MAX_SIZE} ]; then
for i in $(seq 0 ${paddingSize})
do
padding+=" "
done
fi
if [ ${EXIT_STATUS} -eq ${EXIT_SUCCESS} ]; then
result="[ OK ]"
else
result="[ FAILED ]"
fi
echo "${MESSAGE} ${padding} ${result}"
# Reset padding and result
padding=""
result=""
}
# Unmounts the mounted file
#
# Arguments:
# a string containing mount point
#
umount_file()
{
if [ "`cat /etc/mtab | grep -o ${MOUNT_POINT}`" == "${MOUNT_POINT}" ]; then
sudo umount "${MOUNT_POINT}"
display_message $? "Unmounting mount point ${MOUNT_POINT}"
sudo rm -rf "${MOUNT_POINT}"
display_message $? "Deleting mount point ${MOUNT_POINT}"
else
echo "Image not mounted at ${MOUNT_POINT} "
fi
}
# Removes specimens directory
remove_specimens_directory()
{
if [ -d "${SPECIMENS_DIR}" ]; then
sudo rm -rf "${SPECIMENS_DIR}"
display_message $? "Removing specimens directory ${SPECIMENS_DIR}"
else
echo "Specimens directory ${SPECIMENS_DIR} does not exist"
fi
}
# Reset containerd setup on Debian/Ubuntu
debian_reset_containerd_setup()
{
sudo apt -y remove ${PACKAGE_NAME} > /dev/null 2>&1
display_message $? "Removing ${PACKAGE_NAME}"
sudo apt -y purge ${PACKAGE_NAME} > /dev/null 2>&1
display_message $? "Purging ${PACKAGE_NAME}"
sudo rm -rf ${CONTAINERD_ROOT} > /dev/null 2>&1
display_message $? "Deleting ${CONTAINERD_ROOT} directory"
sudo apt -y install ${PACKAGE_NAME} > /dev/null 2>&1
display_message $? "Installing ${PACKAGE_NAME}"
}
# Reset containerd setup on CentOS 7
centos_reset_containerd_setup()
{
sudo yum -y remove ${PACKAGE_NAME} > /dev/null 2>&1
display_message $? "Uninstalling ${PACKAGE_NAME}"
sudo yum -y install ${PACKAGE_NAME} > /dev/null 2>&1
display_message $? "Installing ${PACKAGE_NAME}"
sed -i 's/#//g' ${CONTAINERD_CONFIG}
display_message $? "Updating ${PACKAGE_NAME} config ${CONTAINERD_CONFIG}"
sudo systemctl restart ${PACKAGE_NAME}.service
display_message $? "Restarting ${PACKAGE_NAME} service"
}
# main
set -e
MOUNT_POINT="/mnt/container"
CONTAINERD_ROOT="/var/lib/containerd"
SPECIMENS_DIR="specimens"
PACKAGE_NAME="containerd"
CONTAINERD_CONFIG="/etc/containerd/config.toml"
umount_file
remove_specimens_directory
# Debian/Ubuntu
if [ -f /etc/lsb-release ]; then
osname=`cat /etc/lsb-release | egrep -i 'debian|ubuntu'`
if [ "${osname}" != "" ]; then
debian_reset_containerd_setup
fi
elif [ -f /etc/centos-release ]; then
osname=`cat /etc/centos-release | grep -i 'centos'`
if [ "${osname}" != "" ]; then
centos_reset_containerd_setup
fi
else
echo "Unsupported OS"
fi