예제 #1
0
 def display(self):
     data = chain([('SSH Key', key.name) for key in self.ssh_keys],
                  [('Cloud Files', cred.username)
                   for cred in self.cloud_files],
                  [('Amazon S3', cred.access_key_id) for cred in self.s3],
                  [('Ambari', cred.username) for cred in self.ambari])
     print_table(data, ('Type', 'Name'), title='Credentials')
예제 #2
0
 def display(self):
     data = chain(
         [('SSH Key', key.name) for key in self.ssh_keys],
         [('Cloud Files', cred.username) for cred in self.cloud_files],
         [('Amazon S3', cred.access_key_id) for cred in self.s3]
     )
     print_table(data, ('Type', 'Name'))
예제 #3
0
def display_stacks(result):
    data, header = table_data(result, Stack)
    header = [''] + list(header)
    data = [[i] + list(row) for i, row in enumerate(data, start=1)]

    print_table(data, header, title='Stacks')
    display_stack_services(result)
예제 #4
0
def display_stacks(result):
    data, header = table_data(result, Stack)
    header = [''] + list(header)
    data = [[i] + list(row) for i, row in enumerate(data, start=1)]

    print_table(data, header, title='Stacks')
    display_stack_services(result)
예제 #5
0
 def display(self):
     properties = [
         ('Nodes', self.node_count.limit, self.node_count.remaining),
         ('RAM', self.ram.limit, self.ram.remaining),
         ('Disk', self.disk.limit, self.disk.remaining),
         ('VCPUs', self.vcpus.limit, self.vcpus.remaining),
     ]
     header = ('Property', 'Limit', 'Remaining')
     print_table(properties, header, title='Quotas')
예제 #6
0
 def display(self):
     properties = [
         ('Nodes', self.node_count.limit, self.node_count.remaining),
         ('RAM', self.ram.limit, self.ram.remaining),
         ('Disk', self.disk.limit, self.disk.remaining),
         ('VCPUs', self.vcpus.limit, self.vcpus.remaining),
     ]
     header = ('Property', 'Limit', 'Remaining')
     print_table(properties, header, title='Quotas')
예제 #7
0
    def _display_components(self):
        rows = []
        for group in self.node_groups:
            group_column = chain([group.id], repeat(''))
            rows.extend(
                no_nulls((grp, comp['name']))
                for grp, comp in six.moves.zip(group_column, group.components))

        print_table(rows, ('Node Group', 'Name'), title='Components')
예제 #8
0
    def _display_components(self):
        rows = []
        for group in self.node_groups:
            group_column = chain([group.id], repeat(''))
            rows.extend(
                no_nulls((grp, comp['name']))
                for grp, comp in six.moves.zip(group_column, group.components)
            )

        print_table(rows, ('Node Group', 'Name'), title='Components')
예제 #9
0
    def display_node_groups(self):
        data = []
        for group in self.node_groups:
            data.extend(zip(
                chain([group.id], repeat('')),
                chain([group.flavor_id], repeat('')),
                chain([group.count], repeat('')),
                sorted(component['name'] for component in group.components)
            ))

        print_table(data, ('ID', 'Flavor', 'Count', 'Components'),
                    title='Node Groups')
예제 #10
0
    def display_node_groups(self):
        data = []
        for group in self.node_groups:
            data.extend(
                zip(
                    chain([group.id], repeat('')),
                    chain([group.flavor_id], repeat('')),
                    chain([group.count], repeat('')),
                    sorted(component['name']
                           for component in group.components)))

        print_table(data, ('ID', 'Flavor', 'Count', 'Components'),
                    title='Node Groups')
예제 #11
0
    def display_nodes(cls, nodes):
        display_result(nodes, Node, title='Nodes')

        rows = []
        for node in nodes:
            node_column = chain([node.name], repeat(''))

            rows.extend(
                no_nulls([name, comp['name'], comp['nice_name'],
                          comp.get('uri')])
                for name, comp in six.moves.zip(node_column, node.components))

        print_table(rows, ('Node', 'ID', 'Name', 'URI'), title='Components')
예제 #12
0
def display_recommendations(data):
    rows = []
    for rec in data:
        items = six.moves.zip(
            chain([rec.name], repeat('')),
            chain(textwrap.wrap(rec._requires, 30), repeat('')),
            chain(textwrap.wrap(rec.description, 30), repeat('')), rec.sizes)

        rows.extend((name, requires, desc, size.flavor_id, size.minutes,
                     size.nodecount, size.recommended)
                    for name, requires, desc, size in items)

    header = ('Name', 'Requires', 'Description', 'Flavor', 'Minutes', 'Nodes',
              'Recommended')
    print_table(rows, header)
예제 #13
0
    def display_nodes(cls, nodes):
        sorted_nodes = sorted(nodes, key=lambda node: node.name)
        display_result(sorted_nodes, Node, title='Nodes')

        six.print_()
        rows = []
        for node in sorted_nodes:
            node_column = chain([node.name], repeat(''))

            rows.extend(
                no_nulls(
                    [name, comp['name'], comp['nice_name'],
                     comp.get('uri')])
                for name, comp in six.moves.zip(node_column, node.components))

        print_table(rows, ('Node', 'ID', 'Name', 'URI'), title='Components')
예제 #14
0
def display_stack_services(result):
    service_stacks = defaultdict(set)
    for stack in result:
        for service in stack.services:
            service_stacks[service.name].add(stack.id)

    header = [''
              ] + [six.text_type(i + 1) for i in six.moves.range(len(result))]

    sorted_services = [(service, service_stacks[service])
                       for service in sorted(service_stacks)]
    rows = [[service] +
            ['X' if stack.id in svc_stacks else '' for stack in result]
            for service, svc_stacks in sorted_services]

    print_table(rows, header, title='Services')
예제 #15
0
def display_stack_services(result):
    service_stacks = defaultdict(set)
    for stack in result:
        for service in stack.services:
            service_stacks[service.name].add(stack.id)

    header = [''] + [six.text_type(i + 1)
                     for i in six.moves.range(len(result))]

    sorted_services = [(service, service_stacks[service])
                       for service in sorted(service_stacks)]
    rows = [
        [service] + ['X' if stack.id in svc_stacks else '' for stack in result]
        for service, svc_stacks in sorted_services]

    print_table(rows, header, title='Services')
예제 #16
0
def display_recommendations(data):
    rows = []
    for rec in data:
        items = six.moves.zip(
            chain([rec.name], repeat("")),
            chain(textwrap.wrap(rec._requires, 30), repeat("")),
            chain(textwrap.wrap(rec.description, 30), repeat("")),
            rec.sizes,
        )

        rows.extend(
            (name, requires, desc, size.flavor_id, size.minutes, size.nodecount, size.recommended)
            for name, requires, desc, size in items
        )

    header = ("Name", "Requires", "Description", "Flavor", "Minutes", "Nodes", "Recommended")
    print_table(rows, header)
예제 #17
0
def test_print_table(data, header, title, output):
    strio = six.StringIO()
    with patch('sys.stdout', strio):
        util.print_table(data, header, title=title)

    assert strio.getvalue() == output
예제 #18
0
def test_print_table(data, header, title, output):
    strio = six.StringIO()
    with patch('sys.stdout', strio):
        util.print_table(data, header, title=title)

    assert strio.getvalue() == output