> - Prepare nodes for commissioning.
> - Commit transaction.
> - Fire off RPC calls to power nodes on.
> - Collect failures, then for each:
> - Transition node back to previous node.
> - Tell the user.
Sounds like a good plan (but note that it means changing each method that does things in bulk).
> I think the semantics of a bulk operation should be: similar to what deferredList does (with consumeErrors=True): a bulk operation > should always succeed and report back about the number of suboperations that succeeded/failed.
(replying to myself here) Actually, it would probably be more consistent to have a bulk operation fail only if all the sub operations fail. If a single one of the sub operation succeeds, the bulk operation is considered a success (albeit partial) but should report back about the failures.
> - Prepare nodes for commissioning.
> - Commit transaction.
> - Fire off RPC calls to power nodes on.
> - Collect failures, then for each:
> - Transition node back to previous node.
> - Tell the user.
Sounds like a good plan (but note that it means changing each method that does things in bulk).
> I think the semantics of a bulk operation should be: similar to what deferredList does (with consumeErrors= True): a bulk operation > should always succeed and report back about the number of suboperations that succeeded/failed.
(replying to myself here) Actually, it would probably be more consistent to have a bulk operation fail only if all the sub operations fail. If a single one of the sub operation succeeds, the bulk operation is considered a success (albeit partial) but should report back about the failures.