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