#!/bin/bash
## bemeneti fajl szintaxis:
# DISK_UUID DISK_NAME SHAREABLE
# 6005076802820058A000000000000000 diszk_név No [host1,host2,host3 - opcionális]
. ovm_functions.sh
kulcs_ellenorzes
TMP_FILE=/tmp/ovm_rename_phys_disks.tmp
LOGFILE="ovm_rename_phys_disks.log"
>$TMP_FILE
[[ -e $1 ]] || { echo "Add meg a konfig fajlt parameterkent."; exit 1; }
ovm_cli "list PhysicalDisk" | awk -F' ' '/:/{print $2}' | sed 's/id://' | while read SOR; do
#ovm_cli "list PhysicalDisk" | awk -F' ' '/ \([0-9]/{print $2}' | sed 's/id://' | while read SOR; do
echo "$SOR;$(ovm_exec "show PhysicalDisk id=$SOR" "User-Friendly Name" | tr '[:lower:]' '[:upper:]')" >>$TMP_FILE
done
date | tee -a $LOGFILE
while read LINE; do
DISK_UUID=$(echo $LINE | cut -d' ' -f 1 | tr '[:lower:]' '[:upper:]')
DISK_NAME=$(echo $LINE | cut -d' ' -f 2)
DISK_SHARED=$(echo $LINE | cut -d' ' -f 3)
VM_NAMES=$(echo $LINE | cut -d' ' -f 4 | sed 's/,/ /g')
DISK_ID=$(awk -F';' "/$DISK_UUID/"'{print $1}' $TMP_FILE)
echo -e "$(env printf '\u250F') A(z) $DISK_UUID UUID diszk atnevezese" | tee -a $LOGFILE
echo -e "$(env printf '\u2523')$(env printf '\u2501')> UUID: ${grn}${DISK_UUID}${end}, Nev: ${grn}${DISK_NAME}${end}, Shared: ${grn}${DISK_SHARED}${end}, VM(ek): ${grn}${VM_NAMES}${end}" | tee -a $LOGFILE
printf "$(env printf '\u2503') Ha ez nem stimmel, nyomj egy CTRL+C -t 10mp-en belül!${red}"
countdown
echo -e $end
echo "OVM> edit PhysicalDisk id=$DISK_ID name=$DISK_NAME shared=$DISK_SHARED" | tee -a $LOGFILE
RES=$(ovm_exec "edit PhysicalDisk id=$DISK_ID name=$DISK_NAME shareable=$DISK_SHARED" "Status")
[[ -z $RES ]] && { echo -e "$(env printf '\u2503') ${red}edit PhysicalDisk HIBA!${end}" | tee -a $LOGFILE; continue; } || echo "$(env printf '\u2503') ${grn}${RES}${end}" | tee -a $LOGFILE
echo "$(env printf '\u250F') A(z) ${yel}$VDISK_NAME${end} hozzarendelese a..." | tee -a $LOGFILE
for VM_NAME in $VM_NAMES; do
VM_ID=$(ovm_exec "show vm name=\"$VM_NAME\"" "Id")
SLOT=$(ovm_cli "show vm id=\"$VM_ID\"" | grep -oP "VmDiskMapping.*(?==)" | awk 'END{print $NF}')
echo -e "$(env printf '\u2523')$(env printf '\u2501')> ${grn}$VM_NAME${end} VM ${grn}$SLOT${end}. slotjahoz" | tee -a $LOGFILE
printf "$(env printf '\u2503') Ha ez nem stimmel, nyomj egy CTRL+C -t 10mp-en belül!${red}" | tee -a $LOGFILE
countdown
echo -e $end | tee -a $LOGFILE
VDISK_MAP1=$(ovm_exec "create VmDiskMapping slot=$SLOT physicalDisk=\"$DISK_NAME\" name=\"${DISK_NAME}_to_${VM_NAME}\" on Vm id=\"$VM_ID\"" "Status")
[[ -z $VDISK_MAP1 ]] && { echo -e "$(env printf '\u2503') ${red}create VmDiskMapping HIBA!${end}"; continue; } || echo "$(env printf '\u2503') Vdisk mapping: ${grn}$VDISK_MAP1 ${end}" | tee -a $LOGFILE
echo "$(env printf '\u2523') A $VM_NAME kesz." | tee -a $LOGFILE
done
echo -e "$(env printf '\u2517') A(z) $DISK_UUID UUID diszk kesz." | tee -a $LOGFILE
echo | tee -a $LOGFILE
done <<< "`cat $1 | grep -v '^#' | sed 's/[[:space:]]\+/ /g' | tr -s '[:blank:]'`"
sed -i -e 's/\x1b\[[0-9;]*m//g' -e 's/^M//g' $LOGFILE