f5c52487647c7146191b437afde8ae1946b918ad
[invirt/packages/invirt-remote.git] / server / usr / sbin / invirt-remote-proxy
1 #!/bin/bash
2 # invoke as invirt-remote-proxy-$TYPE, with "TYPE" in the remctl sense.
3
4 klist -s || kinit -k
5
6 TYPE="${0##*-}"
7 case "$TYPE" in
8     control )
9         MACHINE="$1"; SERVICE="$2"; shift; shift ;;
10     * )
11         SERVICE="$1"; shift ;;
12 esac
13
14 case "$TYPE/$SERVICE" in
15     web/listvms )
16         invirt-remote-listvms "$@" ;;
17     web/vnccert )
18         invirt-remote-vnccert "$@" ;;
19     web/availability | web/avail )
20         invirt-remote-availability "$@" ;;
21     web/lvcreate | web/lvremove | web/lvrename | web/lvresize )
22         invirt-remote-lvm "$SERVICE" "$@"
23         ;;
24     control/help )
25         invirt-remctl-help ;;
26     control/create|control/install )
27         if [ -f "/etc/invirt/nocreate" ]; then
28             echo "Booting VMs is temporarily disabled for maintenance, sorry." >&2
29             exit 2
30         fi
31         invirt-remote-create "$SERVICE" "$MACHINE" "$@" ;;
32     control/listhost|control/list-host )
33         invirt-remote-listhost "$MACHINE" "$@" ;;
34     control/* )
35         # Everything but create must go where the VM is already running.
36         invirt-remote-control "$MACHINE" "$SERVICE" "$@" ;;
37     * )
38         echo "ERROR: invalid subcommand $TYPE/$SERVICE"
39         exit 34
40         ;;
41 esac