Descriptionsefi litmanovich
2015-08-13 13:54:35 UTC
Created attachment 1062591[details]
restore snapshot relevant part in engine log
Description of problem:
trying to restore snapshot via rest api results in snapshot being stuck on "In preview" status
Version-Release number of selected component (if applicable):
ovirt-engine-3.6.0-0.0.master.20150804111407.git122a3a0.el6.noarch
How reproducible:
always
Steps to Reproduce:
1. Create a vm with disk
2. Create snapshot.
3. restore snapshot:
POST https://{engin}/ovirt-engine/api/vms/{vm_id}/snapshots/{snapshot_id}/restore
body:
<action>
<async>false</async>
<grace_period>
<expiry>10</expiry>
</grace_period>
<restore_memory>false</restore_memory>
</action>
Actual results:
snapshot is stuck on "In preview" mode forever.
Expected results:
snapshot moves to "In previewe" and shortly after commits the snapshot.
The "restore" operation is performed by the RESTAPI in two sequential steps:
1. The RESTAPI runs the "TryBackToAllSnapshotsOfVm" command and waits for the completion of the job by this operation.
2. The RESTAPI runs the "RestoreAllSnapshot" action.
What happens in this case is that the job returned by the "TryBackToAllSnapshotsOfVm" command never finishes, it is always in status "STARTED", thus the RESTAPI will never get out of step 1.
Note also that ideally the RESTAPI shouldn't coordinate two backend actions, like in this case. Consider adding a single backend command that performs these two steps.