diff --git a/cts/cli/regression.tools.exp b/cts/cli/regression.tools.exp index 565cacc..0e69d0d 100644 --- a/cts/cli/regression.tools.exp +++ b/cts/cli/regression.tools.exp @@ -3507,7 +3507,7 @@ prim2: * Locations: * Node cluster01 (score=INFINITY, id=prim2-on-cluster1) Colocations: - * prim3 (score=INFINITY, id=colocation-prim2-prim3-INFINITY + * prim3 (score=INFINITY, id=colocation-prim2-prim3-INFINITY) * Locations: =#=#=#= End test: Check locations and constraints for prim2 - OK (0) =#=#=#= * Passed: crm_resource - Check locations and constraints for prim2 @@ -3516,7 +3516,7 @@ prim2: * Locations: * Node cluster01 (score=INFINITY, id=prim2-on-cluster1) Colocations: - * prim3 (score=INFINITY, id=colocation-prim2-prim3-INFINITY + * prim3 (score=INFINITY, id=colocation-prim2-prim3-INFINITY) * Locations: =#=#=#= End test: Recursively check locations and constraints for prim2 - OK (0) =#=#=#= * Passed: crm_resource - Recursively check locations and constraints for prim2 @@ -3556,26 +3556,26 @@ Colocations: * Passed: crm_resource - Recursively check locations and constraints for prim2 in XML =#=#=#= Begin test: Check locations and constraints for prim3 =#=#=#= Colocations: - * prim2 (score=INFINITY, id=colocation-prim2-prim3-INFINITY + * prim2 (score=INFINITY, id=colocation-prim2-prim3-INFINITY) * Locations: * Node cluster01 (score=INFINITY, id=prim2-on-cluster1) prim3: * Locations: Colocations: - * prim4 (score=INFINITY, id=colocation-prim3-prim4-INFINITY + * prim4 (score=INFINITY, id=colocation-prim3-prim4-INFINITY) * Locations: * Node cluster02 (score=INFINITY, id=prim4-on-cluster2) =#=#=#= End test: Check locations and constraints for prim3 - OK (0) =#=#=#= * Passed: crm_resource - Check locations and constraints for prim3 =#=#=#= Begin test: Recursively check locations and constraints for prim3 =#=#=#= Colocations: - * prim2 (score=INFINITY, id=colocation-prim2-prim3-INFINITY + * prim2 (score=INFINITY, id=colocation-prim2-prim3-INFINITY) * Locations: * Node cluster01 (score=INFINITY, id=prim2-on-cluster1) prim3: * Locations: Colocations: - * prim4 (score=INFINITY, id=colocation-prim3-prim4-INFINITY + * prim4 (score=INFINITY, id=colocation-prim3-prim4-INFINITY) * Locations: * Node cluster02 (score=INFINITY, id=prim4-on-cluster2) =#=#=#= End test: Recursively check locations and constraints for prim3 - OK (0) =#=#=#= @@ -3628,29 +3628,29 @@ Colocations: * Passed: crm_resource - Recursively check locations and constraints for prim3 in XML =#=#=#= Begin test: Check locations and constraints for prim4 =#=#=#= Colocations: - * prim10 (score=INFINITY, id=colocation-prim10-prim4-INFINITY + * prim10 (score=INFINITY, id=colocation-prim10-prim4-INFINITY) * Locations: - * prim3 (score=INFINITY, id=colocation-prim3-prim4-INFINITY + * prim3 (score=INFINITY, id=colocation-prim3-prim4-INFINITY) * Locations: prim4: * Locations: * Node cluster02 (score=INFINITY, id=prim4-on-cluster2) Colocations: - * prim5 (score=INFINITY, id=colocation-prim4-prim5-INFINITY + * prim5 (score=INFINITY, id=colocation-prim4-prim5-INFINITY) * Locations: =#=#=#= End test: Check locations and constraints for prim4 - OK (0) =#=#=#= * Passed: crm_resource - Check locations and constraints for prim4 =#=#=#= Begin test: Recursively check locations and constraints for prim4 =#=#=#= Colocations: - * prim10 (score=INFINITY, id=colocation-prim10-prim4-INFINITY + * prim10 (score=INFINITY, id=colocation-prim10-prim4-INFINITY) * Locations: - * prim3 (score=INFINITY, id=colocation-prim3-prim4-INFINITY + * prim3 (score=INFINITY, id=colocation-prim3-prim4-INFINITY) * Locations: prim4: * Locations: * Node cluster02 (score=INFINITY, id=prim4-on-cluster2) Colocations: - * prim5 (score=INFINITY, id=colocation-prim4-prim5-INFINITY + * prim5 (score=INFINITY, id=colocation-prim4-prim5-INFINITY) * Locations: =#=#=#= End test: Recursively check locations and constraints for prim4 - OK (0) =#=#=#= * Passed: crm_resource - Recursively check locations and constraints for prim4 @@ -3702,7 +3702,7 @@ Colocations: * Passed: crm_resource - Recursively check locations and constraints for prim4 in XML =#=#=#= Begin test: Check locations and constraints for prim5 =#=#=#= Colocations: - * prim4 (score=INFINITY, id=colocation-prim4-prim5-INFINITY + * prim4 (score=INFINITY, id=colocation-prim4-prim5-INFINITY) * Locations: * Node cluster02 (score=INFINITY, id=prim4-on-cluster2) prim5: @@ -3711,7 +3711,7 @@ prim5: * Passed: crm_resource - Check locations and constraints for prim5 =#=#=#= Begin test: Recursively check locations and constraints for prim5 =#=#=#= Colocations: - * prim4 (score=INFINITY, id=colocation-prim4-prim5-INFINITY + * prim4 (score=INFINITY, id=colocation-prim4-prim5-INFINITY) * Locations: * Node cluster02 (score=INFINITY, id=prim4-on-cluster2) prim5: @@ -3794,7 +3794,7 @@ prim6: prim7: * Locations: Colocations: - * group (score=INFINITY, id=colocation-prim7-group-INFINITY + * group (score=INFINITY, id=colocation-prim7-group-INFINITY) * Locations: =#=#=#= End test: Check locations and constraints for prim7 - OK (0) =#=#=#= * Passed: crm_resource - Check locations and constraints for prim7 @@ -3802,7 +3802,7 @@ Colocations: prim7: * Locations: Colocations: - * group (score=INFINITY, id=colocation-prim7-group-INFINITY + * group (score=INFINITY, id=colocation-prim7-group-INFINITY) * Locations: =#=#=#= End test: Recursively check locations and constraints for prim7 - OK (0) =#=#=#= * Passed: crm_resource - Recursively check locations and constraints for prim7 @@ -3840,7 +3840,7 @@ Colocations: prim8: * Locations: Colocations: - * gr2 (score=INFINITY, id=colocation-prim8-gr2-INFINITY + * gr2 (score=INFINITY, id=colocation-prim8-gr2-INFINITY) * Locations: =#=#=#= End test: Check locations and constraints for prim8 - OK (0) =#=#=#= * Passed: crm_resource - Check locations and constraints for prim8 @@ -3848,7 +3848,7 @@ Colocations: prim8: * Locations: Colocations: - * gr2 (score=INFINITY, id=colocation-prim8-gr2-INFINITY + * gr2 (score=INFINITY, id=colocation-prim8-gr2-INFINITY) * Locations: =#=#=#= End test: Recursively check locations and constraints for prim8 - OK (0) =#=#=#= * Passed: crm_resource - Recursively check locations and constraints for prim8 @@ -3886,7 +3886,7 @@ Colocations: prim9: * Locations: Colocations: - * clone (score=INFINITY, id=colocation-prim9-clone-INFINITY + * clone (score=INFINITY, id=colocation-prim9-clone-INFINITY) * Locations: =#=#=#= End test: Check locations and constraints for prim9 - OK (0) =#=#=#= * Passed: crm_resource - Check locations and constraints for prim9 @@ -3894,7 +3894,7 @@ Colocations: prim9: * Locations: Colocations: - * clone (score=INFINITY, id=colocation-prim9-clone-INFINITY + * clone (score=INFINITY, id=colocation-prim9-clone-INFINITY) * Locations: =#=#=#= End test: Recursively check locations and constraints for prim9 - OK (0) =#=#=#= * Passed: crm_resource - Recursively check locations and constraints for prim9 @@ -3932,7 +3932,7 @@ Colocations: prim10: * Locations: Colocations: - * prim4 (score=INFINITY, id=colocation-prim10-prim4-INFINITY + * prim4 (score=INFINITY, id=colocation-prim10-prim4-INFINITY) * Locations: * Node cluster02 (score=INFINITY, id=prim4-on-cluster2) =#=#=#= End test: Check locations and constraints for prim10 - OK (0) =#=#=#= @@ -3941,7 +3941,7 @@ Colocations: prim10: * Locations: Colocations: - * prim4 (score=INFINITY, id=colocation-prim10-prim4-INFINITY + * prim4 (score=INFINITY, id=colocation-prim10-prim4-INFINITY) * Locations: * Node cluster02 (score=INFINITY, id=prim4-on-cluster2) =#=#=#= End test: Recursively check locations and constraints for prim10 - OK (0) =#=#=#= @@ -3982,23 +3982,23 @@ Colocations: * Passed: crm_resource - Recursively check locations and constraints for prim10 in XML =#=#=#= Begin test: Check locations and constraints for prim11 =#=#=#= Colocations: - * prim13 (score=INFINITY, id=colocation-prim13-prim11-INFINITY + * prim13 (score=INFINITY, id=colocation-prim13-prim11-INFINITY) * Locations: prim11: * Locations: Colocations: - * prim12 (score=INFINITY, id=colocation-prim11-prim12-INFINITY + * prim12 (score=INFINITY, id=colocation-prim11-prim12-INFINITY) * Locations: =#=#=#= End test: Check locations and constraints for prim11 - OK (0) =#=#=#= * Passed: crm_resource - Check locations and constraints for prim11 =#=#=#= Begin test: Recursively check locations and constraints for prim11 =#=#=#= Colocations: - * prim13 (score=INFINITY, id=colocation-prim13-prim11-INFINITY + * prim13 (score=INFINITY, id=colocation-prim13-prim11-INFINITY) * Locations: prim11: * Locations: Colocations: - * prim12 (score=INFINITY, id=colocation-prim11-prim12-INFINITY + * prim12 (score=INFINITY, id=colocation-prim11-prim12-INFINITY) * Locations: =#=#=#= End test: Recursively check locations and constraints for prim11 - OK (0) =#=#=#= * Passed: crm_resource - Recursively check locations and constraints for prim11 @@ -4042,23 +4042,23 @@ Colocations: * Passed: crm_resource - Recursively check locations and constraints for prim11 in XML =#=#=#= Begin test: Check locations and constraints for prim12 =#=#=#= Colocations: - * prim11 (score=INFINITY, id=colocation-prim11-prim12-INFINITY + * prim11 (score=INFINITY, id=colocation-prim11-prim12-INFINITY) * Locations: prim12: * Locations: Colocations: - * prim13 (score=INFINITY, id=colocation-prim12-prim13-INFINITY + * prim13 (score=INFINITY, id=colocation-prim12-prim13-INFINITY) * Locations: =#=#=#= End test: Check locations and constraints for prim12 - OK (0) =#=#=#= * Passed: crm_resource - Check locations and constraints for prim12 =#=#=#= Begin test: Recursively check locations and constraints for prim12 =#=#=#= Colocations: - * prim11 (score=INFINITY, id=colocation-prim11-prim12-INFINITY + * prim11 (score=INFINITY, id=colocation-prim11-prim12-INFINITY) * Locations: prim12: * Locations: Colocations: - * prim13 (score=INFINITY, id=colocation-prim12-prim13-INFINITY + * prim13 (score=INFINITY, id=colocation-prim12-prim13-INFINITY) * Locations: =#=#=#= End test: Recursively check locations and constraints for prim12 - OK (0) =#=#=#= * Passed: crm_resource - Recursively check locations and constraints for prim12 @@ -4102,23 +4102,23 @@ Colocations: * Passed: crm_resource - Recursively check locations and constraints for prim12 in XML =#=#=#= Begin test: Check locations and constraints for prim13 =#=#=#= Colocations: - * prim12 (score=INFINITY, id=colocation-prim12-prim13-INFINITY + * prim12 (score=INFINITY, id=colocation-prim12-prim13-INFINITY) * Locations: prim13: * Locations: Colocations: - * prim11 (score=INFINITY, id=colocation-prim13-prim11-INFINITY + * prim11 (score=INFINITY, id=colocation-prim13-prim11-INFINITY) * Locations: =#=#=#= End test: Check locations and constraints for prim13 - OK (0) =#=#=#= * Passed: crm_resource - Check locations and constraints for prim13 =#=#=#= Begin test: Recursively check locations and constraints for prim13 =#=#=#= Colocations: - * prim12 (score=INFINITY, id=colocation-prim12-prim13-INFINITY + * prim12 (score=INFINITY, id=colocation-prim12-prim13-INFINITY) * Locations: prim13: * Locations: Colocations: - * prim11 (score=INFINITY, id=colocation-prim13-prim11-INFINITY + * prim11 (score=INFINITY, id=colocation-prim13-prim11-INFINITY) * Locations: =#=#=#= End test: Recursively check locations and constraints for prim13 - OK (0) =#=#=#= * Passed: crm_resource - Recursively check locations and constraints for prim13 @@ -4162,7 +4162,7 @@ Colocations: * Passed: crm_resource - Recursively check locations and constraints for prim13 in XML =#=#=#= Begin test: Check locations and constraints for group =#=#=#= Colocations: - * prim7 (score=INFINITY, id=colocation-prim7-group-INFINITY + * prim7 (score=INFINITY, id=colocation-prim7-group-INFINITY) * Locations: group: * Locations: @@ -4170,7 +4170,7 @@ group: * Passed: crm_resource - Check locations and constraints for group =#=#=#= Begin test: Recursively check locations and constraints for group =#=#=#= Colocations: - * prim7 (score=INFINITY, id=colocation-prim7-group-INFINITY + * prim7 (score=INFINITY, id=colocation-prim7-group-INFINITY) * Locations: group: * Locations: @@ -4208,7 +4208,7 @@ group: * Passed: crm_resource - Recursively check locations and constraints for group in XML =#=#=#= Begin test: Check locations and constraints for clone =#=#=#= Colocations: - * prim9 (score=INFINITY, id=colocation-prim9-clone-INFINITY + * prim9 (score=INFINITY, id=colocation-prim9-clone-INFINITY) * Locations: clone: * Locations: @@ -4216,7 +4216,7 @@ clone: * Passed: crm_resource - Check locations and constraints for clone =#=#=#= Begin test: Recursively check locations and constraints for clone =#=#=#= Colocations: - * prim9 (score=INFINITY, id=colocation-prim9-clone-INFINITY + * prim9 (score=INFINITY, id=colocation-prim9-clone-INFINITY) * Locations: clone: * Locations: diff --git a/lib/pacemaker/pcmk_output.c b/lib/pacemaker/pcmk_output.c index d3e93ca..8ff3e9d 100644 --- a/lib/pacemaker/pcmk_output.c +++ b/lib/pacemaker/pcmk_output.c @@ -46,6 +46,26 @@ pcmk__out_epilogue(pcmk__output_t *out, xmlNodePtr *xml, int retval) { pcmk__output_free(out); } +static char * +colocations_header(pe_resource_t *rsc, rsc_colocation_t *cons, + gboolean dependents) { + char *score = NULL; + char *retval = NULL; + + score = score2char(cons->score); + if (cons->role_rh > RSC_ROLE_STARTED) { + retval = crm_strdup_printf("%s (score=%s, %s role=%s, id=%s)", + rsc->id, score, dependents ? "needs" : "with", + role2text(cons->role_rh), cons->id); + } else { + retval = crm_strdup_printf("%s (score=%s, id=%s)", + rsc->id, score, cons->id); + } + + free(score); + return retval; +} + PCMK__OUTPUT_ARGS("colocations-list", "pe_resource_t *", "gboolean", "gboolean") static int colocations_list(pcmk__output_t *out, va_list args) { pe_resource_t *rsc = va_arg(args, pe_resource_t *); @@ -67,9 +87,8 @@ static int colocations_list(pcmk__output_t *out, va_list args) { pe__set_resource_flags(rsc, pe_rsc_allocating); for (lpc = list; lpc != NULL; lpc = lpc->next) { rsc_colocation_t *cons = (rsc_colocation_t *) lpc->data; - - char *score = NULL; pe_resource_t *peer = cons->rsc_rh; + char *hdr = NULL; if (dependents) { peer = cons->rsc_lh; @@ -101,17 +120,10 @@ static int colocations_list(pcmk__output_t *out, va_list args) { printed_header = true; } - score = score2char(cons->score); - if (cons->role_rh > RSC_ROLE_STARTED) { - out->list_item(out, NULL, "%s (score=%s, %s role=%s, id=%s", - peer->id, score, dependents ? "needs" : "with", - role2text(cons->role_rh), cons->id); - } else { - out->list_item(out, NULL, "%s (score=%s, id=%s", - peer->id, score, cons->id); - } + hdr = colocations_header(peer, cons, dependents); + out->list_item(out, NULL, "%s", hdr); + free(hdr); - free(score); out->message(out, "locations-list", peer); if (!dependents && recursive) {