#!/usr/bin/env python

from mixcoatl.automation.deployment import Deployment
from prettytable import PrettyTable
import argparse
import sys

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('deploymentid', help='Deployment ID')
    parser.add_argument("--verbose", "-v", help="Produce verbose output", action="store_true")
    cmd_args = parser.parse_args()

    d = Deployment(cmd_args.deploymentid)
    result = d.load()

    if result is not None:
        print("Cannot find the deployment by the ID.")
        sys.exit(1)

    if cmd_args.verbose:
        d.pprint()
    else:
        deployment_table = PrettyTable(["Field", "Attribute"])
        deployment_table.add_row(["Deployment ID", d.deployment_id])
        deployment_table.add_row(["Name", d.name])
        deployment_table.add_row(["Type", d.e_type])
        if hasattr(d, 'regions'):
            for region in d.regions:
                deployment_table.add_row(["Region", region['provider_id'] + " (" + region['description'] + ")"])
        deployment_table.add_row(["Budget ID", d.budget])
        deployment_table.add_row(["Owning User Name",
                                  d.owning_user['alpha_name'] if hasattr(d,'owning_user') else None])
        deployment_table.add_row(["Owning User Email",
                                  d.owning_user['email'] if hasattr(d,'owning_user') else None])
        if hasattr(d, 'owning_groups'):
            for owning_group in d.owning_groups:
                deployment_table.add_row(["Owning Group Name", owning_group['name']])
        else:
            deployment_table.add_row(["Owning Group Name", None])
        deployment_table.add_row(["Creation Timestamp", d.creation_timestamp])
        deployment_table.add_row(["Description", d.description])
        deployment_table.add_row(["Status", d.status])
        deployment_table.align['Field'] = 'l'
        deployment_table.align['Attribute'] = 'l'
        print(deployment_table)
