MCPcopy Create free account
hub / github.com/ClusterLabs/pacemaker / check_rsc_parameters

Function check_rsc_parameters

pengine/allocate.c:100–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

98};
99
100static gboolean
101check_rsc_parameters(resource_t * rsc, node_t * node, xmlNode * rsc_entry,
102 pe_working_set_t * data_set)
103{
104 int attr_lpc = 0;
105 gboolean force_restart = FALSE;
106 gboolean delete_resource = FALSE;
107
108 const char *value = NULL;
109 const char *old_value = NULL;
110
111 const char *attr_list[] = {
112 XML_ATTR_TYPE,
113 XML_AGENT_ATTR_CLASS,
114 XML_AGENT_ATTR_PROVIDER
115 };
116
117 for (; attr_lpc < DIMOF(attr_list); attr_lpc++) {
118 value = crm_element_value(rsc->xml, attr_list[attr_lpc]);
119 old_value = crm_element_value(rsc_entry, attr_list[attr_lpc]);
120 if (value == old_value /* ie. NULL */
121 || crm_str_eq(value, old_value, TRUE)) {
122 continue;
123 }
124
125 force_restart = TRUE;
126 crm_notice("Forcing restart of %s on %s, %s changed: %s -> %s",
127 rsc->id, node->details->uname, attr_list[attr_lpc],
128 crm_str(old_value), crm_str(value));
129 }
130 if (force_restart) {
131 /* make sure the restart happens */
132 stop_action(rsc, node, FALSE);
133 set_bit(rsc->flags, pe_rsc_start_pending);
134 delete_resource = TRUE;
135 }
136 return delete_resource;
137}
138
139static void
140CancelXmlOp(resource_t * rsc, xmlNode * xml_op, node_t * active_node,

Callers 1

check_actions_forFunction · 0.85

Calls 2

crm_element_valueFunction · 0.85
crm_str_eqFunction · 0.85

Tested by

no test coverage detected