From 46341ff662def89dd5e04f417ff37e47da739653 Mon Sep 17 00:00:00 2001 From: Chris Lumens Date: Jan 22 2021 12:12:31 +0000 Subject: Refactor: scheduler: Expose native_output_string as pcmk__native_output_string. The plan is that this function can be used to help build the string that is output for each line of "crm_resource -o" output. It appears that output only happens for primitive resources. However, I've added a check at the beginning just in case it's called for some other type of resource. patch_name: 004-feature-set.patch present_in_specfile: true location_in_specfile: 4 squash_commits: true --- diff --git a/include/crm/pengine/internal.h b/include/crm/pengine/internal.h index abe7a76..d658e86 100644 --- a/include/crm/pengine/internal.h +++ b/include/crm/pengine/internal.h @@ -243,6 +243,9 @@ void clone_print(pe_resource_t * rsc, const char *pre_text, long options, void * void pe__print_bundle(pe_resource_t *rsc, const char *pre_text, long options, void *print_data); +gchar * pcmk__native_output_string(pe_resource_t *rsc, const char *name, pe_node_t *node, + long options, const char *target_role, bool show_nodes); + int pe__name_and_nvpairs_xml(pcmk__output_t *out, bool is_list, const char *tag_name , size_t pairs_count, ...); char *pe__node_display_name(pe_node_t *node, bool print_detail); diff --git a/lib/pengine/native.c b/lib/pengine/native.c index 8f0c5c9..bf1f5c0 100644 --- a/lib/pengine/native.c +++ b/lib/pengine/native.c @@ -570,17 +570,21 @@ add_output_node(GString *s, const char *node, bool have_nodes) * \return Newly allocated string description of resource * \note Caller must free the result with g_free(). */ -static gchar * -native_output_string(pe_resource_t *rsc, const char *name, pe_node_t *node, - long options, const char *target_role, bool show_nodes) +gchar * +pcmk__native_output_string(pe_resource_t *rsc, const char *name, pe_node_t *node, + long options, const char *target_role, bool show_nodes) { const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); const char *provider = NULL; const char *kind = crm_element_value(rsc->xml, XML_ATTR_TYPE); - char *retval = NULL; + gchar *retval = NULL; GString *outstr = NULL; bool have_flags = false; + if (rsc->variant != pe_native) { + return NULL; + } + CRM_CHECK(name != NULL, name = "unknown"); CRM_CHECK(kind != NULL, kind = "unknown"); CRM_CHECK(class != NULL, class = "unknown"); @@ -758,8 +762,8 @@ pe__common_output_html(pcmk__output_t *out, pe_resource_t * rsc, } { - gchar *s = native_output_string(rsc, name, node, options, target_role, - true); + gchar *s = pcmk__native_output_string(rsc, name, node, options, + target_role, true); list_node = pcmk__output_create_html_node(out, "li", NULL, NULL, NULL); pcmk_create_html_node(list_node, "span", NULL, cl, s); @@ -826,8 +830,8 @@ pe__common_output_text(pcmk__output_t *out, pe_resource_t * rsc, } { - gchar *s = native_output_string(rsc, name, node, options, target_role, - true); + gchar *s = pcmk__native_output_string(rsc, name, node, options, + target_role, true); out->list_item(out, NULL, "%s", s); g_free(s); @@ -923,8 +927,8 @@ common_print(pe_resource_t * rsc, const char *pre_text, const char *name, pe_nod } { - gchar *resource_s = native_output_string(rsc, name, node, options, - target_role, false); + gchar *resource_s = pcmk__native_output_string(rsc, name, node, options, + target_role, false); status_print("%s%s", (pre_text? pre_text : ""), resource_s); g_free(resource_s); }