File pacemaker-lrmd-pengine-dont-support-versioned-attributes-by-default.patch of Package pacemaker
commit f049588fe0f51d018df3fbd54a38669fe3d7a60a
Author: Ken Gaillot <kgaillot@redhat.com>
Date: Mon May 8 10:34:45 2017 -0500
Feature: lrmd,pengine: don't support versioned attributes by default
not ready for release
Index: pacemaker-1.1.16+20170320.77ea74d/crmd/lrm.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/crmd/lrm.c
+++ pacemaker-1.1.16+20170320.77ea74d/crmd/lrm.c
@@ -641,6 +641,7 @@ build_parameter_list(lrmd_event_data_t *
value = g_hash_table_lookup(op->params, name);
if(value != NULL) {
+#ifdef ENABLE_VERSIONED_ATTRS
char *summary = crm_versioned_param_summary(op->versioned_params, name);
if (summary) {
@@ -648,9 +649,12 @@ build_parameter_list(lrmd_event_data_t *
crm_xml_add(result, name, summary);
free(summary);
} else {
+#endif
crm_trace("Adding attr %s=%s to the xml result", name, value);
crm_xml_add(result, name, value);
+#ifdef ENABLE_VERSIONED_ATTRS
}
+#endif
}
}
}
@@ -1860,7 +1864,9 @@ construct_op(lrm_state_t * lrm_state, xm
const char *op_timeout = NULL;
const char *op_interval = NULL;
GHashTable *params = NULL;
+#ifdef ENABLE_VERSIONED_ATTRS
xmlNode *versioned_params = NULL;
+#endif
const char *transition = NULL;
@@ -1895,6 +1901,7 @@ construct_op(lrm_state_t * lrm_state, xm
params = xml2list(rsc_op);
g_hash_table_remove(params, CRM_META "_op_target_rc");
+#ifdef ENABLE_VERSIONED_ATTRS
if (!is_remote_lrmd_ra(NULL, NULL, rsc_id)) {
xmlNode *ptr = first_named_child(rsc_op, XML_TAG_VER_ATTRS);
@@ -1903,6 +1910,7 @@ construct_op(lrm_state_t * lrm_state, xm
versioned_params = copy_xml(ptr);
}
}
+#endif
op_delay = crm_meta_value(params, XML_OP_ATTR_START_DELAY);
op_timeout = crm_meta_value(params, XML_ATTR_TIMEOUT);
@@ -1914,7 +1922,9 @@ construct_op(lrm_state_t * lrm_state, xm
if (safe_str_neq(operation, RSC_STOP)) {
op->params = params;
+#ifdef ENABLE_VERSIONED_ATTRS
op->versioned_params = versioned_params;
+#endif
} else {
rsc_history_t *entry = g_hash_table_lookup(lrm_state->resource_history, rsc_id);
@@ -1923,7 +1933,9 @@ construct_op(lrm_state_t * lrm_state, xm
* whatever we are given */
if (!entry || !entry->stop_params) {
op->params = params;
+#ifdef ENABLE_VERSIONED_ATTRS
op->versioned_params = versioned_params;
+#endif
} else {
/* Copy the cached parameter list so that we stop the resource
* with the old attributes, not the new ones */
@@ -1934,12 +1946,15 @@ construct_op(lrm_state_t * lrm_state, xm
g_hash_table_foreach(entry->stop_params, copy_instance_keys, op->params);
g_hash_table_destroy(params);
params = NULL;
+#ifdef ENABLE_VERSIONED_ATTRS
op->versioned_params = NULL;
free_xml(versioned_params);
+#endif
}
}
+#ifdef ENABLE_VERSIONED_ATTRS
if (op->versioned_params) {
char *versioned_params_text = dump_xml_unformatted(op->versioned_params);
@@ -1947,6 +1962,7 @@ construct_op(lrm_state_t * lrm_state, xm
g_hash_table_insert(op->params, strdup("#" XML_TAG_VER_ATTRS), versioned_params_text);
}
}
+#endif
/* sanity */
if (op->interval < 0) {
Index: pacemaker-1.1.16+20170320.77ea74d/include/crm/lrmd.h
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/include/crm/lrmd.h
+++ pacemaker-1.1.16+20170320.77ea74d/include/crm/lrmd.h
@@ -186,6 +186,10 @@ enum lrmd_callback_event {
/* *INDENT-ON* */
+#ifdef ENABLE_VERSIONED_ATTRS
+#include <libxml/tree.h>
+#endif
+
typedef struct lrmd_event_data_s {
/*! Type of event, register, unregister, call_completed... */
enum lrmd_callback_event type;
@@ -238,9 +242,11 @@ typedef struct lrmd_event_data_s {
/*! exit failure reason string from resource agent operation */
const char *exit_reason;
+#ifdef ENABLE_VERSIONED_ATTRS
/* This is an xmlNode containing the versioned parameters
* that should be evaluated */
xmlNode *versioned_params;
+#endif
} lrmd_event_data_t;
Index: pacemaker-1.1.16+20170320.77ea74d/include/crm/msg_xml.h
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/include/crm/msg_xml.h
+++ pacemaker-1.1.16+20170320.77ea74d/include/crm/msg_xml.h
@@ -177,7 +177,9 @@
# define XML_TAG_ATTR_SETS "instance_attributes"
# define XML_TAG_META_SETS "meta_attributes"
# define XML_TAG_ATTRS "attributes"
+#ifdef ENABLE_VERSIONED_ATTRS
# define XML_TAG_VER_ATTRS "versioned_attributes"
+#endif
# define XML_TAG_PARAMS "parameters"
# define XML_TAG_PARAM "param"
# define XML_TAG_UTILIZATION "utilization"
Index: pacemaker-1.1.16+20170320.77ea74d/include/crm/pengine/complex.h
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/include/crm/pengine/complex.h
+++ pacemaker-1.1.16+20170320.77ea74d/include/crm/pengine/complex.h
@@ -56,8 +56,10 @@ void get_meta_attributes(GHashTable * me
void get_rsc_attributes(GHashTable * meta_hash, resource_t * rsc, node_t * node,
pe_working_set_t * data_set);
+#ifdef ENABLE_VERSIONED_ATTRS
void pe_get_versioned_attributes(xmlNode * meta_hash, resource_t * rsc, node_t * node,
pe_working_set_t * data_set);
+#endif
typedef struct resource_alloc_functions_s resource_alloc_functions_t;
Index: pacemaker-1.1.16+20170320.77ea74d/include/crm/pengine/rules.h
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/include/crm/pengine/rules.h
+++ pacemaker-1.1.16+20170320.77ea74d/include/crm/pengine/rules.h
@@ -31,7 +31,9 @@ enum expression_type {
loc_expr,
role_expr,
time_expr,
+#ifdef ENABLE_VERSIONED_ATTRS
version_expr
+#endif
};
typedef struct pe_re_match_data {
@@ -59,8 +61,10 @@ void unpack_instance_attributes(xmlNode
GHashTable * node_hash, GHashTable * hash,
const char *always_first, gboolean overwrite, crm_time_t * now);
+#ifdef ENABLE_VERSIONED_ATTRS
void pe_unpack_versioned_attributes(xmlNode * top, xmlNode * xml_obj, const char *set_name,
GHashTable * node_hash, xmlNode * hash, crm_time_t * now);
+#endif
char *pe_expand_re_matches(const char *string, pe_re_match_data_t * match_data);
Index: pacemaker-1.1.16+20170320.77ea74d/include/crm/pengine/status.h
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/include/crm/pengine/status.h
+++ pacemaker-1.1.16+20170320.77ea74d/include/crm/pengine/status.h
@@ -305,8 +305,10 @@ struct resource_s {
int remote_reconnect_interval;
pe_working_set_t *cluster;
+#ifdef ENABLE_VERSIONED_ATTRS
xmlNode *versioned_parameters;
+#endif
};
struct pe_action_s {
Index: pacemaker-1.1.16+20170320.77ea74d/include/crm_internal.h
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/include/crm_internal.h
+++ pacemaker-1.1.16+20170320.77ea74d/include/crm_internal.h
@@ -378,6 +378,8 @@ void remote_proxy_end_session(const char
void remote_proxy_free(gpointer data);
int remote_proxy_check(lrmd_t * lrmd, GHashTable *hash);
+#ifdef ENABLE_VERSIONED_ATTRS
char* crm_versioned_param_summary(xmlNode *versioned_params, const char *name);
void crm_summarize_versioned_params(xmlNode *param_set, xmlNode *versioned_params);
+#endif
#endif /* CRM_INTERNAL__H */
Index: pacemaker-1.1.16+20170320.77ea74d/lib/common/digest.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lib/common/digest.c
+++ pacemaker-1.1.16+20170320.77ea74d/lib/common/digest.c
@@ -242,6 +242,7 @@ crm_digest_verify(xmlNode *input, const
return passed;
}
+#ifdef ENABLE_VERSIONED_ATTRS
char*
crm_versioned_param_summary(xmlNode *versioned_params, const char *name)
{
@@ -307,3 +308,4 @@ crm_summarize_versioned_params(xmlNode *
}
}
}
+#endif
Index: pacemaker-1.1.16+20170320.77ea74d/lib/common/utils.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lib/common/utils.c
+++ pacemaker-1.1.16+20170320.77ea74d/lib/common/utils.c
@@ -1564,7 +1564,9 @@ append_digest(lrmd_event_data_t * op, xm
args_xml = create_xml_node(NULL, XML_TAG_PARAMS);
g_hash_table_foreach(op->params, hash2field, args_xml);
filter_action_parameters(args_xml, version);
+#ifdef ENABLE_VERSIONED_ATTRS
crm_summarize_versioned_params(args_xml, op->versioned_params);
+#endif
digest = calculate_operation_digest(args_xml, version);
#if 0
Index: pacemaker-1.1.16+20170320.77ea74d/lib/lrmd/lrmd_client.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lib/lrmd/lrmd_client.c
+++ pacemaker-1.1.16+20170320.77ea74d/lib/lrmd/lrmd_client.c
@@ -220,9 +220,11 @@ lrmd_copy_event(lrmd_event_data_t * even
}
}
+#ifdef ENABLE_VERSIONED_ATTRS
if (event->versioned_params) {
copy->versioned_params = copy_xml(event->versioned_params);
}
+#endif
return copy;
}
@@ -244,9 +246,11 @@ lrmd_free_event(lrmd_event_data_t * even
if (event->params) {
g_hash_table_destroy(event->params);
}
+#ifdef ENABLE_VERSIONED_ATTRS
if (event->versioned_params) {
free_xml(event->versioned_params);
}
+#endif
free(event);
}
@@ -297,7 +301,9 @@ lrmd_dispatch_internal(lrmd_t * lrmd, xm
event.type = lrmd_event_exec_complete;
event.params = xml2list(msg);
+#ifdef ENABLE_VERSIONED_ATTRS
event.versioned_params = first_named_child(msg, XML_TAG_VER_ATTRS);
+#endif
} else if (crm_str_eq(type, LRMD_OP_NEW_CLIENT, TRUE)) {
event.type = lrmd_event_new_client;
} else if (crm_str_eq(type, LRMD_OP_POKE, TRUE)) {
@@ -1999,7 +2005,9 @@ lrmd_api_exec(lrmd_t * lrmd, const char
xmlNode *data = create_xml_node(NULL, F_LRMD_RSC);
xmlNode *args = create_xml_node(data, XML_TAG_ATTRS);
lrmd_key_value_t *tmp = NULL;
+#ifdef ENABLE_VERSIONED_ATTRS
const char *versioned_args_key = "#" XML_TAG_VER_ATTRS;
+#endif
crm_xml_add(data, F_LRMD_ORIGIN, __FUNCTION__);
crm_xml_add(data, F_LRMD_RSC_ID, rsc_id);
@@ -2010,6 +2018,7 @@ lrmd_api_exec(lrmd_t * lrmd, const char
crm_xml_add_int(data, F_LRMD_RSC_START_DELAY, start_delay);
for (tmp = params; tmp; tmp = tmp->next) {
+#ifdef ENABLE_VERSIONED_ATTRS
if (safe_str_eq(tmp->key, versioned_args_key)) {
xmlNode *versioned_args = string2xml(tmp->value);
@@ -2017,8 +2026,11 @@ lrmd_api_exec(lrmd_t * lrmd, const char
add_node_nocopy(data, NULL, versioned_args);
}
} else {
+#endif
hash2smartfield((gpointer) tmp->key, (gpointer) tmp->value, args);
+#ifdef ENABLE_VERSIONED_ATTRS
}
+#endif
}
rc = lrmd_send_command(lrmd, LRMD_OP_RSC_EXEC, data, NULL, timeout, options, TRUE);
Index: pacemaker-1.1.16+20170320.77ea74d/lib/pengine/complex.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lib/pengine/complex.c
+++ pacemaker-1.1.16+20170320.77ea74d/lib/pengine/complex.c
@@ -173,6 +173,7 @@ get_rsc_attributes(GHashTable * meta_has
}
}
+#ifdef ENABLE_VERSIONED_ATTRS
void
pe_get_versioned_attributes(xmlNode * meta_hash, resource_t * rsc,
node_t * node, pe_working_set_t * data_set)
@@ -196,6 +197,7 @@ pe_get_versioned_attributes(xmlNode * me
node_hash, meta_hash, data_set->now);
}
}
+#endif
static char *
template_op_key(xmlNode * op)
@@ -414,6 +416,7 @@ common_unpack(xmlNode * xml_obj, resourc
const char *id = crm_element_value(xml_obj, XML_ATTR_ID);
int container_remote_node = 0;
int baremetal_remote_node = 0;
+ bool has_versioned_params = FALSE;
crm_log_xml_trace(xml_obj, "Processing resource input...");
@@ -461,7 +464,9 @@ common_unpack(xmlNode * xml_obj, resourc
(*rsc)->parameters =
g_hash_table_new_full(crm_str_hash, g_str_equal, g_hash_destroy_str, g_hash_destroy_str);
+#ifdef ENABLE_VERSIONED_ATTRS
(*rsc)->versioned_parameters = create_xml_node(NULL, XML_TAG_VER_ATTRS);
+#endif
(*rsc)->meta =
g_hash_table_new_full(crm_str_hash, g_str_equal, g_hash_destroy_str, g_hash_destroy_str);
@@ -485,7 +490,9 @@ common_unpack(xmlNode * xml_obj, resourc
get_meta_attributes((*rsc)->meta, *rsc, NULL, data_set);
get_rsc_attributes((*rsc)->parameters, *rsc, NULL, data_set);
+#ifdef ENABLE_VERSIONED_ATTRS
pe_get_versioned_attributes((*rsc)->versioned_parameters, *rsc, NULL, data_set);
+#endif
(*rsc)->flags = 0;
set_bit((*rsc)->flags, pe_rsc_runnable);
@@ -524,12 +531,14 @@ common_unpack(xmlNode * xml_obj, resourc
}
value = g_hash_table_lookup((*rsc)->meta, XML_OP_ATTR_ALLOW_MIGRATE);
- if (crm_is_true(value) && xml_has_children((*rsc)->versioned_parameters)) {
+#ifdef ENABLE_VERSIONED_ATTRS
+ has_versioned_params = xml_has_children((*rsc)->versioned_parameters);
+#endif
+ if (crm_is_true(value) && has_versioned_params) {
pe_rsc_trace((*rsc), "Migration is disabled for resources with versioned parameters");
} else if (crm_is_true(value)) {
set_bit((*rsc)->flags, pe_rsc_allow_migrate);
- } else if (value == NULL && baremetal_remote_node &&
- !xml_has_children((*rsc)->versioned_parameters)) {
+ } else if ((value == NULL) && baremetal_remote_node && !has_versioned_params) {
/* by default, we want baremetal remote-nodes to be able
* to float around the cluster without having to stop all the
* resources within the remote-node before moving. Allowing
@@ -839,9 +848,11 @@ common_free(resource_t * rsc)
if (rsc->parameters != NULL) {
g_hash_table_destroy(rsc->parameters);
}
+#ifdef ENABLE_VERSIONED_ATTRS
if (rsc->versioned_parameters != NULL) {
free_xml(rsc->versioned_parameters);
}
+#endif
if (rsc->meta != NULL) {
g_hash_table_destroy(rsc->meta);
}
Index: pacemaker-1.1.16+20170320.77ea74d/lib/pengine/rules.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lib/pengine/rules.c
+++ pacemaker-1.1.16+20170320.77ea74d/lib/pengine/rules.c
@@ -138,6 +138,7 @@ pe_test_expression_re(xmlNode * expr, GH
accept = test_role_expression(expr, role, now);
break;
+#ifdef ENABLE_VERSIONED_ATTRS
case version_expr:
if (node_hash &&
g_hash_table_lookup_extended(node_hash, "#ra-version", NULL, NULL)) {
@@ -147,6 +148,7 @@ pe_test_expression_re(xmlNode * expr, GH
accept = TRUE;
}
break;
+#endif
default:
CRM_CHECK(FALSE /* bad type */ , return FALSE);
@@ -185,8 +187,10 @@ find_expression_type(xmlNode * expr)
} else if (safe_str_eq(attr, "#role")) {
return role_expr;
+#ifdef ENABLE_VERSIONED_ATTRS
} else if (safe_str_eq(attr, "#ra-version")) {
return version_expr;
+#endif
}
return attr_expr;
@@ -711,6 +715,7 @@ populate_hash(xmlNode * nvpair_list, GHa
}
}
+#ifdef ENABLE_VERSIONED_ATTRS
static xmlNode*
get_versioned_rule(xmlNode * attr_set)
{
@@ -798,6 +803,7 @@ add_versioned_attributes(xmlNode * attr_
add_node_nocopy(versioned_attrs, NULL, attr_set_copy);
}
+#endif
typedef struct unpack_data_s {
gboolean overwrite;
@@ -817,16 +823,19 @@ unpack_attr_set(gpointer data, gpointer
return;
}
+#ifdef ENABLE_VERSIONED_ATTRS
if (get_versioned_rule(pair->attr_set) && !(unpack_data->node_hash &&
g_hash_table_lookup_extended(unpack_data->node_hash, "#ra-version", NULL, NULL))) {
// we haven't actually tested versioned expressions yet
return;
}
+#endif
crm_trace("Adding attributes from %s", pair->name);
populate_hash(pair->attr_set, unpack_data->hash, unpack_data->overwrite, unpack_data->top);
}
+#ifdef ENABLE_VERSIONED_ATTRS
static void
unpack_versioned_attr_set(gpointer data, gpointer user_data)
{
@@ -839,6 +848,7 @@ unpack_versioned_attr_set(gpointer data,
add_versioned_attributes(pair->attr_set, unpack_data->hash);
}
+#endif
static GListPtr
make_pairs_and_populate_data(xmlNode * top, xmlNode * xml_obj, const char *set_name,
@@ -907,6 +917,7 @@ unpack_instance_attributes(xmlNode * top
}
}
+#ifdef ENABLE_VERSIONED_ATTRS
void
pe_unpack_versioned_attributes(xmlNode * top, xmlNode * xml_obj, const char *set_name,
GHashTable * node_hash, xmlNode * hash, crm_time_t * now)
@@ -920,6 +931,7 @@ pe_unpack_versioned_attributes(xmlNode *
g_list_free_full(pairs, free);
}
}
+#endif
char *
pe_expand_re_matches(const char *string, pe_re_match_data_t *match_data)
Index: pacemaker-1.1.16+20170320.77ea74d/lib/pengine/utils.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lib/pengine/utils.c
+++ pacemaker-1.1.16+20170320.77ea74d/lib/pengine/utils.c
@@ -1681,7 +1681,9 @@ rsc_action_digest_cmp(resource_t * rsc,
op_digest_cache_t *data = NULL;
GHashTable *local_rsc_params = NULL;
+#ifdef ENABLE_VERSIONED_ATTRS
xmlNode *local_versioned_params = NULL;
+#endif
action_t *action = NULL;
char *key = NULL;
@@ -1720,16 +1722,20 @@ rsc_action_digest_cmp(resource_t * rsc,
local_rsc_params = g_hash_table_new_full(crm_str_hash, g_str_equal,
g_hash_destroy_str, g_hash_destroy_str);
get_rsc_attributes(local_rsc_params, rsc, node, data_set);
+#ifdef ENABLE_VERSIONED_ATTRS
local_versioned_params = create_xml_node(NULL, XML_TAG_VER_ATTRS);
pe_get_versioned_attributes(local_versioned_params, rsc, node, data_set);
+#endif
data->params_all = create_xml_node(NULL, XML_TAG_PARAMS);
g_hash_table_foreach(local_rsc_params, hash2field, data->params_all);
g_hash_table_foreach(action->extra, hash2field, data->params_all);
g_hash_table_foreach(rsc->parameters, hash2field, data->params_all);
g_hash_table_foreach(action->meta, hash2metafield, data->params_all);
filter_action_parameters(data->params_all, op_version);
+#ifdef ENABLE_VERSIONED_ATTRS
crm_summarize_versioned_params(data->params_all, rsc->versioned_parameters);
crm_summarize_versioned_params(data->params_all, local_versioned_params);
+#endif
data->digest_all_calc = calculate_operation_digest(data->params_all, op_version);
@@ -1765,7 +1771,9 @@ rsc_action_digest_cmp(resource_t * rsc,
g_hash_table_insert(node->details->digest_cache, strdup(op_id), data);
g_hash_table_destroy(local_rsc_params);
+#ifdef ENABLE_VERSIONED_ATTRS
free_xml(local_versioned_params);
+#endif
pe_free_action(action);
return data;
Index: pacemaker-1.1.16+20170320.77ea74d/lrmd/lrmd.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lrmd/lrmd.c
+++ pacemaker-1.1.16+20170320.77ea74d/lrmd/lrmd.c
@@ -28,7 +28,9 @@
#include <crm/common/ipc.h>
#include <crm/common/ipcs.h>
#include <crm/msg_xml.h>
+#ifdef ENABLE_VERSIONED_ATTRS
#include <crm/pengine/rules.h>
+#endif
#include <lrmd_private.h>
@@ -39,8 +41,10 @@
#define EXIT_REASON_MAX_LEN 128
GHashTable *rsc_list = NULL;
+#ifdef ENABLE_VERSIONED_ATTRS
regex_t *version_format_regex = NULL;
GHashTable *ra_version_hash = NULL;
+#endif
typedef struct lrmd_cmd_s {
int timeout;
@@ -171,6 +175,7 @@ dup_attr(gpointer key, gpointer value, g
g_hash_table_replace(user_data, strdup(key), strdup(value));
}
+#ifdef ENABLE_VERSIONED_ATTRS
static gboolean
valid_version_format(const char *version)
{
@@ -255,6 +260,7 @@ get_ra_version(const char *class, const
return version;
}
+#endif
static lrmd_cmd_t *
create_lrmd_cmd(xmlNode * msg, crm_client_t * client, lrmd_rsc_t *rsc)
@@ -282,6 +288,7 @@ create_lrmd_cmd(xmlNode * msg, crm_clien
cmd->params = xml2list(rsc_xml);
+#ifdef ENABLE_VERSIONED_ATTRS
cmd->versioned_attrs = first_named_child(rsc_xml, XML_TAG_VER_ATTRS);
if (cmd->versioned_attrs) {
@@ -297,6 +304,7 @@ create_lrmd_cmd(xmlNode * msg, crm_clien
g_hash_table_destroy(node_hash);
g_hash_table_destroy(hash);
}
+#endif
cmd->isolation_wrapper = g_hash_table_lookup(cmd->params, "CRM_meta_isolation_wrapper");
@@ -330,9 +338,11 @@ free_lrmd_cmd(lrmd_cmd_t * cmd)
if (cmd->params) {
g_hash_table_destroy(cmd->params);
}
+#ifdef ENABLE_VERSIONED_ATTRS
if (cmd->versioned_attrs) {
free_xml(cmd->versioned_attrs);
}
+#endif
free(cmd->origin);
free(cmd->action);
free(cmd->real_action);
@@ -650,11 +660,13 @@ send_cmd_complete_notify(lrmd_cmd_t * cm
hash2smartfield((gpointer) key, (gpointer) value, args);
}
}
+#ifdef ENABLE_VERSIONED_ATTRS
if (cmd->versioned_attrs) {
add_node_copy(notify, cmd->versioned_attrs);
}
+#endif
if (cmd->client_id && (cmd->call_opts & lrmd_opt_notify_orig_only)) {
crm_client_t *client = crm_client_get_by_id(cmd->client_id);
Index: pacemaker-1.1.16+20170320.77ea74d/lrmd/lrmd_private.h
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lrmd/lrmd_private.h
+++ pacemaker-1.1.16+20170320.77ea74d/lrmd/lrmd_private.h
@@ -21,7 +21,9 @@
# define LRMD_PVT__H
# include <glib.h>
+#ifdef ENABLE_VERSIONED_ATTRS
# include <regex.h>
+#endif
# include <crm/common/ipcs.h>
# include <crm/lrmd.h>
# include <crm/stonith-ng.h>
@@ -34,8 +36,10 @@
#define LRMD_ISOLATION_PROVIDER ".isolation"
GHashTable *rsc_list;
+#ifdef ENABLE_VERSIONED_ATTRS
extern regex_t *version_format_regex;
extern GHashTable *ra_version_hash;
+#endif
typedef struct lrmd_rsc_s {
char *rsc_id;
Index: pacemaker-1.1.16+20170320.77ea74d/lrmd/main.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lrmd/main.c
+++ pacemaker-1.1.16+20170320.77ea74d/lrmd/main.c
@@ -285,6 +285,7 @@ lrmd_exit(gpointer data)
if (ipcs) {
mainloop_del_ipc_server(ipcs);
}
+#ifdef ENABLE_VERSIONED_ATTRS
if (version_format_regex) {
regfree(version_format_regex);
free(version_format_regex);
@@ -292,6 +293,7 @@ lrmd_exit(gpointer data)
if (ra_version_hash) {
g_hash_table_destroy(ra_version_hash);
}
+#endif
#ifdef ENABLE_PCMK_REMOTE
lrmd_tls_server_destroy();
Index: pacemaker-1.1.16+20170320.77ea74d/pengine/graph.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/pengine/graph.c
+++ pacemaker-1.1.16+20170320.77ea74d/pengine/graph.c
@@ -1095,24 +1095,32 @@ action2xml(action_t * action, gboolean a
g_hash_table_foreach(action->extra, hash2field, args_xml);
if (action->rsc != NULL && action->node) {
GHashTable *p = g_hash_table_new_full(crm_str_hash, g_str_equal, g_hash_destroy_str, g_hash_destroy_str);
+#ifdef ENABLE_VERSIONED_ATTRS
xmlNode *versioned_parameters = create_xml_node(NULL, XML_TAG_VER_ATTRS);
+#endif
get_rsc_attributes(p, action->rsc, action->node, data_set);
g_hash_table_foreach(p, hash2smartfield, args_xml);
+#ifdef ENABLE_VERSIONED_ATTRS
pe_get_versioned_attributes(versioned_parameters, action->rsc, action->node, data_set);
if (xml_has_children(versioned_parameters)) {
add_node_copy(action_xml, versioned_parameters);
}
+#endif
g_hash_table_destroy(p);
+#ifdef ENABLE_VERSIONED_ATTRS
free_xml(versioned_parameters);
+#endif
} else if(action->rsc && action->rsc->variant <= pe_native) {
g_hash_table_foreach(action->rsc->parameters, hash2smartfield, args_xml);
+#ifdef ENABLE_VERSIONED_ATTRS
if (xml_has_children(action->rsc->versioned_parameters)) {
add_node_copy(action_xml, action->rsc->versioned_parameters);
}
+#endif
}
g_hash_table_foreach(action->meta, hash2metafield, args_xml);