Node states

Hello experts,
As of now we see bare minimum states for the nodes in the cluster, like online, offline or under maintenance… but is there a way to have user defined states for each node, which any other node in the cluster can change/manage ? Can it be done by adding some specific resource ?
We have a requirement, where we run the nodes in the cluster into a state machine, and want to manage that state machine through corosync. All the nodes should be able to access other node’s states, and should be able to change their states based on logic.
Any help is appreciated !

I admit that I’m puzzled.
What is a state machine ? I have the feeling that you want to do some logic and based on that logic to set a node into ‘standby/maintenance/offline/etc’ , am I right ?

Thats partially correct actually. Lets say there is a state machine like – eating, walking, running or inactive. Each node will be running in any of these states. What I am looking at is corosync to recognize these states, and one designated node should be allowed to change other node’s state through corosync. Just the way as in today, each node is able to see all other node’s running state, and can potentially push other nodes to maintenance. If corosync doesn’t have any such mechanism, I will have to build some similar stuff that corosync already has.

I guess you can ask the (requires subscription to post).
Theoretically , you can create your own resource that makes the logic and puts the other nodes into a different state, but most probably it will be done via crmsh and not via corosync.