I just saw pool_destroy() and pool_undefine() in virsh.py.Because their return values' type is different(first is bool, second is CmdResult), so I think the two "result" may puzzle reviewers.
I think you can modify pool_destroy() function, make it return a CmdResult like pool_undefine(), because when it's failed, we can see the error detail be result.stderr. What do you think?