--- /dev/null
+#!/bin/bash
+#
+
+# Copyright (C) 2011 Google Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+SSH_USER='root'
+SSH_FLAGS='-q -oStrictHostKeyChecking=no'
+
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_UNKNOWN=2
+
+_run_ssh() {
+ local host="$1"
+ local command="$2"
+
+ ssh $SSH_FLAGS "$SSH_USER@$host" "$command" 1>&2
+ return $?
+}
+
+_power_on() {
+ echo 'power-on not supported in this script' >&2
+ exit $EXIT_FAILURE
+}
+
+_power_off() {
+ local host="$1"
+
+ if ! _run_ssh "$host" 'shutdown -h now'; then
+ echo "Failure during ssh to $host" >&2
+ exit $EXIT_FAILURE
+ fi
+}
+
+_power_cycle() {
+ local host="$1"
+
+ if ! _run_ssh "$host" 'shutdown -r now'; then
+ echo "Failure during ssh to $host" >&2
+ exit $EXIT_FAILURE
+ fi
+}
+
+_power_status() {
+ local host="$1"
+
+ if fping -q "$host" > /dev/null 2>&1; then
+ echo '{ "powered": true }'
+ else
+ echo '{ "powered": false }'
+ fi
+}
+
+_health() {
+ echo 'health not supported in this script' >&2
+ exit $EXIT_FAILURE
+}
+
+_action() {
+ local command="$1"
+ local host="$2"
+
+ case "$command" in
+ power-on)
+ _power_on "$host"
+ ;;
+ power-off)
+ _power_off "$host"
+ ;;
+ power-cycle)
+ _power_cycle "$host"
+ ;;
+ power-status)
+ _power_status "$host"
+ ;;
+ health)
+ _health "$host"
+ ;;
+ *)
+ echo "Unsupported command '$command'" >&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+}
+
+main() {
+ if [[ $# != 2 ]]; then
+ echo "Wrong argument count, got $#, expected 2" >&2
+ exit $EXIT_FAILURE
+ fi
+
+ _action "$@"
+
+ exit $EXIT_SUCCESS
+}
+
+main "$@"