restructuring of remctl code and interface
[invirt/packages/invirt-remote.git] / files / usr / sbin / sipb-xen-vmcontrol
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 ORIGMACHINE="$1"
14 MACHINE="d_$ORIGMACHINE"
15
16 case "$ACTION" in
17     list|vcpu-list|destroy|create|uptime|shutdown)
18         xm "$ACTION" "$MACHINE"
19         ;;
20     reboot-with-cdrom)
21         xm shutdown "$MACHINE"
22         xm create sipb-database machine_name="$ORIGMACHINE" cdrom_image="$2"
23         ;;
24     reboot)
25         if [ -n "$2" ]; then
26             /usr/sbin/dispatch.reboot-with-cdrom.sh "$ORIGMACHINE" "$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