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

Function test_expression

lib/pengine/rules.c:96–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

94}
95
96gboolean
97test_expression(xmlNode * expr, GHashTable * node_hash, enum rsc_role_e role, crm_time_t * now)
98{
99 gboolean accept = FALSE;
100 const char *uname = NULL;
101
102 switch (find_expression_type(expr)) {
103 case nested_rule:
104 accept = test_rule(expr, node_hash, role, now);
105 break;
106 case attr_expr:
107 case loc_expr:
108 /* these expressions can never succeed if there is
109 * no node to compare with
110 */
111 if (node_hash != NULL) {
112 accept = test_attr_expression(expr, node_hash, now);
113 }
114 break;
115
116 case time_expr:
117 accept = test_date_expression(expr, now);
118 break;
119
120 case role_expr:
121 accept = test_role_expression(expr, role, now);
122 break;
123
124 default:
125 CRM_CHECK(FALSE /* bad type */ , return FALSE);
126 accept = FALSE;
127 }
128 if (node_hash) {
129 uname = g_hash_table_lookup(node_hash, "#uname");
130 }
131
132 crm_trace("Expression %s %s on %s",
133 ID(expr), accept ? "passed" : "failed", uname ? uname : "all ndoes");
134 return accept;
135}
136
137enum expression_type
138find_expression_type(xmlNode * expr)

Callers 1

test_ruleFunction · 0.85

Calls 5

find_expression_typeFunction · 0.85
test_ruleFunction · 0.85
test_attr_expressionFunction · 0.85
test_date_expressionFunction · 0.85
test_role_expressionFunction · 0.85

Tested by

no test coverage detected