Revision d44c236b tools/cloud

b/tools/cloud
22 22
    return decorator
23 23

  
24 24

  
25
def address_to_string(address):
26
    key = address['id']
27
    val = ', '.join(ip['addr'] for ip in address['values'])
28
    return '%s[%s]' % (key, val) if val else key
25
def print_addresses(networks):
26
    for i, net in enumerate(networks):
27
        key = 'addresses:'.rjust(13) if i == 0 else ' ' * 13
28
        addr = ''
29
        if 'values' in net:
30
            addr = '[%s]' % ' '.join(ip['addr'] for ip in net['values'])
31
        
32
        val = '%d/%s %s %s' % (net['id'], net['name'], net['mac'], addr)
33
        print '%s %s' % (key, val)
29 34

  
30 35
def print_dict(d, show_empty=True):
31 36
    for key, val in sorted(d.items()):
32 37
        if key == 'metadata':
33 38
            val = ', '.join('%s="%s"' % x for x in val['values'].items())
34 39
        elif key == 'addresses':
35
            val = ' '.join(address_to_string(address) for address in val['values'])
40
            print_addresses(val['values'])
41
            continue
36 42
        elif key == 'servers':
37 43
            val = ', '.join(str(server_id) for server_id in val['values'])
38 44
        if val or show_empty:
......
272 278
        reply = self.http_get(path)
273 279
        
274 280
        addresses = [reply['network']] if network else reply['addresses']['values']
275
        for address in addresses:
276
            print address_to_string(address)
281
        print_addresses(addresses)
277 282

  
278 283

  
279 284
@command_name('lsflv')

Also available in: Unified diff