#!/bin/bash # # Note: libvirt hook scripts execute with uid=0(root) gid=0(root) for all # operations, i.e., started, stopped. # function log { echo "$(date +"%Y/%m/%d %T"):libvirt_hooks:ws; $@" >>/var/log/anvil.log; } log "wsargs=$@" domain_xml=$(prepare->start->started operation on the destination host. # 2. Trigger stopped->release operations on the source host. if [[ ! $operation =~ ^(started|stopped)$ ]] then exit fi guest_uuid=$( sed -En "s/^.*([^[:space:]]+)<.*$/\1/p" <<<"$domain_xml" ) ws_server_uuid_flag="--server-uuid $guest_uuid" ws_open_flag="" ws_port_flag="" if [[ $operation == "started" ]] then ws_open_flag="--open" # Cannot call $ virsh vncdisplay... because libvirt hooks # cannot call anything related to libvirt, i.e., virsh, because # a deadlock will happen. server_vnc_port=$( sed -En "s/^.*