#!/usr/bin/env python

import getopt
import sys

from lctools.lc import get_lc
from lctools.printer import Printer


def usage(progname):
    sys.stdout.write("%s -i <node_id> [reboot|destroy]\n\n" % progname)

if __name__ == "__main__":
    profile = "default"
    node_id = None

    try:
        opts, args = getopt.getopt(sys.argv[1:], "p:i:")
    except getopt.GetoptError, err:
        sys.stderr.write("%s\n" % str(err))
        sys.exit(1)

    for o, a in opts:
        if o == "-p":
            profile = a
        if o == "-i":
            node_id = a

    if 0 == len(args):
        usage(sys.argv[0])
        sys.exit(1)

    action = args[0]

    if node_id is None:
        usage(sys.argv[0])
        sys.exit(1)

    conn = get_lc(profile)

    try:
        node = filter(lambda node: str(node.id) == node_id,
                conn.list_nodes())[0]
    except IndexError:
        sys.stderr.write("No node with id %s found." % node_id)
        sys.exit(1)

    getattr(node, action)()
