From c3024ba44b898eed61b129c417c33c120cbbba97 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Feb 24 2021 16:08:53 +0000 Subject: API: libpe_status: deprecate pe_resource_t parameters member Instead, pe_rsc_params() should be used. Also, define the parameters member using such a pe_rsc_params() call. --- diff --git a/include/crm/pengine/pe_types.h b/include/crm/pengine/pe_types.h index 5529714..1416cee 100644 --- a/include/crm/pengine/pe_types.h +++ b/include/crm/pengine/pe_types.h @@ -358,7 +358,7 @@ struct pe_resource_s { enum rsc_role_e next_role; GHashTable *meta; - GHashTable *parameters; + GHashTable *parameters; //! \deprecated Use pe_rsc_params() instead GHashTable *utilization; GListPtr children; /* pe_resource_t* */ diff --git a/lib/pengine/complex.c b/lib/pengine/complex.c index fad8fe2..cfb06bf 100644 --- a/lib/pengine/complex.c +++ b/lib/pengine/complex.c @@ -510,8 +510,6 @@ common_unpack(xmlNode * xml_obj, pe_resource_t ** rsc, return FALSE; } - (*rsc)->parameters = crm_str_table_new(); - #if ENABLE_VERSIONED_ATTRS (*rsc)->versioned_parameters = create_xml_node(NULL, XML_TAG_RSC_VER_ATTRS); #endif @@ -537,7 +535,7 @@ common_unpack(xmlNode * xml_obj, pe_resource_t ** rsc, pe_rsc_trace((*rsc), "Unpacking resource..."); get_meta_attributes((*rsc)->meta, *rsc, NULL, data_set); - get_rsc_attributes((*rsc)->parameters, *rsc, NULL, data_set); + (*rsc)->parameters = pe_rsc_params(*rsc, NULL, data_set); // \deprecated #if ENABLE_VERSIONED_ATTRS pe_get_versioned_attributes((*rsc)->versioned_parameters, *rsc, NULL, data_set); #endif @@ -761,7 +759,15 @@ common_unpack(xmlNode * xml_obj, pe_resource_t ** rsc, } if (remote_node) { - value = g_hash_table_lookup((*rsc)->parameters, XML_REMOTE_ATTR_RECONNECT_INTERVAL); + GHashTable *params = pe_rsc_params(*rsc, NULL, data_set); + + /* Grabbing the value now means that any rules based on node attributes + * will evaluate to false, so such rules should not be used with + * reconnect_interval. + * + * @TODO Evaluate per node before using + */ + value = g_hash_table_lookup(params, XML_REMOTE_ATTR_RECONNECT_INTERVAL); if (value) { /* reconnect delay works by setting failure_timeout and preventing the * connection from starting until the failure is cleared. */ @@ -875,9 +881,6 @@ common_free(pe_resource_t * rsc) g_list_free(rsc->rsc_tickets); g_list_free(rsc->dangling_migrations); - if (rsc->parameters != NULL) { - g_hash_table_destroy(rsc->parameters); - } if (rsc->parameter_cache != NULL) { g_hash_table_destroy(rsc->parameter_cache); }