function knife_ssh() {
  grep -q $1 ~/.knife_comp~ 2> /dev/null || rm -f ~/.knife_comp~;
  ssh $(knife node show $1 | awk '/IP:/{print $2}')
}

_knife_ssh() {
  if hash knife 2>/dev/null; then
    if [[ ! -f ~/.knife_comp~ ]]; then
      echo "\nGenerating ~/.knife_comp~..." >/dev/stderr
      knife node list > ~/.knife_comp~
    fi
    compadd $(<~/.knife_comp~)
  else
    echo "Could not find knife" > /dev/stderr;
  fi
}

compdef _knife_ssh knife_ssh