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.aligns = ['l', 'l']
|
||||||
[pt.add_row(list(r)) for r in d.iteritems()]
|
[pt.add_row(list(r)) for r in d.iteritems()]
|
||||||
pt.printt(sortby='Property')
|
pt.printt(sortby='Property')
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,34 +105,17 @@ class Server(base.Resource):
|
|||||||
self.manager.revert_resize(self)
|
self.manager.revert_resize(self)
|
||||||
|
|
||||||
@property
|
@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:
|
try:
|
||||||
public_addresses = self.addresses["public"]
|
for network_label, address_list in self.addresses.items():
|
||||||
except KeyError:
|
networks[network_label] = [a['addr'] for a in address_list]
|
||||||
public_addresses = None
|
return networks
|
||||||
|
except Exception:
|
||||||
if public_addresses is None or len(public_addresses) == 0:
|
return {}
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
class ServerManager(local_base.BootingManagerWithFind):
|
class ServerManager(local_base.BootingManagerWithFind):
|
||||||
|
@ -75,7 +75,20 @@ def do_boot(cs, args):
|
|||||||
name, image, flavor, metadata, files = _boot(cs, args)
|
name, image, flavor, metadata, files = _boot(cs, args)
|
||||||
server = cs.servers.create(args.name, image, flavor,
|
server = cs.servers.create(args.name, image, flavor,
|
||||||
meta=metadata, files=files)
|
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):
|
def _boot(cs, args):
|
||||||
@ -203,12 +216,28 @@ def do_list(cs, args):
|
|||||||
'name': args.name,
|
'name': args.name,
|
||||||
'server_name': args.server_name,
|
'server_name': args.server_name,
|
||||||
'display_name': args.display_name}
|
'display_name': args.display_name}
|
||||||
|
|
||||||
if recurse_zones:
|
if recurse_zones:
|
||||||
to_print = ['UUID', 'Name', 'Status', 'Public IP', 'Private IP']
|
id_col = 'UUID'
|
||||||
else:
|
else:
|
||||||
to_print = ['ID', 'Name', 'Status', 'Public IP', 'Private IP']
|
id_col = 'ID'
|
||||||
utils.print_list(cs.servers.list(search_opts=search_opts),
|
|
||||||
to_print)
|
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',
|
@utils.arg('--hard',
|
||||||
dest='reboot_type',
|
dest='reboot_type',
|
||||||
@ -277,11 +306,11 @@ def do_show(cs, args):
|
|||||||
"""Show details about the given server."""
|
"""Show details about the given server."""
|
||||||
s = _find_server(cs, args.server)
|
s = _find_server(cs, args.server)
|
||||||
|
|
||||||
|
networks = s.networks
|
||||||
|
|
||||||
info = s._info.copy()
|
info = s._info.copy()
|
||||||
addresses = info.pop('addresses', [])
|
for network_label, address_list in networks.items():
|
||||||
for addrtype in addresses:
|
info['%s network' % network_label] = ', '.join(address_list)
|
||||||
ips = map(lambda x: x['addr'], addresses[addrtype])
|
|
||||||
info['%s ip' % addrtype] = ', '.join(ips)
|
|
||||||
|
|
||||||
flavor = info.get('flavor', {})
|
flavor = info.get('flavor', {})
|
||||||
flavor_id = flavor.get('id', '')
|
flavor_id = flavor.get('id', '')
|
||||||
@ -291,6 +320,9 @@ def do_show(cs, args):
|
|||||||
image_id = image.get('id', '')
|
image_id = image.get('id', '')
|
||||||
info['image'] = _find_image(cs, image_id).name
|
info['image'] = _find_image(cs, image_id).name
|
||||||
|
|
||||||
|
info.pop('links', None)
|
||||||
|
info.pop('addresses', None)
|
||||||
|
|
||||||
utils.print_dict(info)
|
utils.print_dict(info)
|
||||||
|
|
||||||
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
|
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user