@@ -311,13 +311,9 @@ full_history_xml(pcmk__output_t *out, va_list args)
311311
312312 PCMK__OUTPUT_LIST_FOOTER (out , rc );
313313 } else {
314- char * rc_s = pcmk__itoa (history_rc );
315-
316- pcmk__output_create_xml_node (out , PCMK_XE_FENCE_HISTORY ,
317- PCMK_XA_STATUS , rc_s ,
318- NULL );
319- free (rc_s );
314+ xmlNode * xml = pcmk__output_create_xml_node (out , PCMK_XE_FENCE_HISTORY );
320315
316+ pcmk__xe_set_int (xml , PCMK_XA_STATUS , history_rc );
321317 rc = pcmk_rc_ok ;
322318 }
323319
@@ -364,11 +360,10 @@ last_fenced_xml(pcmk__output_t *out, va_list args) {
364360
365361 if (when ) {
366362 char * buf = timespec_string (when , 0 , false);
363+ xmlNode * xml = pcmk__output_create_xml_node (out , PCMK_XE_LAST_FENCED );
367364
368- pcmk__output_create_xml_node (out , PCMK_XE_LAST_FENCED ,
369- PCMK_XA_TARGET , target ,
370- PCMK_XA_WHEN , buf ,
371- NULL );
365+ pcmk__xe_set (xml , PCMK_XA_TARGET , target );
366+ pcmk__xe_set (xml , PCMK_XA_WHEN , buf );
372367
373368 free (buf );
374369 return pcmk_rc_ok ;
@@ -478,45 +473,39 @@ stonith_event_xml(pcmk__output_t *out, va_list args)
478473 const char * succeeded G_GNUC_UNUSED = va_arg (args , const char * );
479474 uint32_t show_opts G_GNUC_UNUSED = va_arg (args , uint32_t );
480475
481- xmlNodePtr node = NULL ;
476+ xmlNode * xml = NULL ;
482477
483- node = pcmk__output_create_xml_node (out , PCMK_XE_FENCE_EVENT ,
484- PCMK_XA_ACTION , event -> action ,
485- PCMK_XA_TARGET , event -> target ,
486- PCMK_XA_CLIENT , event -> client ,
487- PCMK_XA_ORIGIN , event -> origin ,
488- NULL );
478+ xml = pcmk__output_create_xml_node (out , PCMK_XE_FENCE_EVENT );
479+ pcmk__xe_set (xml , PCMK_XA_ACTION , event -> action );
480+ pcmk__xe_set (xml , PCMK_XA_TARGET , event -> target );
481+ pcmk__xe_set (xml , PCMK_XA_CLIENT , event -> client );
482+ pcmk__xe_set (xml , PCMK_XA_ORIGIN , event -> origin );
489483
490484 switch (event -> state ) {
491485 case st_failed :
492- pcmk__xe_set (node , PCMK_XA_STATUS , PCMK_VALUE_FAILED );
493- pcmk__xe_set (node , PCMK_XA_EXIT_REASON , event -> exit_reason );
486+ pcmk__xe_set (xml , PCMK_XA_STATUS , PCMK_VALUE_FAILED );
487+ pcmk__xe_set (xml , PCMK_XA_EXIT_REASON , event -> exit_reason );
494488 break ;
495489
496490 case st_done :
497- pcmk__xe_set (node , PCMK_XA_STATUS , PCMK_VALUE_SUCCESS );
491+ pcmk__xe_set (xml , PCMK_XA_STATUS , PCMK_VALUE_SUCCESS );
498492 break ;
499493
500- default : {
501- char * state = pcmk__itoa (event -> state );
502-
503- pcmk__xe_set (node , PCMK_XA_STATUS , PCMK_VALUE_PENDING );
504- pcmk__xe_set (node , PCMK_XA_EXTENDED_STATUS , state );
505-
506- free (state );
494+ default :
495+ pcmk__xe_set (xml , PCMK_XA_STATUS , PCMK_VALUE_PENDING );
496+ pcmk__xe_set_int (xml , PCMK_XA_EXTENDED_STATUS , event -> state );
507497 break ;
508- }
509498 }
510499
511500 if (event -> delegate != NULL ) {
512- pcmk__xe_set (node , PCMK_XA_DELEGATE , event -> delegate );
501+ pcmk__xe_set (xml , PCMK_XA_DELEGATE , event -> delegate );
513502 }
514503
515504 if ((event -> state == st_failed ) || (event -> state == st_done )) {
516505 char * time_s = timespec_string (event -> completed , event -> completed_nsec ,
517506 true);
518507
519- pcmk__xe_set (node , PCMK_XA_COMPLETED , time_s );
508+ pcmk__xe_set (xml , PCMK_XA_COMPLETED , time_s );
520509 free (time_s );
521510 }
522511
@@ -583,17 +572,13 @@ validate_agent_xml(pcmk__output_t *out, va_list args) {
583572 const char * error_output = va_arg (args , const char * );
584573 int rc = va_arg (args , int );
585574
586- const char * valid = pcmk__btoa (rc == pcmk_ok );
587- xmlNodePtr node = pcmk__output_create_xml_node (out , PCMK_XE_VALIDATE ,
588- PCMK_XA_AGENT , agent ,
589- PCMK_XA_VALID , valid ,
590- NULL );
575+ xmlNode * xml = pcmk__output_create_xml_node (out , PCMK_XE_VALIDATE );
591576
592- if ( device != NULL ) {
593- pcmk__xe_set ( node , PCMK_XA_DEVICE , device );
594- }
577+ pcmk__xe_set ( xml , PCMK_XA_AGENT , agent );
578+ pcmk__xe_set_bool ( xml , PCMK_XA_VALID , ( rc == pcmk_ok ) );
579+ pcmk__xe_set ( xml , PCMK_XA_DEVICE , device );
595580
596- pcmk__output_xml_push_parent (out , node );
581+ pcmk__output_xml_push_parent (out , xml );
597582 out -> subprocess_output (out , rc , output , error_output );
598583 pcmk__output_xml_pop_parent (out );
599584
0 commit comments