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