--- /dev/null
+#!/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 >/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 >/dev/null 2>&1 &
+ ;;
+ list-long)
+ xm list --long "$MACHINE"
+ ;;
+ vnctoken)
+ invirt-vnc-authtoken "$ORIGMACHINE"
+ ;;
+ *)
+ echo "ERROR: Invalid Command"
+ exit 34
+ ;;
+esac