Merge invirt-remote-host and invirt-remote-server into invirt-remote
[invirt/packages/invirt-remote.git] / server / usr / sbin / invirt-remote-proxy
diff --git a/server/usr/sbin/invirt-remote-proxy b/server/usr/sbin/invirt-remote-proxy
new file mode 100755 (executable)
index 0000000..f05fa65
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/bash
+# invoke as invirt-remote-proxy-$TYPE, with "TYPE" in the remctl sense.
+
+klist -s || kinit -k
+
+TYPE="${0##*-}"
+case "$TYPE" in
+    control )
+       MACHINE="$1"; SERVICE="$2"; shift; shift ;;
+    * )
+       SERVICE="$1"; shift ;;
+esac
+
+case "$TYPE/$SERVICE" in
+    web/listvms )
+       invirt-remote-listvms "$@" ;;
+    web/vnccert )
+        invirt-remote-vnccert "$@" ;;
+    control/help )
+        invirt-remctl-help ;;
+    control/create|control/install )
+       invirt-remote-create "$SERVICE" "$MACHINE" "$@" ;;
+    control/listhost|control/list-host )
+       invirt-remote-listhost "$MACHINE" "$@" ;;
+    control/* )
+       # Everything but create must go where the VM is already running.
+       invirt-remote-control "$MACHINE" "$SERVICE" "$@" ;;
+    * )
+       remctl "$(invirt-getconf hosts.0.hostname)" remote "$TYPE" "$SERVICE" "$@" ;;
+esac