Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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_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 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())
Exemple #11
0
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)
Exemple #12
0
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)
Exemple #13
0
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)
Exemple #14
0
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)
Exemple #15
0
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)
Exemple #16
0
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)
Exemple #17
0
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)
Exemple #18
0
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)
Exemple #19
0
def do_policy_type_list(service, args):
    """List the available policy types."""
    types = service.policy_types()
    utils.print_list(types, ['name'], sortby_index=0)