Hi All, Per discussion on the thread: http://markmail.org/message/ybw2yy5snkvkuc57, we decide to use coarse-graind interface to make taking vm snapshot pluggable. On pluggable_vm_snapshot, a new interface is added:
public interface VMSnapshotStrategy { VMSnapshot takeVMSnapshot(VMSnapshot vmSnapshot); boolean deleteVMSnapshot(VMSnapshot vmSnapshot); boolean revertVMSnapshot(VMSnapshot vmSnapshot); boolean canHandle(VMSnapshot vmSnapshot); } Any vendor can implement this interface to customize vm snapshot procedure. Unit test is added. If no objection, I'd like to merge it into master. Comments/feedback are welcome, thanks!