]> git.proxmox.com Git - pve-manager.git/blobdiff - spice-example-sh
ui: guest import: add checkbox for virtio drive
[pve-manager.git] / spice-example-sh
index 60602a262e8b56468dea84e8c36cfd1731c90585..6fe5c1f59ba4239ff6d97d2a7ebcf69fffe93c7e 100755 (executable)
@@ -1,25 +1,78 @@
 #!/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 --data-urlencode "username=$USERNAME" --data-urlencode "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=${DATA//\"/}
-TICKET=${TICKET##*ticket:}
-TICKET=${TICKET%%,*}
+TICKET="${DATA//\"/}"
+TICKET="${TICKET##*ticket:}"
+TICKET="${TICKET%%,*}"
+TICKET="${TICKET%%\}*}"
 
-CSRF=${DATA//\"/}
-CSRF=${CSRF##*CSRFPreventionToken:}
-CSRF=${CSRF%%,*}
+CSRF="${DATA//\"/}"
+CSRF="${CSRF##*CSRFPreventionToken:}"
+CSRF="${CSRF%%,*}"
+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
+exec remote-viewer spiceproxy