def do_cluster_list(service, args=None): """List the user's clusters.""" fields = ['id', 'name', 'status', 'created_at', 'updated_at'] queries = { 'limit': args.limit, 'marker': args.marker, 'sort': args.sort, 'show_nested': args.show_nested, 'global_project': args.global_project, } if args.filters: queries.update(utils.format_parameters(args.filters)) if args.show_nested: fields.append('parent') sortby_index = None if args.sort else 3 clusters = service.clusters(**queries) formatters = {} if not args.full_id: formatters = { 'id': lambda x: x.id[:8] } utils.print_list(clusters, fields, formatters=formatters, sortby_index=sortby_index)
def do_cluster_node_list(service, args): """List nodes from cluster.""" queries = { 'cluster_id': args.id, 'limit': args.limit, 'marker': args.marker, } if args.filters: queries.update(utils.format_parameters(args.filters)) try: nodes = service.nodes(**queries) except exc.HTTPNotFound: msg = _('No node matching criteria is found') raise exc.CommandError(msg) if not args.full_id: formatters = { 'id': lambda x: x.id[:8], 'physical_id': lambda x: x.physical_id[:8] if x.physical_id else '' } else: formatters = {} fields = ['id', 'name', 'index', 'status', 'physical_id', 'created_at'] utils.print_list(nodes, fields, formatters=formatters, sortby_index=5)
def do_node_list(service, args): """Show list of nodes.""" fields = ['id', 'name', 'index', 'status', 'cluster_id', 'physical_id', 'profile_name', 'created_at', 'updated_at'] queries = { 'cluster_id': args.cluster, 'sort': args.sort, 'limit': args.limit, 'marker': args.marker, 'global_project': args.global_project, } if args.filters: queries.update(utils.format_parameters(args.filters)) sortby_index = None if args.sort else 6 nodes = service.nodes(**queries) if not args.full_id: formatters = { 'id': lambda x: x.id[:8], 'cluster_id': lambda x: x.cluster_id[:8] if x.cluster_id else '', 'physical_id': lambda x: x.physical_id[:8] if x.physical_id else '' } else: formatters = {} utils.print_list(nodes, fields, formatters=formatters, sortby_index=sortby_index)
def do_profile_type_list(service, args=None): """List the available profile types. :param sc: Instance of senlinclient. :param args: Additional command line arguments, if any. """ types = service.profile_types() utils.print_list(types, ['name'], sortby_index=0)
def test_print_dict_with_None_data(self): Row = collections.namedtuple('Row', ['foo', 'bar']) to_print = [Row(foo='fake_foo1', bar=None), Row(foo='fake_foo2', bar='fake_bar1')] with CaptureStdout() as cso: utils.print_list(to_print, ['foo', 'bar']) # Output should be sorted by the first key (foo) self.assertEqual("""\ +-----------+-----------+ | foo | bar | +-----------+-----------+ | fake_foo1 | - | | fake_foo2 | fake_bar1 | +-----------+-----------+ """, cso.read())
def test_print_list_with_None_data(self): Row = collections.namedtuple('Row', ['foo', 'bar']) to_print = [Row(foo='fake_foo1', bar='None'), Row(foo='fake_foo2', bar='fake_bar1')] with CaptureStdout() as cso: utils.print_list(to_print, ['foo', 'bar']) # Output should be sorted by the first key (foo) self.assertEqual("""\ +-----------+-----------+ | foo | bar | +-----------+-----------+ | fake_foo1 | None | | fake_foo2 | fake_bar1 | +-----------+-----------+ """, cso.read())
def test_print_list_with_list_no_sort(self): Row = collections.namedtuple('Row', ['foo', 'bar']) to_print = [Row(foo='fake_foo2', bar='fake_bar1'), Row(foo='fake_foo1', bar='fake_bar2')] with CaptureStdout() as cso: utils.print_list(to_print, ['foo', 'bar'], sortby_index=None) # Output should be in the order given self.assertEqual("""\ +-----------+-----------+ | foo | bar | +-----------+-----------+ | fake_foo2 | fake_bar1 | | fake_foo1 | fake_bar2 | +-----------+-----------+ """, cso.read())
def test_print_list_with_generator(self): Row = collections.namedtuple('Row', ['foo', 'bar']) def gen_rows(): for row in [Row(foo='fake_foo1', bar='fake_bar2'), Row(foo='fake_foo2', bar='fake_bar1')]: yield row with CaptureStdout() as cso: utils.print_list(gen_rows(), ['foo', 'bar']) self.assertEqual("""\ +-----------+-----------+ | foo | bar | +-----------+-----------+ | fake_foo1 | fake_bar2 | | fake_foo2 | fake_bar1 | +-----------+-----------+ """, cso.read())
def do_policy_list(service, args=None): """List policies that meet the criteria.""" fields = ['id', 'name', 'type', 'created_at'] queries = { 'limit': args.limit, 'marker': args.marker, 'sort': args.sort, 'global_project': args.global_project, } sortby_index = None if args.sort else 1 policies = service.policies(**queries) formatters = {} if not args.full_id: formatters = { 'id': lambda x: x.id[:8] } utils.print_list(policies, fields, formatters=formatters, sortby_index=sortby_index)
def do_policy_list(service, args=None): """List policies that meet the criteria.""" fields = ['id', 'name', 'type', 'created_at'] queries = { 'limit': args.limit, 'marker': args.marker, 'sort': args.sort, 'global_project': args.global_project, } if args.filters: queries.update(utils.format_parameters(args.filters)) sortby_index = None if args.sort else 1 policies = service.policies(**queries) formatters = {} if not args.full_id: formatters = { 'id': lambda x: x.id[:8] } utils.print_list(policies, fields, formatters=formatters, sortby_index=sortby_index)
def do_cluster_policy_list(service, args): """List policies from cluster.""" fields = ['policy_id', 'policy_name', 'policy_type', 'enabled'] cluster = service.get_cluster(args.id) queries = { 'sort': args.sort, } if args.filters: queries.update(utils.format_parameters(args.filters)) sortby_index = None if args.sort else 3 policies = service.cluster_policies(cluster.id, **queries) formatters = {} if not args.full_id: formatters = { 'policy_id': lambda x: x.id[:8] } utils.print_list(policies, fields, formatters=formatters, sortby_index=sortby_index)
def do_cluster_node_list(service, args): """List nodes from cluster.""" queries = { 'cluster_id': args.id, 'limit': args.limit, 'marker': args.marker, } if args.filters: queries.update(utils.format_parameters(args.filters)) nodes = service.nodes(**queries) if not args.full_id: formatters = { 'id': lambda x: x.id[:8], 'physical_id': lambda x: x.physical_id[:8] if x.physical_id else '' } else: formatters = {} fields = ['id', 'name', 'index', 'status', 'physical_id', 'created_at'] utils.print_list(nodes, fields, formatters=formatters, sortby_index=5)
def do_cluster_list(service, args=None): """List the user's clusters.""" fields = ['id', 'name', 'status', 'created_at', 'updated_at'] queries = { 'limit': args.limit, 'marker': args.marker, 'sort': args.sort, 'global_project': args.global_project, } if args.filters: queries.update(utils.format_parameters(args.filters)) sortby_index = None if args.sort else 3 clusters = service.clusters(**queries) formatters = {} if not args.full_id: formatters = { 'id': lambda x: x.id[:8] } utils.print_list(clusters, fields, formatters=formatters, sortby_index=sortby_index)
def do_receiver_list(service, args): """List receivers that meet the criteria.""" fields = ['id', 'name', 'type', 'cluster_id', 'action', 'created_at'] queries = { 'limit': args.limit, 'marker': args.marker, 'sort': args.sort, 'global_project': args.global_project, } if args.filters: queries.update(utils.format_parameters(args.filters)) sortby_index = None if args.sort else 0 receivers = service.receivers(**queries) formatters = {} if not args.full_id: formatters = { 'id': lambda x: x.id[:8], 'cluster_id': lambda x: x.cluster_id[:8], } utils.print_list(receivers, fields, formatters=formatters, sortby_index=sortby_index)
def do_action_list(service, args): """List actions.""" fields = ['id', 'name', 'action', 'status', 'target', 'depends_on', 'depended_by', 'created_at'] queries = { 'sort': args.sort, 'limit': args.limit, 'marker': args.marker, } if args.filters: queries.update(utils.format_parameters(args.filters)) sortby_index = None if args.sort else 0 actions = service.actions(**queries) formatters = {} if args.full_id: f_depon = lambda x: '\n'.join(a for a in x.depends_on) f_depby = lambda x: '\n'.join(a for a in x.depended_by) formatters['depends_on'] = f_depon formatters['depended_by'] = f_depby else: formatters['id'] = lambda x: x.id[:8] formatters['target'] = lambda x: x.target[:8] f_depon = lambda x: '\n'.join(a[:8] for a in x.depends_on) f_depby = lambda x: '\n'.join(a[:8] for a in x.depended_by) formatters['depends_on'] = f_depon formatters['depended_by'] = f_depby utils.print_list(actions, fields, formatters=formatters, sortby_index=sortby_index)
def do_event_list(service, args): """List events.""" fields = ['id', 'timestamp', 'obj_type', 'obj_id', 'obj_name', 'action', 'status', 'status_reason', 'level'] queries = { 'sort': args.sort, 'limit': args.limit, 'marker': args.marker, 'global_project': args.global_project, } if args.filters: queries.update(utils.format_parameters(args.filters)) sortby_index = None if args.sort else 0 formatters = {} if not args.full_id: formatters['id'] = lambda x: x.id[:8] formatters['obj_id'] = lambda x: x.obj_id[:8] if x.obj_id else '' events = service.events(**queries) utils.print_list(events, fields, formatters=formatters, sortby_index=sortby_index)
def do_policy_type_list(service, args): """List the available policy types.""" types = service.policy_types() utils.print_list(types, ['name'], sortby_index=0)