89 lines
2.5 KiB
Bash
Executable File
89 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -efu
|
|
|
|
. ./.env
|
|
|
|
sleep_time=1
|
|
|
|
# Get ticket and csrf token
|
|
pve_response="$(curl -s -v -k -d "username=$PROXMOX_USER_FULL" --data-urlencode "password=$PROXMOX_PASSWORD" https://pve.office.basealt.ru:8006/api2/json/access/ticket)"
|
|
sleep "$sleep_time"
|
|
|
|
# Send stop signal to vm 510
|
|
r="$(curl -s -v -k -X POST \
|
|
-b "PVEAuthCookie=$(jq -r .data.ticket <<<"$pve_response")" \
|
|
-H "CSRFPreventionToken: $(jq -r .data.CSRFPreventionToken <<<"$pve_response")" \
|
|
https://pve.office.basealt.ru:8006/api2/json/nodes/pve01/qemu/510/status/stop)"
|
|
sleep "$sleep_time"
|
|
|
|
# Print response to stdout
|
|
jq <<<"$r"
|
|
# Save task id for future polling
|
|
upid0="$(jq -r .data <<<"$r")"
|
|
|
|
# Send stop signal to vm 511
|
|
r="$(curl -s -v -k -X POST \
|
|
-b "PVEAuthCookie=$(jq -r .data.ticket <<<"$pve_response")" \
|
|
-H "CSRFPreventionToken: $(jq -r .data.CSRFPreventionToken <<<"$pve_response")" \
|
|
https://pve.office.basealt.ru:8006/api2/json/nodes/pve01/qemu/511/status/stop)"
|
|
sleep "$sleep_time"
|
|
|
|
# Print response to stdout
|
|
jq <<<"$r"
|
|
# Save task id for future polling
|
|
upid1="$(jq -r .data <<<"$r")"
|
|
|
|
# Send stop signal to vm 512
|
|
r="$(curl -s -v -k -X POST \
|
|
-b "PVEAuthCookie=$(jq -r .data.ticket <<<"$pve_response")" \
|
|
-H "CSRFPreventionToken: $(jq -r .data.CSRFPreventionToken <<<"$pve_response")" \
|
|
https://pve.office.basealt.ru:8006/api2/json/nodes/pve01/qemu/512/status/stop)"
|
|
sleep "$sleep_time"
|
|
|
|
# Print response to stdout
|
|
jq <<<"$r"
|
|
# Save task id for future polling
|
|
upid2="$(jq -r .data <<<"$r")"
|
|
|
|
# Wait for vm 510 to stop
|
|
status=
|
|
while [ ! "$status" = 'stopped' ]; do
|
|
sleep "$sleep_time"
|
|
r="$(curl -s -v -k \
|
|
-b "PVEAuthCookie=$(jq -r .data.ticket <<<"$pve_response")" \
|
|
"https://pve.office.basealt.ru:8006/api2/json/nodes/pve01/tasks/$upid0/status")"
|
|
|
|
# Print response to stdout
|
|
jq <<<"$r"
|
|
|
|
status="$(jq -r .data.status <<<"$r")"
|
|
done
|
|
|
|
# Wait for vm 511 to stop
|
|
status=
|
|
while [ ! "$status" = 'stopped' ]; do
|
|
sleep "$sleep_time"
|
|
r="$(curl -s -v -k \
|
|
-b "PVEAuthCookie=$(jq -r .data.ticket <<<"$pve_response")" \
|
|
"https://pve.office.basealt.ru:8006/api2/json/nodes/pve01/tasks/$upid1/status")"
|
|
|
|
# Print response to stdout
|
|
jq <<<"$r"
|
|
|
|
status="$(jq -r .data.status <<<"$r")"
|
|
done
|
|
|
|
# Wait for vm 512 to stop
|
|
status=
|
|
while [ ! "$status" = 'stopped' ]; do
|
|
sleep "$sleep_time"
|
|
r="$(curl -s -v -k \
|
|
-b "PVEAuthCookie=$(jq -r .data.ticket <<<"$pve_response")" \
|
|
"https://pve.office.basealt.ru:8006/api2/json/nodes/pve01/tasks/$upid2/status")"
|
|
|
|
# Print response to stdout
|
|
jq <<<"$r"
|
|
|
|
status="$(jq -r .data.status <<<"$r")"
|
|
done
|