js#vista.png msort nsort
js#vista.png msort nsort
A search utility to find:
1: which Host node contains a given OpenVZ or LXC container or Qemu VM. 2: what container or VM ID a given hostname has.
#!/bin/sh
#
# Find Host node name for CT or VM ID (node)
# Find CT or VM ID for container hostname (id)
#set -x
PVESH=`which pvesh`
usage(){
echo " USAGE: $0 CMD [OPTION]"
echo
echo " node - Find Host node name for CT or VM ID"
echo " id - Find CT or VM ID for container hostname"
echo
}
if [ "$#" -lt 2 ] && [ "$1" != "help" ]; then
echo " ERROR!: Missing options!"
usage
exit 1
fi
get_node (){
HWNODES=$($PVESH ls nodes | cut -d " " -f 2)
for hwnode in $HWNODES
do
LXCIDS=$($PVESH ls nodes/$hwnode/lxc 2>&1 | grep -v "no such resource" | cut -d " " -f 2)
for lxcid in $LXCIDS
do
#echo "checking $ctid against $1"
if [ "$lxcid" -eq "$1" ]; then
echo $hwnode
exit 0
fi
done
VMIDS=$($PVESH ls nodes/$hwnode/qemu | grep -v "no such resource" | cut -d " " -f 2)
for vmid in $VMIDS
do
#echo "checking $ctid against $1"
if [ "$vmid" -eq "$1" ]; then
echo $hwnode
exit 0
fi
done
VZIDS=$($PVESH ls nodes/$hwnode/openvz | grep -v "no such resource" | cut -d " " -f 2)
for vzid in $VZIDS
do
#echo "checking $ctid against $1"
if [ "$vzid" -eq "$1" ]; then
echo $hwnode
exit 0
fi
done
done
echo "no such resource"
exit 0
}
get_id (){
HWNODES=$($PVESH ls nodes | cut -d " " -f 2)
for hwnode in $HWNODES
do
LXCIDS=$($PVESH ls nodes/$hwnode/lxc 2>&1 | grep -v "no such resource" | cut -d " " -f 2)
for lxcid in $LXCIDS
do
hostname=$($PVESH get nodes/$hwnode/lxc/$lxcid/config 2>&1 | grep hostname | cut -d '"' -f 4)
if [ "$hostname" = "$1" ]
then
echo $lxcid
exit 0
fi
done
VMIDS=$($PVESH ls nodes/$hwnode/qemu 2>&1 | grep -v "no such resource" | cut -d " " -f 2)
for vmid in $VMIDS
do
hostname=$($PVESH get nodes/$hwnode/qemu/$vmid/config 2>&1 | grep name | cut -d '"' -f 4)
if [ "$hostname" = "$1" ]
then
echo $vmid
exit 0
fi
done
VZIDS=$($PVESH ls nodes/$hwnode/openvz 2>&1 | grep -v "no such resource" | cut -d " " -f 2)
for vzid in $VZIDS
do
hostname=$($PVESH get nodes/$hwnode/openvz/$vzid/config 2>&1 | grep hostname | cut -d '"' -f 4)
if [ "$hostname" = "$1" ]
then
echo $vzid
exit 0
fi
done
done
echo "no such resource"
exit 0
}
case $1 in
id)
get_id $2
;;
node)
get_node $2
;;
help)
usage
exit 0
;;
*)
usage
exit 1
;;
esac