#!/usr/bin/env python

from mixcoatl.network.firewall import Firewall
from prettytable import PrettyTable
import argparse
import sys

if __name__ == '__main__':
    """ List firewalls."""
    parser = argparse.ArgumentParser()
    firewall_args = parser.add_mutually_exclusive_group()
    firewall_args.add_argument('--accountid', '-i', type=int, help='Account ID')
    firewall_args.add_argument('--regionid', '-r', type=int, help='Region ID')
    firewall_args.add_argument('--all', '-a', action='store_true')
    cmd_args = parser.parse_args()

    if cmd_args.regionid is not None:
        firewalls = Firewall.all(region_id=cmd_args.regionid, detail='basic')
    elif cmd_args.accountid is not None:
        firewalls = Firewall.all(account_id=cmd_args.accountid, detail='basic')
    elif cmd_args.all:
        firewalls = Firewall.all(detail='basic')
    else:
        parser.print_help()
        sys.exit(1)

    firewall_table = PrettyTable(["Firewall ID", "Name", "Provider ID"])
    for firewall in firewalls:
        firewall_table.add_row([firewall.firewall_id, firewall.name, firewall.provider_id])
    print(firewall_table)
