def do_ipgroup_list(cs, args): """Show IP groups.""" def pretty_server_list(ipgroup): return ", ".join(cs.servers.get(id).name for id in ipgroup.servers) utils.print_list(cs.ipgroups.list(), fields=['ID', 'Name', 'Server List'], formatters={'Server List': pretty_server_list})
def do_volume_list(cs, args): """List all the volumes.""" volumes = cs.volumes.list() _translate_volume_keys(volumes) # Create a list of servers to which the volume is attached for vol in volumes: servers = [server.get('serverId') for server in vol.attachments] setattr(vol, 'attached_to', ','.join(map(str, servers))) utils.print_list(volumes, ['ID', 'Status', 'Display Name', 'Size', 'Attached to'])
def do_image_list(cs, args): """Print a list of available images to boot from.""" server_list = {} for server in cs.servers.list(): server_list[server.id] = server.name image_list = cs.images.list() for i in range(len(image_list)): if hasattr(image_list[i], 'serverId'): image_list[i].serverId = server_list[image_list[i].serverId] + \ ' (' + str(image_list[i].serverId) + ')' utils.print_list(image_list, ['ID', 'Name', 'serverId','Status'])
def do_flavor_list(cs, args): """Print a list of available 'flavors' (sizes of servers).""" flavors = cs.flavors.list() _translate_flavor_keys(flavors) utils.print_list(flavors, [ 'ID', 'Name', 'Memory_MB', 'Swap', 'Local_GB', 'VCPUs', 'RXTX_Quota', 'RXTX_Cap'])
def _print_secgroup_rules(rules): class FormattedRule: def __init__(self, obj): items = (obj if isinstance(obj, dict) else obj._info).items() for k, v in items: if k == 'ip_range': v = v.get('cidr') elif k == 'group': k = 'source_group' v = v.get('name') if v == None: v = '' setattr(self, k, v) rules = [FormattedRule(rule) for rule in rules] utils.print_list(rules, ['IP Protocol', 'From Port', 'To Port', 'IP Range', 'Source Group'])
def do_list(cs, args): """List active servers.""" recurse_zones = args.recurse_zones search_opts = { 'reservation_id': args.reservation_id, 'fixed_ip': args.fixed_ip, 'recurse_zones': recurse_zones, 'ip': args.ip, 'ip6': args.ip6, 'name': args.name, 'image': args.image, 'flavor': args.flavor, 'status': args.status, 'host': args.host, 'instance_name': args.instance_name} if recurse_zones: to_print = ['UUID', 'Name', 'Status', 'Public IP', 'Private IP'] else: to_print = ['ID', 'Name', 'Status', 'Public IP', 'Private IP'] utils.print_list(cs.servers.list(search_opts=search_opts), to_print)
def do_list(cs, args): """List active servers.""" recurse_zones = args.recurse_zones search_opts = { 'reservation_id': args.reservation_id, 'recurse_zones': recurse_zones, 'ip': args.ip, 'ip6': args.ip6, 'name': args.name, 'image': args.image, 'flavor': args.flavor, 'status': args.status, 'host': args.host, 'instance_name': args.instance_name} if recurse_zones: id_col = 'UUID' else: 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 do_zone_list(cs, args): """List the children of a zone.""" utils.print_list(cs.zones.list(), ['ID', 'Name', 'Is Active', \ 'API URL', 'Weight Offset', 'Weight Scale'])
def do_actions(cs, args): """Retrieve server actions.""" utils.print_list( cs.servers.actions(args.server), ["Created_At", "Action", "Error"])
def _print_floating_ip_list(floating_ips): utils.print_list(floating_ips, ['Ip', 'Instance Id', 'Fixed Ip'])
def do_volume_snapshot_list(cs, args): """List all the snapshots.""" snapshots = cs.volume_snapshots.list() _translate_volume_snapshot_keys(snapshots) utils.print_list(snapshots, ['ID', 'Volume ID', 'Status', 'Display Name', 'Size'])
def do_keypair_list(cs, args): """Print a list of keypairs for a user""" keypairs = cs.keypairs.list() columns = ['Name', 'Fingerprint'] utils.print_list(keypairs, columns)
def _print_secgroups(secgroups): utils.print_list(secgroups, ['Name', 'Description'])