#!/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