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')
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'))
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)
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')
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')
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')
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')
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')
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')
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)
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')
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')
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')
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)
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