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': utils._format_servers_list_networks} utils.print_list(cs.servers.list(search_opts=search_opts), columns, formatters)
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_Factor' ])
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.""" image_list = cs.images.list() def parse_server_name(image): try: return image.server['id'] except (AttributeError, KeyError): return '' fmts = {'Server': parse_server_name} utils.print_list(image_list, ['ID', 'Name', 'Status', 'Server'], fmts)
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_Factor'])
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 is 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 _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 is 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, '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': utils._format_servers_list_networks} utils.print_list(cs.servers.list(search_opts=search_opts), columns, formatters)
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'])
def do_dns_zones(cs, args): """Print a list of available dns zones.""" zones = cs.floating_ip_dns.zones() utils.print_list(zones, ['zone'])
def do_absolute_limits(cs, args): """Print a list of absolute limits for a user""" limits = cs.limits.get().absolute columns = ['Name', 'Value'] utils.print_list(limits, columns)
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 do_rate_limits(cs, args): """Print a list of rate limits for a user""" limits = cs.limits.get().rate columns = ['Verb', 'URI', 'Value', 'Remain', 'Unit', 'Next_Available'] utils.print_list(limits, columns)
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_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 _print_dns_list(dns_entries): utils.print_list(dns_entries, ['ip', 'zone', 'name'])