Page MenuHomeClusterLabs Projects

Finish public libpacemaker API for stonith_admin
Open, LowPublic

Assigned To
None
Authored By
kgaillot
Tue, Oct 1, 12:32 PM
Tags
  • Restricted Project
  • Restricted Project
  • Restricted Project
Referenced Files
None
Subscribers

Description

stonith_admin was the first tool whose functionality was moved to libpacemaker. We implemented a public API for it but did not expose it (see BUILD_PUBLIC_LIBPACEMAKER) because we weren't sure what we should expose yet.

Now that we have more experience, it's clear we just need to drop the stonith_t argument from the public APIs. Each public API should be a wrapper that creates a stonith_t (as well as an output object), calls the internal API, and returns the (XML) result.

Two functions will need additional changes. pcmk_fence_register_level() and pcmk_fence_validate() currently take a stonith_key_value_t argument. That shouldn't be used in libpacemaker APIs because it will likely be replaced when libstonithd is eventually merged into libcrmservice. pcmk_fence_register_level() can use a GList of char* instead (create_level_registration_xml() uses only the values, not the keys). pcmk_fence_validate() can use GHashTable; the first thing stonith_api_validate() does is convert the key pairs to a GHashTable, so it can be split into a wrapper that does that and a real function that doesn't (and can be called directly by pcmk_fence_validate() rather than as a stonith_t method).

Related Objects

StatusAssignedTask
OpenNone

Event Timeline

kgaillot created this task.
kgaillot created this object with edit policy "Restricted Project (Project)".
kgaillot added a parent task: Restricted Maniphest Task.