94 lines
3.7 KiB
Bash
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 |