From 8c9a562c5b2de7a3b3c327eea50cbb03f67534cb Mon Sep 17 00:00:00 2001 From: Chris Lumens Date: Jan 22 2021 12:12:34 +0000 Subject: Feature: tools: Use formatted output for CTS printing in crm_resource. Note that this option only exists for internal use, passing information to cts. It's not exposed in the command line help. I've implemented it just using out->info so it will only print for the text output format. I don't want XML output that someone might start to rely on, despite not being in the schema. --- diff --git a/tools/crm_resource.c b/tools/crm_resource.c index f86490b..76a15dc 100644 --- a/tools/crm_resource.c +++ b/tools/crm_resource.c @@ -1813,12 +1813,14 @@ main(int argc, char **argv) case cmd_cts: rc = pcmk_rc_ok; + for (GList *lpc = data_set->resources; lpc != NULL; lpc = lpc->next) { rsc = (pe_resource_t *) lpc->data; cli_resource_print_cts(out, rsc); } + cli_resource_print_cts_constraints(out, data_set); break; diff --git a/tools/crm_resource_print.c b/tools/crm_resource_print.c index de2202e..4b3c42d 100644 --- a/tools/crm_resource_print.c +++ b/tools/crm_resource_print.c @@ -33,19 +33,18 @@ cli_resource_print_cts_constraints(pcmk__output_t *out, pe_working_set_t * data_ continue; } - if (pcmk__str_eq(XML_CONS_TAG_RSC_DEPEND, crm_element_name(xml_obj), pcmk__str_casei)) { - printf("Constraint %s %s %s %s %s %s %s\n", - crm_element_name(xml_obj), - cons_string(crm_element_value(xml_obj, XML_ATTR_ID)), - cons_string(crm_element_value(xml_obj, XML_COLOC_ATTR_SOURCE)), - cons_string(crm_element_value(xml_obj, XML_COLOC_ATTR_TARGET)), - cons_string(crm_element_value(xml_obj, XML_RULE_ATTR_SCORE)), - cons_string(crm_element_value(xml_obj, XML_COLOC_ATTR_SOURCE_ROLE)), - cons_string(crm_element_value(xml_obj, XML_COLOC_ATTR_TARGET_ROLE))); - - } else if (pcmk__str_eq(XML_CONS_TAG_RSC_LOCATION, crm_element_name(xml_obj), pcmk__str_casei)) { - /* unpack_location(xml_obj, data_set); */ + if (!pcmk__str_eq(XML_CONS_TAG_RSC_DEPEND, crm_element_name(xml_obj), pcmk__str_casei)) { + continue; } + + out->info(out, "Constraint %s %s %s %s %s %s %s", + crm_element_name(xml_obj), + cons_string(crm_element_value(xml_obj, XML_ATTR_ID)), + cons_string(crm_element_value(xml_obj, XML_COLOC_ATTR_SOURCE)), + cons_string(crm_element_value(xml_obj, XML_COLOC_ATTR_TARGET)), + cons_string(crm_element_value(xml_obj, XML_RULE_ATTR_SCORE)), + cons_string(crm_element_value(xml_obj, XML_COLOC_ATTR_SOURCE_ROLE)), + cons_string(crm_element_value(xml_obj, XML_COLOC_ATTR_TARGET_ROLE))); } } @@ -70,11 +69,11 @@ cli_resource_print_cts(pcmk__output_t *out, pe_resource_t * rsc) host = node->details->uname; } - printf("Resource: %s %s %s %s %s %s %s %s %d %lld 0x%.16llx\n", - crm_element_name(rsc->xml), rsc->id, - rsc->clone_name ? rsc->clone_name : rsc->id, rsc->parent ? rsc->parent->id : "NA", - rprov ? rprov : "NA", rclass, rtype, host ? host : "NA", needs_quorum, rsc->flags, - rsc->flags); + out->info(out, "Resource: %s %s %s %s %s %s %s %s %d %lld 0x%.16llx", + crm_element_name(rsc->xml), rsc->id, + rsc->clone_name ? rsc->clone_name : rsc->id, rsc->parent ? rsc->parent->id : "NA", + rprov ? rprov : "NA", rclass, rtype, host ? host : "NA", needs_quorum, rsc->flags, + rsc->flags); for (lpc = rsc->children; lpc != NULL; lpc = lpc->next) { pe_resource_t *child = (pe_resource_t *) lpc->data;