Merge pull request #1 from bcwaldon/v1.1-formatting
V1.1 formatting fixes
This commit is contained in:
commit
b2f339be54
novaclient
@ -39,5 +39,3 @@ def print_dict(d):
|
||||
pt.aligns = ['l', 'l']
|
||||
[pt.add_row(list(r)) for r in d.iteritems()]
|
||||
pt.printt(sortby='Property')
|
||||
|
||||
|
||||
|
@ -105,34 +105,17 @@ class Server(base.Resource):
|
||||
self.manager.revert_resize(self)
|
||||
|
||||
@property
|
||||
def public_ip(self):
|
||||
def networks(self):
|
||||
"""
|
||||
Shortcut to get this server's primary public IP address.
|
||||
Generate a simplified list of addresses
|
||||
"""
|
||||
networks = {}
|
||||
try:
|
||||
public_addresses = self.addresses["public"]
|
||||
except KeyError:
|
||||
public_addresses = None
|
||||
|
||||
if public_addresses is None or len(public_addresses) == 0:
|
||||
return ""
|
||||
else:
|
||||
return public_addresses
|
||||
|
||||
@property
|
||||
def private_ip(self):
|
||||
"""
|
||||
Shortcut to get this server's primary private IP address.
|
||||
"""
|
||||
try:
|
||||
private_addresses = self.addresses["private"]
|
||||
except KeyError:
|
||||
private_addresses = None
|
||||
|
||||
if private_addresses is None or len(private_addresses) == 0:
|
||||
return ""
|
||||
else:
|
||||
return private_addresses
|
||||
for network_label, address_list in self.addresses.items():
|
||||
networks[network_label] = [a['addr'] for a in address_list]
|
||||
return networks
|
||||
except Exception:
|
||||
return {}
|
||||
|
||||
|
||||
class ServerManager(local_base.BootingManagerWithFind):
|
||||
|
@ -75,7 +75,20 @@ def do_boot(cs, args):
|
||||
name, image, flavor, metadata, files = _boot(cs, args)
|
||||
server = cs.servers.create(args.name, image, flavor,
|
||||
meta=metadata, files=files)
|
||||
utils.print_dict(server._info)
|
||||
info = server._info
|
||||
|
||||
flavor = info.get('flavor', {})
|
||||
flavor_id = flavor.get('id', '')
|
||||
info['flavor'] = _find_flavor(cs, flavor_id).name
|
||||
|
||||
image = info.get('image', {})
|
||||
image_id = image.get('id', '')
|
||||
info['image'] = _find_image(cs, image_id).name
|
||||
|
||||
info.pop('links', None)
|
||||
info.pop('addresses', None)
|
||||
|
||||
utils.print_dict(info)
|
||||
|
||||
|
||||
def _boot(cs, args):
|
||||
@ -203,12 +216,28 @@ def do_list(cs, args):
|
||||
'name': args.name,
|
||||
'server_name': args.server_name,
|
||||
'display_name': args.display_name}
|
||||
|
||||
if recurse_zones:
|
||||
to_print = ['UUID', 'Name', 'Status', 'Public IP', 'Private IP']
|
||||
id_col = 'UUID'
|
||||
else:
|
||||
to_print = ['ID', 'Name', 'Status', 'Public IP', 'Private IP']
|
||||
utils.print_list(cs.servers.list(search_opts=search_opts),
|
||||
to_print)
|
||||
id_col = 'ID'
|
||||
|
||||
columns = [id_col, 'Name', 'Status', 'Networks']
|
||||
formatters = {'Networks': _format_servers_list_networks}
|
||||
utils.print_list(cs.servers.list(search_opts=search_opts), columns, formatters)
|
||||
|
||||
|
||||
def _format_servers_list_networks(server):
|
||||
output = []
|
||||
for (network, addresses) in server.networks.items():
|
||||
if len(addresses) == 0:
|
||||
continue
|
||||
addresses_csv = ', '.join(addresses)
|
||||
group = "%s=%s" % (network, addresses_csv)
|
||||
output.append(group)
|
||||
|
||||
return '; '.join(output)
|
||||
|
||||
|
||||
@utils.arg('--hard',
|
||||
dest='reboot_type',
|
||||
@ -277,11 +306,11 @@ def do_show(cs, args):
|
||||
"""Show details about the given server."""
|
||||
s = _find_server(cs, args.server)
|
||||
|
||||
networks = s.networks
|
||||
|
||||
info = s._info.copy()
|
||||
addresses = info.pop('addresses', [])
|
||||
for addrtype in addresses:
|
||||
ips = map(lambda x: x['addr'], addresses[addrtype])
|
||||
info['%s ip' % addrtype] = ', '.join(ips)
|
||||
for network_label, address_list in networks.items():
|
||||
info['%s network' % network_label] = ', '.join(address_list)
|
||||
|
||||
flavor = info.get('flavor', {})
|
||||
flavor_id = flavor.get('id', '')
|
||||
@ -291,6 +320,9 @@ def do_show(cs, args):
|
||||
image_id = image.get('id', '')
|
||||
info['image'] = _find_image(cs, image_id).name
|
||||
|
||||
info.pop('links', None)
|
||||
info.pop('addresses', None)
|
||||
|
||||
utils.print_dict(info)
|
||||
|
||||
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
|
||||
|
Loading…
x
Reference in New Issue
Block a user