def do_overcloud_show_template_parameters(tuskar, args, outfile=sys.stdout): """Show the template parameters stored in the Tuskar API.""" template_parameters = tuskar.overclouds.template_parameters() formatters = { '*': fmt.attributes_formatter } template_parameters_dict = template_parameters.to_dict() fmt.print_dict(template_parameters_dict, formatters, outfile=outfile)
def print_plan_detail(plan, outfile=sys.stdout): """Print detailed Plan information (for plan-show etc.).""" formatters = { 'roles': fmt.parameters_v2_formatter, 'parameters': fmt.parameters_v2_formatter, } plan_dict = plan.to_dict() fmt.print_dict(plan_dict, formatters, outfile=outfile)
def print_overcloud_detail(overcloud, outfile=sys.stdout): """Print detailed overcloud information (for overcloud-show etc.).""" formatters = { 'attributes': fmt.attributes_formatter, 'counts': fmt.counts_formatter, } overcloud_dict = overcloud.to_dict() fmt.print_dict(overcloud_dict, formatters, outfile=outfile)
def test_print_dict(self, mock_out): dict_ = {'k': 'v', 'key': 'value'} formatters = {'key': lambda v: 'custom ' + v} custom_labels = {'k': 'custom_key'} fmt.print_dict(dict_, formatters, custom_labels) self.assertEqual(('+------------+--------------+\n' '| Property | Value |\n' '+------------+--------------+\n' '| custom_key | v |\n' '| key | custom value |\n' '+------------+--------------+\n'), mock_out.getvalue())
def test_print_dict(self, mock_out): dict_ = {'k': 'v', 'key': 'value'} formatters = {'key': lambda v: 'custom ' + v} custom_labels = {'k': 'custom_key'} fmt.print_dict(dict_, formatters, custom_labels) self.assertEqual( ('+------------+--------------+\n' '| Property | Value |\n' '+------------+--------------+\n' '| custom_key | v |\n' '| key | custom value |\n' '+------------+--------------+\n'), mock_out.getvalue() )
def do_rack_show(tuskar, args): try: rack = utils.find_resource(tuskar.racks, args.id) except exc.HTTPNotFound: raise exc.CommandError("Rack not found: %s" % args.id) formatters = { 'capacities': fmt.capacities_formatter, 'chassis': fmt.resource_link_formatter, 'links': fmt.links_formatter, 'nodes': fmt.resource_links_formatter, 'resource_class': fmt.resource_link_formatter, } rack_dict = rack.to_dict() # Workaround for API inconsistency, where empty chassis link # prints out as '{}'. if 'chassis' in rack_dict and not rack_dict['chassis']: del rack_dict['chassis'] fmt.print_dict(rack_dict, formatters)
def do_plan_show_flavors(tuskar, args, outfile=sys.stdout): """Show flavors assigned to roles of Plan.""" plan = utils.find_resource(tuskar.plans, args.plan) flavors = filter_parameters_to_dict(plan.parameters, 'Flavor') fmt.print_dict(flavors, outfile=outfile)
def do_plan_show_scale(tuskar, args, outfile=sys.stdout): """Show scale counts of Plan.""" plan = utils.find_resource(tuskar.plans, args.plan) scales = filter_parameters_to_dict(plan.parameters, 'count') fmt.print_dict(scales, outfile=outfile)
def print_role_detail(overcloud_role, outfile=sys.stdout): """Print detailed Overcloud Role information (overcloud-role-show etc.).""" overcloud_role_dict = overcloud_role.to_dict() fmt.print_dict(overcloud_role_dict, outfile=outfile)