more remctl support for web interface
[invirt/packages/invirt-remote.git] / files / usr / sbin / dispatch.sh
1 #!/bin/sh
2 # dispatch-ACTION.sh MACHINE
3 #
4 # remctl should have already verified that the user is authorized to
5 # control the machine.  So, we just need to execute the action requested.
6 #
7 # $0 and $1 come from the trusted remctl source.
8 #
9 # $2 and so on are user-provided, and thus sketchy.  I don't think we
10 # need them for this script.
11
12 ACTION=$(echo "$0" | awk -F'.' '{print $2}')
13 MACHINE="$1"
14 #echo "$0" "$ACTION"
15
16 case "$ACTION" in
17     list|vcpu-list|destroy|create|uptime)
18         xm "$ACTION" "$MACHINE"
19         exit 0
20         ;;
21     reboot-with-cdrom)
22         xm shutdown "$MACHINE"
23         xm create sipb-database machine_name="$MACHINE" cdrom_image="$2"
24         ;;
25     reboot)
26         if [ -n "$2" ]; then
27             /usr/sbin/dispatch.reboot-with-cdrom.sh "$1" "$2" &
28         else
29             xm reboot "$MACHINE"
30         fi
31         ;;
32     list-long)
33         xm list --long "$MACHINE"
34         ;;
35     *)
36         echo "ERROR: Invalid Command"
37         exit 1
38         ;;
39 esac