From bb6b99530b1b4abfb43bdb267cbd9e4f24cd9839 Mon Sep 17 00:00:00 2001 From: Stephan Geisler Date: Sun, 6 Feb 2022 20:31:47 +0000 Subject: [PATCH] =?UTF-8?q?=E2=80=9Evm=5Fcontrol.sh=E2=80=9C=20=C3=A4ndern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vm_control.sh | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/vm_control.sh b/vm_control.sh index f4df55e..21aa454 100644 --- a/vm_control.sh +++ b/vm_control.sh @@ -61,6 +61,8 @@ inotify_start() { done <<<"$web_state" for vm in "${vms[@]}"; do + vm_host_status=$(synowebapi --exec api=SYNO.Virtualization.API.Guest version=1 method=get runner=admin guest_name="$vm" 2>/dev/null | jq -r .data.status ) + if [ "${vm_states[$vm]}" = "${vm_states_saved[$vm]}" ]; then echo "keine Änderung für $vm (web_state online: ${vm_states[$vm]} / web_state saved: ${vm_states_saved[$vm]})" continue @@ -71,14 +73,20 @@ inotify_start() { # wenn Änderung gefunden wurde: case "${vm_states[$vm]}" in on) - echo "starte $vm ..." - synowebapi --exec api=SYNO.Virtualization.API.Guest.Action version=1 method=poweron runner=admin guest_name="$vm" >/dev/null 2>&1 - continue + if [ "$vm_host_status" = "shutdown" ]; then + echo "starte $vm ..." + synowebapi --exec api=SYNO.Virtualization.API.Guest.Action version=1 method=poweron runner=admin guest_name="$vm" 2>/dev/null + else + echo "VM $vm hat folgenden Status und kann nicht gestartet werden: $vm_host_status" + fi ;; off) - echo "beende $vm ..." - synowebapi --exec api=SYNO.Virtualization.API.Guest.Action version=1 method=shutdown runner=admin guest_name="$vm" >/dev/null 2>&1 - continue + if [ "$vm_host_status" = "running" ]; then + echo "beende $vm ..." + synowebapi --exec api=SYNO.Virtualization.API.Guest.Action version=1 method=shutdown runner=admin guest_name="$vm" 2>/dev/null + else + echo "VM $vm hat folgenden Status und kann nicht beendet werden: $vm_host_status" + fi ;; esac done