X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/fc2053bb3293a279121aac97c1cf4c52302501c5..ab8fe311418a7887658ddd752a6dc69a8164bdb5:/files/usr/sbin/sipb-xen-vmcontrol diff --git a/files/usr/sbin/sipb-xen-vmcontrol b/files/usr/sbin/sipb-xen-vmcontrol index 5f1a063..0c20109 100755 --- a/files/usr/sbin/sipb-xen-vmcontrol +++ b/files/usr/sbin/sipb-xen-vmcontrol @@ -1,5 +1,5 @@ -#!/bin/sh -# dispatch-ACTION.sh MACHINE +#!/bin/bash +# sipb-xen-vmcontrol MACHINE ACTION # # remctl should have already verified that the user is authorized to # control the machine. So, we just need to execute the action requested. @@ -9,30 +9,39 @@ # $2 and so on are user-provided, and thus sketchy. I don't think we # need them for this script. -ACTION=$(echo "$0" | awk -F'.' '{print $2}') ORIGMACHINE="$1" +ACTION="$2" MACHINE="d_$ORIGMACHINE" case "$ACTION" in - list|vcpu-list|destroy|create|uptime|shutdown) + list|vcpu-list|uptime) xm "$ACTION" "$MACHINE" ;; - reboot-with-cdrom) - xm shutdown "$MACHINE" - xm create sipb-database machine_name="$ORIGMACHINE" cdrom_image="$2" + destroy|shutdown) + xm "$ACTION" "$MACHINE" + /usr/sbin/sipb-xen-update-conserver /dev/null 2>&1 & ;; - reboot) - if [ -n "$2" ]; then - /usr/sbin/dispatch.reboot-with-cdrom.sh "$ORIGMACHINE" "$2" & + install|create|reboot) + shift; shift; + if [ "$ACTION" = "reboot" ]; then + xm destroy "$MACHINE" 2>/dev/null else - xm reboot "$MACHINE" + xm list "$MACHINE" >/dev/null 2>/dev/null && echo "$MACHINE already exists" && exit 1 fi + if [ "$ACTION" = "install" ]; then + xm create sipb-database machine_name="$ORIGMACHINE" installer_options="$(printf '%q ' "$@")" + elif [ -n "$1" ]; then + xm create sipb-database machine_name="$ORIGMACHINE" cdrom_image="$1" + else + xm create sipb-database machine_name="$ORIGMACHINE" + fi + (sleep 4; /usr/sbin/sipb-xen-update-conserver) /dev/null 2>&1 & ;; list-long) xm list --long "$MACHINE" ;; *) echo "ERROR: Invalid Command" - exit 1 + exit 34 ;; esac