]> git.proxmox.com Git - pve-manager.git/blobdiff - spice-example-sh
fix #1299: sort pools in poolselector by default
[pve-manager.git] / spice-example-sh
index 45bfb131bc7e6c16fc1a4d4c893416984dff43a2..62192f3e9a76826056d67d8c6510427394fcebab 100755 (executable)
@@ -1,21 +1,76 @@
 #!/bin/bash
 
+set -e
+
 # needs pve-manager >= 3.1-44
 
-USERNAME=root@pam
-PASSWORD=yoursecretpassword
+usage() { 
+    echo "Usage: $0 [-u <string>] [-p <string>] vmid [node [proxy]]"
+    echo
+    echo "-u username. Default root@pam"
+    echo "-p password. Default ''"
+    echo
+    echo "vmid: id for VM"
+    echo "node: Proxmox cluster node name"
+    echo "proxy: DNS or IP (use <node> as default)"
+    exit 1
+}
+
+PASSWORD=""
+USERNAME=""
+
+while getopts ":u:p:" o; do
+    case "${o}" in
+        u)
+            USERNAME=${OPTARG}
+            ;;
+        p)
+            PASSWORD=${OPTARG}
+            ;;
+        *)
+            usage
+            ;;
+    esac
+done
+
+shift $((OPTIND-1))
+
+if [ -z $PASSWORD ]; then
+    PASSWORD=""
+fi
+if [ -z $USERNAME ]; then
+    USERNAME=root@pam
+fi
+
+DEFAULTHOST=$(hostname -f)
+
 # select VM
-VMID=100
+[ -z $1 ] && usage
+VMID=$1
+
+#[ -z $2 ] && usage
+NODE=${2:-$DEFAULTHOST}
+
+if [ -z $3 ]; then
+    PROXY=$NODE
+else
+    PROXY=$3
+fi
+
+NODE=${NODE%%\.*}
 
-NODE=anodename
-PROXY=anodename.domain.tld
+DATA=$(curl -f -s -S -k -d "username=$USERNAME&password=$PASSWORD"  https://$PROXY:8006/api2/json/access/ticket)
 
-DATA=`curl -k -d "username=$USERNAME&password=$PASSWORD"  https://$PROXY:8006/api2/json/access/ticket` 
+echo "AUTH OK"
 
-TICKET=`echo $DATA|sed 's/\\\\\//\//g' | sed 's/[{}]//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | sed 's/\"\:\"/\|/g' | sed 's/[\,]/ /g' | sed 's/\"// g'|grep -w ticket|  awk -F "|" '{print $2}'`
+TICKET=${DATA//\"/}
+TICKET=${TICKET##*ticket:}
+TICKET=${TICKET%%,*}
 
-CSRF=`echo $DATA|sed 's/\\\\\//\//g' | sed 's/[{}]//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | sed 's/\"\:\"/\|/g' | sed 's/[\,]/ /g' | sed 's/\"// g'|grep -w CSRFPreventionToken| awk -F "|" '{print $2}'`
+CSRF=${DATA//\"/}
+CSRF=${CSRF##*CSRFPreventionToken:}
+CSRF=${CSRF%%,*}
 
-curl -k -b "PVEAuthCookie=$TICKET" -H "CSRFPreventionToken: $CSRF" https://$PROXY:8006/api2/spiceconfig/nodes/$NODE/qemu/$VMID/spiceproxy -d "proxy=$PROXY" > spiceproxy
+curl -f -s -S -k -b "PVEAuthCookie=$TICKET" -H "CSRFPreventionToken: $CSRF" https://$PROXY:8006/api2/spiceconfig/nodes/$NODE/qemu/$VMID/spiceproxy -d "proxy=$PROXY" > spiceproxy
 
 remote-viewer spiceproxy