Script to show host's and lab's disk usage

Script that assists with supervising host's resources, in this case disk
usage. Lists usage per node and overall usage.

Test plan:
PASS: no tox errors
PASS: information displayed is valid
PASS: does not affect nodes

Story: 2010816
Task: 48637

Change-Id: If874ffc3f02faa26521d305b1b6f5fe62096f06c
Signed-off-by: Bailey Henry <Henry.Bailey@windriver.com>
This commit is contained in:
Bailey Henry 2023-08-16 10:04:43 -04:00 committed by Michel Thebeau
parent 2066a90fa5
commit 364c46f73e
1 changed files with 73 additions and 0 deletions

73
libvirt/show_diskusage.sh Executable file
View File

@ -0,0 +1,73 @@
#!/bin/bash
#
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2023 Wind River Systems, Inc.
#
# Show the host's and lab's disk usage per configured disk
# The disk usage for each lab's configured disks
# (i.e., for each VM),
# and for each of the host's disks overall upon which the
# lab's virtual disks are presented.
if [ -z "$CONFIG_FILE" ]; then
echo 'No configuration file selected'
exit 1
fi
if ! [ -f "$CONFIG_FILE" ]; then
echo 'Configuration file does not exist'
exit 1
fi
DISK_DIRS=""
CONTROLLER0_DIR="$( ./config.py "$CONFIG_FILE" controllerlist 0 disk )"
CONTROLLER1_DIR="$( ./config.py "$CONFIG_FILE" controllerlist 1 disk )"
echo
if [ -n "$CONTROLLER0_DIR" ] && [ -d $CONTROLLER0_DIR ]; then
sudo du -sh $CONTROLLER0_DIR
DISK_DIRS="$DISK_DIRS $CONTROLLER0_DIR"
fi
if [ -n "$CONTROLLER1_DIR" ] && [ -d $CONTROLLER1_DIR ]; then
sudo du -sh $CONTROLLER1_DIR
DISK_DIRS="$DISK_DIRS $CONTROLLER1_DIR"
fi
if [ -n "$STORAGE_NODES_NUMBER" ]; then
index=0
while [ "$index" -le "$STORAGE_NODES_NUMBER" ]; do
host_dir="$( ./config.py "$CONFIG_FILE" storagelist "$index" disk )"
if [ -n "$host_dir" ] && [ -d $host_dir ]; then
sudo du -sh $host_dir
DISK_DIRS="$DISK_DIRS $host_dir"
fi
index+=1
done
fi
if [ -n "$WORKER_NODES_NUMBER" ]; then
index=0
while [ "$index" -le "$WORKER_NODES_NUMBER" ]; do
host_dir="$( ./config.py "$CONFIG_FILE" workerlist "$index" disk )"
if [ -n "$host_dir" ] && [ -d $host_dir ]; then
sudo du -sh $host_dir
DISK_DIRS="$DISK_DIRS $host_dir"
fi
index+=1
done
fi
echo
# Print a header
df -h $DISK_DIRS | grep "^Filesystem" | sed "s;Mounted on;Disk Path;"
(
for l in $DISK_DIRS; do
# Works assuming there is no space for directory name
sudo df -h $l | grep -v "^Filesystem" | sed "s;[^ ]\{1,\}$;$l;"
done
) | sort | uniq
echo