1) When deleting a resource group, pcs lists all resources in the group and deletes them one by one. For each resource the CIB is loaded, the resource is deleted, and the CIB is pushed. If anything goes wrong in the process, we may end up with part the resources deleted and the other part still present in the cluster.
2) It is not possible to delete more than one resource in one go. So if the user wants to delete five resources, he/she needs to run "pcs resource delete" five times. Pcs will five times load the CIB, stop the resource, push the CIB, wait for pacemaker to stop the resource, load the CIB, delete the resource and push the CIB. That will unnecessary take a lot of time.
We want to make the code modular and reusable, allow multiple resources to be deleted with one command, fix the command line arguments parsing, improve error reporting.
Making "pcs resource remove" an alias to "pcs resource delete" would be nice as well.
what about hijacking this bug and create something like transaction-aware logic in pcs? Deleting the resource is only one of the examples when this comes handy.
Currently to achieve that we have to dump the cib, do pcs -f cib.xml <something> and push it back.
It would be cool to have something like crm had and be able to do things like:
pcs> pcs resource delete ...
pcs> pcs resource create ...
pcs> pcs constraint ..
re [comment 2]:
This is pretty overboard: please realize you are proposing an internal
statefull shell, big feature on its own. There's hardly any other way
to have it considered than through a dedicated bug or upstream issue.
Note that there's more humble suggestion already to compose compound
"atomic" change natively on command-line through piping: [bug 1359057].
[If the pipe approach was to cover non-mere-CIB-manipulating actions
as well (which "pcs resource delete" is), it would have to embed
a pcs-internal stream of actions to be performed before/after pushing
the CIB into the CIB itself (status section could serve that purpose
temporarily, stripping it for the resulting push of the CIB). Still
might be doable.]
I was thinking only about CIB related actions. Anything else seems to be just too complex for "atomic" operation. More of a shortcut for pcs cib dump && modify && pcs cib push.
I discussed this with Jaroslav personally. His proposal is out of the scope of this bz.
We should consider printing a warning when working with CIB file that pcs cannot:
* stop resources before deleting them
* properly remove remote nodes (when deleting VirtualDomain and ocf:pacemaker:remote resources) from the cluster
(In reply to Tomas Jelinek from comment #6)
> We should consider printing a warning when working with CIB file that pcs
> * stop resources before deleting them
> * properly remove remote nodes (when deleting VirtualDomain and
> ocf:pacemaker:remote resources) from the cluster
This is covered by bz1426608.
Once pcs part is done, we need to update pcsd so it does not use -f when deleting resources.
Also we should deal with deleting remove and guest nodes. Currently the resource delete command removes the node from pacemaker by using crm_node --remove, but does not delete config files and stop and disable pacemaker remote on the deleted node. It would be probably better to either do none of that or all of that.
*** Bug 1619824 has been marked as a duplicate of this bug. ***
Also wanted: do a resource cleanup when a resource is being removed, to prevent leaving junk behind
(In reply to Tomas Jelinek from comment #17)
> Also wanted: do a resource cleanup when a resource is being removed, to
> prevent leaving junk behind
reported upstream: https://github.com/ClusterLabs/pcs/issues/194