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

Function sort_master_instance

pengine/master.c:233–265  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

231}
232
233static gint
234sort_master_instance(gconstpointer a, gconstpointer b, gpointer data_set)
235{
236 int rc;
237 enum rsc_role_e role1 = RSC_ROLE_UNKNOWN;
238 enum rsc_role_e role2 = RSC_ROLE_UNKNOWN;
239
240 const resource_t *resource1 = (const resource_t *)a;
241 const resource_t *resource2 = (const resource_t *)b;
242
243 CRM_ASSERT(resource1 != NULL);
244 CRM_ASSERT(resource2 != NULL);
245
246 role1 = resource1->fns->state(resource1, TRUE);
247 role2 = resource2->fns->state(resource2, TRUE);
248
249 rc = sort_rsc_index(a, b);
250 if (rc != 0) {
251 crm_trace("%s %c %s (index)", resource1->id, rc < 0 ? '<' : '>', resource2->id);
252 return rc;
253 }
254
255 if (role1 > role2) {
256 crm_trace("%s %c %s (role)", resource1->id, '<', resource2->id);
257 return -1;
258
259 } else if (role1 < role2) {
260 crm_trace("%s %c %s (role)", resource1->id, '>', resource2->id);
261 return 1;
262 }
263
264 return sort_clone_instance(a, b, data_set);
265}
266
267GHashTable *
268master_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, const char *attr,

Callers

nothing calls this directly

Calls 2

sort_rsc_indexFunction · 0.85
sort_clone_instanceFunction · 0.85

Tested by

no test coverage detected