65209400f6f7eb91faf151c3a3dc71f090b51948
[invirt/packages/invirt-remote.git] / files / usr / sbin / sipb-xen-vmcontrol
1 #!/bin/bash
2 # sipb-xen-vmcontrol MACHINE ACTION
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 ORIGMACHINE="$1"
13 ACTION="$2"
14 MACHINE="d_$ORIGMACHINE"
15
16 case "$ACTION" in
17     list|vcpu-list|uptime)
18         xm "$ACTION" "$MACHINE"
19         ;;
20     destroy|shutdown)
21         xm "$ACTION" "$MACHINE"
22         /usr/sbin/sipb-xen-update-conserver </dev/null >/dev/null 2>&1 &
23         ;;
24     install|create|reboot)
25         shift; shift;
26         if [ "$ACTION" = "reboot" ]; then
27             xm destroy "$MACHINE" 2>/dev/null
28         else
29             xm list "$MACHINE" >/dev/null 2>/dev/null && echo "$MACHINE already exists" && exit 1
30         fi
31         if [ "$ACTION" = "install" ]; then
32             xm create sipb-database machine_name="$ORIGMACHINE" installer_options="$(printf '%q ' "$@")"
33 #       elif [ "$ACTION" = "copy" ]; then
34 #           sipb-xen-duplicate ...etc...
35         elif [ -n "$ARG" ]; then
36             xm create sipb-database machine_name="$ORIGMACHINE" cdrom_image="$ARG"
37         else
38             xm create sipb-database machine_name="$ORIGMACHINE"
39         fi
40         (sleep 4; /usr/sbin/sipb-xen-update-conserver) </dev/null >/dev/null 2>&1 &
41         ;;
42     list-long)
43         xm list --long "$MACHINE"
44         ;;
45     *)
46         echo "ERROR: Invalid Command"
47         exit 1
48         ;;
49 esac