From 9853f4d05a376062d60f2e4c90938e587992237b Mon Sep 17 00:00:00 2001 From: Chris Lumens Date: Mon, 27 Jun 2022 12:06:24 -0400 Subject: [PATCH 1/2] Fix: tools: Don't output "(null)" in crm_attribute's quiet mode. If the attribute queried for has no value, simply do not output anything. Regression in 2.1.3 introduced by 8c03553bbf Fixes T502 See: rhbz#2099331 --- tools/crm_attribute.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/crm_attribute.c b/tools/crm_attribute.c index 0bd9dee81..b1463f906 100644 --- a/tools/crm_attribute.c +++ b/tools/crm_attribute.c @@ -56,7 +56,9 @@ attribute_text(pcmk__output_t *out, va_list args) char *host G_GNUC_UNUSED = va_arg(args, char *); if (out->quiet) { - pcmk__formatted_printf(out, "%s\n", value); + if (value != NULL) { + pcmk__formatted_printf(out, "%s\n", value); + } } else { out->info(out, "%s%s %s%s %s%s value=%s", scope ? "scope=" : "", scope ? scope : "", -- 2.31.1 From 16d00a9b3ef27afd09f5c046ea1be50fc664ed84 Mon Sep 17 00:00:00 2001 From: Chris Lumens Date: Mon, 27 Jun 2022 12:18:06 -0400 Subject: [PATCH 2/2] Test: cts: Add a test for querying an attribute that does not exist. --- cts/cli/regression.tools.exp | 4 ++++ cts/cts-cli.in | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/cts/cli/regression.tools.exp b/cts/cli/regression.tools.exp index 0d1cfa2ab..464472d42 100644 --- a/cts/cli/regression.tools.exp +++ b/cts/cli/regression.tools.exp @@ -24,6 +24,10 @@ A new shadow instance was created. To begin using it paste the following into y =#=#=#= End test: Validate CIB - OK (0) =#=#=#= * Passed: cibadmin - Validate CIB +=#=#=#= Begin test: Query the value of an attribute that does not exist =#=#=#= +crm_attribute: Error performing operation: No such device or address +=#=#=#= End test: Query the value of an attribute that does not exist - No such object (105) =#=#=#= +* Passed: crm_attribute - Query the value of an attribute that does not exist =#=#=#= Begin test: Configure something before erasing =#=#=#= =#=#=#= Current cib after: Configure something before erasing =#=#=#= diff --git a/cts/cts-cli.in b/cts/cts-cli.in index 8565c485a..b895d36ec 100755 --- a/cts/cts-cli.in +++ b/cts/cts-cli.in @@ -511,6 +511,10 @@ function test_tools() { cmd="cibadmin -Q" test_assert $CRM_EX_OK + desc="Query the value of an attribute that does not exist" + cmd="crm_attribute -n ABCD --query --quiet" + test_assert $CRM_EX_NOSUCH 0 + desc="Configure something before erasing" cmd="crm_attribute -n cluster-delay -v 60s" test_assert $CRM_EX_OK @@ -1980,6 +1984,7 @@ for t in $tests; do -e 's/ end=\"[0-9][-+: 0-9]*Z*\"/ end=\"\"/' \ -e 's/ start=\"[0-9][-+: 0-9]*Z*\"/ start=\"\"/' \ -e 's/^Error checking rule: Device not configured/Error checking rule: No such device or address/' \ + -e 's/Error performing operation: Device not configured/Error performing operation: No such device or address/' \ -e 's/\(Injecting attribute last-failure-ping#monitor_10000=\)[0-9]*/\1/' \ -e 's/^lt-//' \ -e 's/ocf::/ocf:/' \ -- 2.31.1