For 2.1.8 (this task), deprecate (via doxygen comments) direct access to all members of struct pe_node_s and struct pe_node_shared_s.
We will need new public APIs that SBD can be updated to use (T794) instead of direct access. We will need to keep the members SBD uses around until we no longer support any OSes shipping an older version.
- struct pe_node_s
- For 3.0.0 (T795), we can rename it to something like struct pcmk__scored_node, and replace all members except details with a void *private member pointing to a new internal struct for the replaced members
- struct pe_node_shared_s
- Define new public APIs for "is node online/pending/unclean/shutdown/maintenance" that get the value of the named members
- Define a new public API to get the value of running_rsc (or alternatively, a "foreach running_rsc" API)
- For 3.0.0, we can rename it to struct pcmk__node, and replace all members except those above with a void *private member pointing to a new internal struct for the replaced members
- enum node_type and enum pe_discover_e: for 2.1.8, we can deprecate public access to these; for 3.0.0, we can make them internal
- pcmk__node_name() and pcmk__same_node() are mistakenly in a public header; move to an internal header for 3.0.0