Page MenuHomeClusterLabs Projects

Deprecate direct access to scheduler resource structs
Open, HighPublic

Assigned To
None
Authored By
kgaillot
Wed, Mar 27, 2:46 PM
Tags
  • Restricted Project
  • Restricted Project
  • Restricted Project
Referenced Files
None
Subscribers

Description

For 2.1.8 (this task), deprecate (via doxygen comments) direct access to all members of libcrmcommon's struct pe_resource_s, and deprecate public access to libcrmcommon's struct resource_object_functions_s and libpacemaker's struct resource_alloc_functions_s entirely.

We will need new public APIs that SBD can be updated to use instead of direct access (T794). We will need to keep the members SBD uses around until we no longer support any OSes shipping an older version.

  • struct pe_resource_s
    • Define a new public API to get the id member
    • Define a new public API for "is resource managed" (equivalent to pcmk_is_set(rsc->flags, pe_rsc_managed))
    • For 3.0.0 (T796), we can rename it to struct pcmk__resource, and replace all members except id and flags with a void *private member pointing to a new internal struct for the replaced members
  • struct resource_object_functions_s and struct resource_alloc_functions_s: For 3.0.0, we can make these internal

Event Timeline

kgaillot created this task.
kgaillot changed the edit policy from "Task Author" to "Restricted Project (Project)".
kgaillot updated the task description. (Show Details)
kgaillot updated the task description. (Show Details)
kgaillot moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.Wed, Mar 27, 3:03 PM
kgaillot renamed this task from Make definition of scheduler resource structs internal to Deprecate direct access to scheduler resource structs.Wed, Mar 27, 6:38 PM
kgaillot updated the task description. (Show Details)
kgaillot edited projects, added Restricted Project; removed Restricted Project, Restricted Project.