]> git.proxmox.com Git - pve-manager.git/blame - spice-example-sh
update shipped appliance info index
[pve-manager.git] / spice-example-sh
CommitLineData
072188dc
DM
1#!/bin/bash
2
6d413477
DM
3set -e
4
072188dc
DM
5# needs pve-manager >= 3.1-44
6
f72df730
DM
7usage() {
8 echo "Usage: $0 [-u <string>] [-p <string>] vmid [node [proxy]]"
9 echo
10 echo "-u username. Default root@pam"
11 echo "-p password. Default ''"
12 echo
13 echo "vmid: id for VM"
14 echo "node: Proxmox cluster node name"
15 echo "proxy: DNS or IP (use <node> as default)"
16 exit 1
17}
18
19PASSWORD=""
20USERNAME=""
21
22while getopts ":u:p:" o; do
23 case "${o}" in
24 u)
be4c6ad6 25 USERNAME="${OPTARG}"
f72df730
DM
26 ;;
27 p)
be4c6ad6 28 PASSWORD="${OPTARG}"
f72df730
DM
29 ;;
30 *)
31 usage
32 ;;
33 esac
34done
35
36shift $((OPTIND-1))
37
be4c6ad6 38if [[ -z "$PASSWORD" ]]; then
f72df730
DM
39 PASSWORD=""
40fi
be4c6ad6
WB
41if [[ -z "$USERNAME" ]]; then
42 USERNAME='root@pam'
f72df730
DM
43fi
44
be4c6ad6 45DEFAULTHOST="$(hostname -f)"
f72df730 46
072188dc 47# select VM
be4c6ad6
WB
48[[ -z "$1" ]] && usage
49VMID="$1"
f72df730 50
be4c6ad6
WB
51#[[ -z "$2" ]] && usage
52NODE="${2:-$DEFAULTHOST}"
f72df730 53
be4c6ad6
WB
54if [[ -z "$3" ]]; then
55 PROXY="$NODE"
f72df730 56else
be4c6ad6 57 PROXY="$3"
f72df730 58fi
072188dc 59
be4c6ad6 60NODE="${NODE%%\.*}"
072188dc 61
765bba6c 62DATA="$(curl -f -s -S -k --data-urlencode "username=$USERNAME" --data-urlencode "password=$PASSWORD" "https://$PROXY:8006/api2/json/access/ticket")"
6d413477
DM
63
64echo "AUTH OK"
072188dc 65
be4c6ad6
WB
66TICKET="${DATA//\"/}"
67TICKET="${TICKET##*ticket:}"
68TICKET="${TICKET%%,*}"
52a450d6 69TICKET="${TICKET%%\}*}"
072188dc 70
be4c6ad6
WB
71CSRF="${DATA//\"/}"
72CSRF="${CSRF##*CSRFPreventionToken:}"
73CSRF="${CSRF%%,*}"
52a450d6 74CSRF="${CSRF%%\}*}"
072188dc 75
be4c6ad6 76curl -f -s -S -k -b "PVEAuthCookie=$TICKET" -H "CSRFPreventionToken: $CSRF" "https://$PROXY:8006/api2/spiceconfig/nodes/$NODE/qemu/$VMID/spiceproxy" -d "proxy=$PROXY" > spiceproxy
072188dc 77
be4c6ad6 78exec remote-viewer spiceproxy