X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/fc2053bb3293a279121aac97c1cf4c52302501c5..81b79ed73dd05f108f7330ae98435f1903bff447:/files/usr/sbin/sipb-xen-vmcontrol?ds=sidebyside diff --git a/files/usr/sbin/sipb-xen-vmcontrol b/files/usr/sbin/sipb-xen-vmcontrol index 5f1a063..3bbf63e 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 +# 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,24 +9,36 @@ # $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) + ARG="$3" + shift; shift; shift; MOREARGS="$*" + 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="$ARG" installer_options="$MOREARGS" +# elif [ "$ACTION" = "copy" ]; then +# sipb-xen-duplicate ...etc... + elif [ -n "$ARG" ]; then + xm create sipb-database machine_name="$ORIGMACHINE" cdrom_image="$ARG" + 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"