#!/usr/bin/env python

import os
import sys
import time
import argparse
from mixcoatl import resource_utils, utils
from mixcoatl.platform.relational_database import RelationalDatabase
from prettytable import PrettyTable

if __name__ == '__main__':
    """ Returns a list of RDBMS. """
    start = time.time()
    parser = argparse.ArgumentParser()
    group_two = parser.add_mutually_exclusive_group()
    group_two.add_argument('--json', action='store_true',
        help='print API response in JSON format.')
    group_two.add_argument('--xml', action='store_true',
        help='print API response in XML format.')
    group_two.add_argument('--csv', action='store_true',
        help='print API response in CSV format.')
    cmd_args = parser.parse_args()
    results = RelationalDatabase.all()

    if cmd_args.xml is True or cmd_args.json is True or cmd_args.csv is True:
        if cmd_args.xml is True:
            payload_format = "xml"
        elif cmd_args.csv is True:
            payload_format = "csv"
        else:
            payload_format = "json"

        print utils.print_format(results, payload_format)
    else:




        table = PrettyTable(["RDBMS Product ID", "Name", "Provider Product ID", "Engine", "Budget Code", "Size"])
        for r in results:
            productid = "None"
            if hasattr(r,'rdbms_product'):
                if 'product_id' in r.rdbms_product:
                    productid = r.rdbms_product['product_id']
            table.add_row([
                r.relational_database_id,
                r.name,
                productid,
                r.engine,
                r.budget,
                r.allocated_storage_in_gb])
            table.align = 'l'
        print(table)

    if 'DCM_DEBUG' in os.environ:
        print 'Results returned in', time.time()-start, 'seconds.'
