[ClusterLabs] Q: Implementing "reload" operation
Ulrich.Windl at rz.uni-regensburg.de
Thu Mar 19 03:28:52 EDT 2020
I have a question on my own RA. Consider the following code:
if validate; then
if ! status; then
ocf_log info "$1: restarting $subject"
if start; then
ocf_log debug "$1: restarting $subject"
ocf_exit_reason "$1: failed to restart $subject"
ocf_log info "$1: $subject active already"
The crucial point is "status"'s result depends on the current parameters: If there was a "reload" due to parameter changes, status will have the new parameters and won't see the "old" instance as running, thus just starting the new instance. So stopping the old instance would require having the old parameters.
I wonder how the correct code would look like.
Despite of that the "unique"ness concept has a problem (compare it to the primary key of a database table): It's not possible to express that a combination of parameters has to be unique (e.g. IP address, port number, and protocol). One could merge them into one string, but that looks ugly.
A similar issue exists for "required"ness of a parameter: Depending on another parameter, it could be required, but optional otherwise. Again an ugly solution would be to "glue-together" all required parameters, but in the end you would end up with one complex parameter that is required, and all the parsing and validation checking would happen in the RA. An ugly solution!
(Such issues appear if a resource instance does reflect some kind of setting (like a firewall rule) instead of a process that is running)
More information about the Users