This source file includes following definitions.
- pcmk_is_probe
- pcmk_xe_is_probe
- pcmk_xe_mask_probe_failure
1
2
3
4
5
6
7
8
9
10 #include <crm_internal.h>
11
12 #include <stdio.h>
13 #include <stdbool.h>
14 #include <glib.h>
15 #include <libxml/tree.h>
16
17 #include <crm/common/options.h>
18 #include <crm/common/probes.h>
19 #include <crm/common/xml.h>
20
21
22
23
24
25
26
27
28
29
30 bool
31 pcmk_is_probe(const char *task, guint interval_ms)
32 {
33
34 return (interval_ms == 0)
35 && pcmk__str_eq(task, PCMK_ACTION_MONITOR, pcmk__str_none);
36 }
37
38
39
40
41
42
43
44
45 bool
46 pcmk_xe_is_probe(const xmlNode *xml)
47 {
48 int interval_ms = 0;
49
50 if (xml == NULL) {
51 return false;
52 }
53
54 pcmk__scan_min_int(crm_element_value(xml, PCMK_META_INTERVAL),
55 &interval_ms, 0);
56
57 return pcmk_is_probe(crm_element_value(xml, PCMK_XA_OPERATION),
58 interval_ms);
59 }
60
61
62
63
64
65
66
67
68
69 bool
70 pcmk_xe_mask_probe_failure(const xmlNode *xml)
71 {
72 int exec_status = PCMK_EXEC_UNKNOWN;
73 int exit_status = PCMK_OCF_OK;
74
75 if (!pcmk_xe_is_probe(xml)) {
76 return false;
77 }
78
79 crm_element_value_int(xml, PCMK__XA_OP_STATUS, &exec_status);
80 crm_element_value_int(xml, PCMK__XA_RC_CODE, &exit_status);
81
82 return (exit_status == PCMK_OCF_NOT_INSTALLED)
83 || (exit_status == PCMK_OCF_INVALID_PARAM)
84 || (exec_status == PCMK_EXEC_NOT_INSTALLED);
85 }