Snapshots are used as the means to maintain Cloudify's state during upgrades and DR scenarios - and as such need to be achievable as part of the routine manager operation sequence and take a reasonable period of time to be completed (matter of minutes). Also, currently to ensure deterministic behavior, snapshots can only run on a manager not executing any other workflow but this situation should be resolved either by disregarding data modified during the process or by queueing workflows to enable users to continue working with Cloudify (though delaying the time their operations will start).
The following are required:
1. Enable taking a snapshot of a running manager (running meaning executing operations) - the operation will wait until all workflow executions have been completed, without executing new executions (other than list/info operations) - then the snapshot will be taken. Alternatively the operation should disregard running workflows and the state changes caused by those.
2. During waiting for the snapshot to be taken/completed - requested executions will be queued
3. Following snapshot completion queued executions should be resumed automatically