Hey everyone, I recently opened a PR for adding formatted output to the various pacemaker tools. Right now it only addresses stonith_admin both because there was a bug opened about that and because I wanted to start with something simple.
Here's the PR: https://github.com/ClusterLabs/pacemaker/pull/1707 The basic layout is that there's a structure defined in pcmki/pcmki_output.h with a bunch of function pointers that do the hard work of outputting a specific kind of thing. Multiple output formats are supported - at the moment, text and XML. At the top level, you select the formatting you want and the destination (stdout, /dev/null, a file). Then throughout the tool, you call the function in the structure to get the specific formatting you want. This lets you do things like output lists, single items, XML, and so forth. I imagine lots more function pointers will be added as I go along converting other tools. Error output is handled on the side. If an error occurs, it's printed to stderr and an error code returned. We could potentially do something different here, but it's tough. Errors could occur in command line processing before output formatting is set up, so what to do with those? There's other problems in this area that I've forgotten, but I'm sure I will remember once I take a look again. Note that this is internal API. The plan is that the format of the output will be public and not change - there's a versioned RNG schema for validating the XML output against. The functions that generate that output will remain internal so we can hopefully decrease the number of them over time. I've put some sample XML output in the PR as well so you can see what's going on. Suggestions are welcome, especially when it comes to the XML formatting. Before I get too into converting a bunch of the other tools, I want to make sure this is useful. - Chris _______________________________________________ Developers mailing list Developers@clusterlabs.org https://lists.clusterlabs.org/mailman/listinfo/developers