Files
infra-backup/wsl/scripts/iptsp_check.sh
2026-02-23 12:47:42 +06:00

94 lines
3.7 KiB
Bash

#!/bin/bash
# version 1.0
# set -euo pipefail
JQ=${JQ:-"jq"}
say() { printf "%s\n" "$*"; }
sep() { printf "\n-----------------------------\n"; }
say "Starting IPTSP Check Script..."
echo "---Total: $(openstack server list --project 89c4c3f1d4244ce7ba061d0cf86c1900 --all-projects -f value | wc -l)/Active: $(openstack server list --project 89c4c3f1d4244ce7ba061d0cf86c1900 --all-projects --status ACTIVE -f value | wc -l)"
sep;
say "Non-Active Instances:"
openstack server list --project 89c4c3f1d4244ce7ba061d0cf86c1900 --all-projects -f value -c Name -c Status | awk '$NF!="ACTIVE"' | while read -r instance_name instance_status; do
echo "Instance Name: $instance_name, Status: $instance_status"
done
sep;
say "Checking VMs"
hypervisors=()
declare -a index
while read -r instance_id; do
((index++))
sep;
echo "Instance ID: $instance_id"
NAME=`openstack server show $instance_id -f json | $JQ -r '.name'`
STATUS=`openstack server show $instance_id -f json | $JQ -r '.status'`
VMSTATE=`openstack server show $instance_id -f json | $JQ -r '."OS-EXT-STS:vm_state"'`
PWR=`openstack server show $instance_id -f json | $JQ -r '."OS-EXT-STS:power_state"'`
HYP=`openstack server show $instance_id -f json | $JQ -r '."OS-EXT-SRV-ATTR:hypervisor_hostname"'`
# FAULT=$(echo "$instance_id" | $JQ -r '.fault // empty')
echo "Name: $NAME"
echo "Status: $STATUS"
echo "VMState: $VMSTATE"
echo "Power State: $PWR"
echo "Hypervisor: $HYP"
# echo "Fault: $FAULT"
hypervisors+=("$HYP")
if [[ $index -eq 4 ]]; then
break
fi
done < <(openstack server list --project 89c4c3f1d4244ce7ba061d0cf86c1900 --all-projects -f value -c ID)
sep;
for host in "${hypervisors[@]}"; do
echo "Checking Hypervisor: $host"
load_avg=`openstack hypervisor show "$host" -f json | $JQ -r '.load_average'`
memory_mb=`openstack hypervisor show "$host" -f json | $JQ -r '.memory_mb'`
memory_gb=$((memory_mb / 1024))
memory_mb_used=`openstack hypervisor show "$host" -f json | $JQ -r '.memory_mb_used'`
memory_gb_used=$((memory_mb_used / 1024))
memory_free=$((memory_mb - memory_mb_used))
memory_free_gb=$((memory_free / 1024))
memory_utilized=$((memory_mb_used * 100 / memory_mb))
echo "Memory Provisioned: $memory_utilized %"
echo "Memory Total: $memory_gb GB"
echo "Memory Used: $memory_gb_used GB"
echo "Memory Free: $memory_free_gb GB"
echo "Load Average: $load_avg"
# memory_total=`$hypervisor_json | $JQ -r '.memory_mb'`
# memory_used=`$hypervisor_json | $JQ -r '.memory_mb_used'`
# memory_free=$((memory_total - memory_used))
# memory_utilized=$((memory_used * 100 / memory_total))
# echo "Memory Utilized: $memory_utilized %"
# echo "Memory Total: $memory_total MB"
# echo "Memory Used: $memory_used MB"
# echo "Memory Free: $memory_free MB"
done
openstack router list --project 89c4c3f1d4244ce7ba061d0cf86c1900 -f value -c ID -c Name | while read -r router_id router_name; do
sep;
echo "RouterName: $router_name and RouterID: $router_id"
echo "$(openstack network agent list --router $router_id)"
echo "Active: $(openstack network agent list --router $router_id -f value -c ID -c State | wc -l) / Down: $(openstack network agent list --router $router_id -f value -c ID -c State | grep -c False)"
echo "$(neutron l3-agent-list-hosting-router $router_id)"
# echo "Interface Info: $interface_info"
router_status=`openstack router show $router_id -f json | jq -r .status`
echo "Router Status: $router_status"
floatIp=`openstack router show $router_id -c external_gateway_info -f json | jq -r .external_gateway_info.external_fixed_ips[0].ip_address`
ping -c 3 $floatIp
break
done