#!/usr/bin/env python

from mixcoatl.infrastructure.server import Server
import argparse
import sys

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--productid', '-p', help="Provider's product ID such as m1.large")
    parser.add_argument('--machineimage', '-m', help='Machine image ID')
    parser.add_argument('--datacenter', '-d', help='Data Center ID')
    parser.add_argument('--description', '-D', help='Description')
    parser.add_argument('--name', '-n', help='Server Name')
    parser.add_argument('--budgetid', '-b', help='Budget ID')
    parser.add_argument('--keypair', '-k', help='Keypair Name')
    parser.add_argument('--vlan', '-v', help='VLAN')

    cmd_args = parser.parse_args()

    if (cmd_args.productid is None or cmd_args.machineimage is None or
        cmd_args.name is None or cmd_args.datacenter is None or 
        cmd_args.description is None):
        parser.print_help()
        sys.exit(1)

    new_server = Server()
    new_server.provider_product_id = cmd_args.productid
    new_server.machine_image = cmd_args.machineimage
    new_server.data_center = cmd_args.datacenter
    new_server.description = cmd_args.description
    new_server.name = cmd_args.name

    if cmd_args.vlan is not None:
        new_server.vlan = cmd_args.vlan
    if cmd_args.budgetid is not None:
        new_server.budget = cmd_args.budgetid
    new_server.keypair = cmd_args.keypair

    result = new_server.launch()

    print(result)
