Revision 7a0aa449 snf-cyclades-app/synnefo/api/management/commands/network-list.py

b/snf-cyclades-app/synnefo/api/management/commands/network-list.py
36 36
from django.core.management.base import BaseCommand, CommandError
37 37
from synnefo.management.common import format_bool, filter_results
38 38
from synnefo.db.models import Network
39
from synnefo.management.common import pprint_table
39 40

  
40 41
FIELDS = Network._meta.get_all_field_names()
41 42

  
......
89 90
        if filter_by:
90 91
            networks = filter_results(networks, filter_by)
91 92

  
92
        labels = ['id', 'name', 'type', 'owner',
93
        headers = ['id', 'name', 'type', 'owner',
93 94
                  'mac_prefix', 'dhcp', 'state', 'link', 'vms', 'public']
94
        columns = [3, 16, 22, 30, 10, 6, 8, 12, 4, 6]
95 95

  
96 96
        if options['ipv6']:
97
            labels.extend(['IPv6 Subnet', 'IPv6 Gateway'])
98
            columns.extend([16, 16])
97
            headers.extend(['IPv6 Subnet', 'IPv6 Gateway'])
99 98
        else:
100
            labels.extend(['IPv4 Subnet', 'IPv4 Gateway'])
101
            columns.extend([14, 14])
102

  
103
        if not options['csv']:
104
            line = ' '.join(l.rjust(w) for l, w in zip(labels, columns))
105
            self.stdout.write(line + '\n')
106
            sep = '-' * len(line)
107
            self.stdout.write(sep + '\n')
99
            headers.extend(['IPv4 Subnet', 'IPv4 Gateway'])
108 100

  
101
        table = []
109 102
        for network in networks.order_by("id"):
110 103
            fields = [str(network.id),
111 104
                      network.name,
......
122 115
                fields.extend([network.subnet6 or '', network.gateway6 or ''])
123 116
            else:
124 117
                fields.extend([network.subnet, network.gateway or ''])
118
            table.append(fields)
125 119

  
126
            if options['csv']:
127
                line = '|'.join(fields)
128
            else:
129
                line = ' '.join(f.rjust(w) for f, w in zip(fields, columns))
130

  
131
            self.stdout.write(line.encode('utf8') + '\n')
120
        separator = " | " if options['csv'] else None
121
        pprint_table(self.stdout, table, headers, separator)

Also available in: Unified diff