20 time_t_string(time_t when) {
32 const char *target = va_arg(args,
const char *);
33 time_t when = va_arg(args, time_t);
36 char *buf =
crm_strdup_printf(
"Node %s last fenced at: %s", target, ctime(&when));
46 const char *target = va_arg(args,
const char *);
47 time_t when = va_arg(args, time_t);
60 const char *target = va_arg(args,
const char *);
61 time_t when = va_arg(args, time_t);
65 char *buf = time_t_string(when);
79 gboolean full_history = va_arg(args, gboolean);
80 gboolean later_succeeded = va_arg(args, gboolean);
82 switch(event->state) {
84 char *completed_s = time_t_string(event->completed);
86 out->
list_item(out,
"successful-stonith-event",
87 "%s of %s successful: delegate=%s, client=%s, origin=%s, %s='%s'",
89 event->delegate ? event->delegate :
"",
90 event->client, event->origin,
91 full_history ?
"completed" :
"last-successful",
98 char *failed_s = time_t_string(event->completed);
100 out->
list_item(out,
"failed-stonith-event",
101 "%s of %s failed : delegate=%s, client=%s, origin=%s, %s='%s' %s",
103 event->delegate ? event->delegate :
"",
104 event->client, event->origin,
105 full_history ?
"completed" :
"last-failed",
107 later_succeeded ?
"(a later attempt succeeded)" :
"");
113 out->
list_item(out,
"pending-stonith-event",
114 "%s of %s pending: client=%s, origin=%s",
116 event->client, event->origin);
126 gboolean full_history = va_arg(args, gboolean);
127 gboolean later_succeeded = va_arg(args, gboolean);
129 char *buf = time_t_string(event->completed);
131 switch (event->state) {
135 event->delegate ? event->delegate :
"",
136 event->client, event->origin,
137 full_history ?
"completed" :
"last-failed", buf,
138 later_succeeded ?
"(a later attempt succeeded)" :
"");
144 event->delegate ? event->delegate :
"",
145 event->client, event->origin,
146 full_history ?
"completed" :
"last-successful", buf);
152 event->client, event->origin);
164 gboolean full_history G_GNUC_UNUSED = va_arg(args, gboolean);
165 gboolean later_succeeded G_GNUC_UNUSED = va_arg(args, gboolean);
169 switch (event->state) {
179 char *state = crm_itoa(event->state);
187 if (event->delegate != NULL) {
197 buf = time_t_string(event->completed);
207 const char *agent = va_arg(args,
const char *);
208 const char *device = va_arg(args,
const char *);
209 char *output = va_arg(args,
char *);
210 char *error_output = va_arg(args,
char *);
211 int rc = va_arg(args,
int);
215 rc ?
"failed" :
"succeeded");
220 rc ?
"failed" :
"succeeded");
231 const char *agent = va_arg(args,
const char *);
232 const char *device = va_arg(args,
const char *);
233 char *output = va_arg(args,
char *);
234 char *error_output = va_arg(args,
char *);
235 int rc = va_arg(args,
int);
239 rc ?
"failed" :
"succeeded");
242 rc ?
"failed" :
"succeeded");
260 const char *agent = va_arg(args,
const char *);
261 const char *device = va_arg(args,
const char *);
262 char *output = va_arg(args,
char *);
263 char *error_output = va_arg(args,
char *);
264 int rc = va_arg(args,
int);
267 if (device != NULL) {
280 {
"last-fenced",
"html", last_fenced_html },
281 {
"last-fenced",
"text", last_fenced_text },
282 {
"last-fenced",
"xml", last_fenced_xml },
283 {
"stonith-event",
"html", stonith_event_html },
284 {
"stonith-event",
"text", stonith_event_text },
285 {
"stonith-event",
"xml", stonith_event_xml },
286 {
"validate",
"html", validate_agent_html },
287 {
"validate",
"text", validate_agent_text },
288 {
"validate",
"xml", validate_agent_xml },