Created
September 16, 2022 15:12
-
-
Save parth-gr/79c2dae5341e04f06b033110dae693bb to your computer and use it in GitHub Desktop.
try
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# config_file="/opt/cal/cipe/output/node.json" | |
wipefs_opts="--all --force" | |
function get_odf_disks() { | |
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null core@$1 " \ | |
for i in $(echo $2); do \ | |
LANG=C; \ | |
sudo fdisk -lu \"\$i\" | tr '\n' ' ' | grep 'Disk ' |grep -v 'Disklabel type:' | grep -o \"\$i\"; \ | |
done;" | |
} | |
function control_compute_disk_cleanup() { | |
# node_ips=[10.8.128.205 10.8.128.206 10.8.128.207] | |
# [ -z "$node_ips" ] && { | |
# echo "Unable to get the control/compute node IPs from CIPE file node.json, exiting.." | |
# exit 1 | |
# } | |
IFS=' | |
' | |
rc1=0 | |
for node in 10.8.128.205 10.8.128.206 10.8.128.207; do | |
rc2=0 | |
node_all_disk="$(ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null core@${node} sudo lsblk -o NAME -p | grep ^/dev | grep -v ^/dev/loop)" | |
node_odf_disk=$(get_odf_disks "$node" "$node_all_disk") | |
rc2+=$? | |
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null core@${node} " \ | |
for disk in $(echo ${node_odf_disk}); do \ | |
echo \"Processing \${disk} on node ${node}\"; | |
sudo sudo sgdisk --zap-all \${disk}; \ | |
sudo sudo dd if=/dev/zero of="\${disk}" bs=1M count=1000 oflag=direct,dsync; \ | |
sudo sudo blkdiscard \${disk}; \ | |
rc3+=$?; \ | |
done; \ | |
[ $rc2 -ne 0 ] && \ | |
echo \"[WARN] One or more wipefs command was failed for node ${node} ODF disk, continueing anyway.\" " | |
rc2=0 | |
rc2+=$? | |
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null core@${node} " \ | |
for disk in $(echo ${node_all_disk}); do \ | |
echo \"Processing \${disk} on node ${node}\"; | |
sudo sudo sgdisk --zap-all \${disk}; \ | |
sudo sudo dd if=/dev/zero of="\${disk}" bs=1M count=100 oflag=direct,dsync; \ | |
sudo sudo blkdiscard \${disk}; \ | |
rc3+=$?; \ | |
done; \ | |
[ $rc2 -ne 0 ] && \ | |
echo \"[WARN] One or more wipefs command was failed for node ${node}, continueing anyway.\" " | |
rc1+=${rc2} | |
done | |
[ $rc1 -ne 0 ] && \ | |
echo "[WARN] wipefs command execution had one or more error, check the previous execution log trace for more information." | |
} | |
function provnode_disk_cleanup() { | |
rc=0 | |
provnode_disk=$(sudo lsblk -o NAME -p | grep ^/dev | grep -v ^/dev/loop) | |
for disk in ${provnode_disk}; do | |
sudo wipefs ${wipefs_opts} ${disk} | |
rc+=$? | |
done | |
[ $rc -ne 0 ] && echo "[WARN] One or more wipefs command was failed on provnode, continueing anyway." | |
} | |
disk_cleanupfunc() { | |
case $1 in | |
--control_compute_disk_cleanup) control_compute_disk_cleanup ;; | |
--provnode_disk_cleanup) provnode_disk_cleanup ;; | |
*) | |
echo "$0 <--control_compute_disk_cleanup|--provnode_disk_cleanup>" | |
exit 1 | |
;; | |
esac | |
} | |
####MAIN#### | |
disk_cleanupfunc $@ | |
echo "Disk cleanup script execution done" | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment