7abf70d02d91f9d5a1f066c3495e4b5f736b40ee
[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
15 case "$ACTION" in
16     list|vcpu-list|destroy|create|uptime|shutdown)
17         xm "$ACTION" "$MACHINE"
18         exit 0
19         ;;
20     reboot-with-cdrom)
21         xm shutdown "$MACHINE"
22         xm create sipb-database machine_name="$MACHINE" cdrom_image="$2"
23         ;;
24     reboot)
25         if [ -n "$2" ]; then
26             /usr/sbin/dispatch.reboot-with-cdrom.sh "$1" "$2" &
27         else
28             xm reboot "$MACHINE"
29         fi
30         ;;
31     list-long)
32         xm list --long "$MACHINE"
33         ;;
34     *)
35         echo "ERROR: Invalid Command"
36         exit 1
37         ;;
38 esac