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 int full_history = va_arg(args,
int);
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 int full_history = va_arg(args,
int);
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);
167 switch (event->state) {
177 char *state = crm_itoa(event->state);
185 if (event->delegate != NULL) {
195 buf = time_t_string(event->completed);
205 const char *agent = va_arg(args,
const char *);
206 const char *device = va_arg(args,
const char *);
207 const char *output = va_arg(args,
const char *);
208 const char *error_output = va_arg(args,
const char *);
209 int rc = va_arg(args,
int);
213 rc ?
"failed" :
"succeeded");
218 rc ?
"failed" :
"succeeded");
229 const char *agent = va_arg(args,
const char *);
230 const char *device = va_arg(args,
const char *);
231 const char *output = va_arg(args,
const char *);
232 const char *error_output = va_arg(args,
const char *);
233 int rc = va_arg(args,
int);
237 rc ?
"failed" :
"succeeded");
240 rc ?
"failed" :
"succeeded");
258 const char *agent = va_arg(args,
const char *);
259 const char *device = va_arg(args,
const char *);
260 const char *output = va_arg(args,
const char *);
261 const char *error_output = va_arg(args,
const char *);
262 int rc = va_arg(args,
int);
265 if (device != NULL) {
278 {
"last-fenced",
"html", last_fenced_html },
279 {
"last-fenced",
"text", last_fenced_text },
280 {
"last-fenced",
"xml", last_fenced_xml },
281 {
"stonith-event",
"html", stonith_event_html },
282 {
"stonith-event",
"text", stonith_event_text },
283 {
"stonith-event",
"xml", stonith_event_xml },
284 {
"validate",
"html", validate_agent_html },
285 {
"validate",
"text", validate_agent_text },
286 {
"validate",
"xml", validate_agent_xml },