X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/c2ef438b4260463f5294e5236d9b66bb9f4f5592..ccdd1009d00397d0f81fa9a95aa96faf448b9e94:/host/usr/sbin/invirt-vmcontrol diff --git a/host/usr/sbin/invirt-vmcontrol b/host/usr/sbin/invirt-vmcontrol new file mode 100755 index 0000000..70bff12 --- /dev/null +++ b/host/usr/sbin/invirt-vmcontrol @@ -0,0 +1,45 @@ +#!/bin/bash +# invirt-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. +# +# $0 and $1 come from the trusted remctl source. +# +# $2 and so on are user-provided, and thus sketchy. + +ORIGMACHINE="$1" +ACTION="$2" +MACHINE="d_$ORIGMACHINE" + +case "$ACTION" in + list|vcpu-list|uptime) + xm "$ACTION" "$MACHINE" + ;; + destroy|shutdown|reboot) + xm "$ACTION" "$MACHINE" + /usr/sbin/invirt-update-conserver /dev/null 2>&1 & + ;; + install|create) + shift; shift; + xm list "$MACHINE" >/dev/null 2>/dev/null && echo "$MACHINE already exists" && exit 1 + if [ "$ACTION" = "install" ]; then + xm create invirt-database machine_name="$ORIGMACHINE" installer_options="$(printf '%q ' "$@")" + elif [ -n "$1" ]; then + xm create invirt-database machine_name="$ORIGMACHINE" cdrom_image="$1" + else + xm create invirt-database machine_name="$ORIGMACHINE" + fi + (sleep 4; /usr/sbin/invirt-update-conserver) /dev/null 2>&1 & + ;; + list-long) + xm list --long "$MACHINE" + ;; + vnctoken) + invirt-vnc-authtoken "$ORIGMACHINE" + ;; + *) + echo "ERROR: Invalid Command" + exit 34 + ;; +esac