Previously, attempts to suspend a virtual machine with local storage using the REST API failed, with an error stating the volume didn't exist.
The REST API was patched to make fileVolume a real classmethod, symmetrical with block domains. Virtual machines with disks on local storage domains can now be suspended using the REST API.
Created attachment 636125[details]
Logs
Description of problem:
When test tries to suspend VM on local storage via API we got exception in createVolume that Volume doesn't exist
to API was sent:
url:/api/vms/83c5e31c-2397-4a7e-9996-46034c46c303/suspend
body:<action>
<async>false</async>
<grace_period>
<expiry>10</expiry>
</grace_period>
</action>
Version-Release number of selected component (if applicable):
rhev-3.1 revision c0c61931cc2d4690a6ddb32b0a52f2989b6ae0b6
vdsm-4.9.6-40.0.el6_3.x86_64
How reproducible:
Last two tests on Jenkins
Steps to Reproduce:
1. Suspend VM on local storage
Actual results:
Expected results:
Additional info:
Not sure if vdsm bug, please move to correct component if not vdsm bug
There should be sufficient space on host
/dev/sda3 453G 1.8G 428G 1% /
78ee923f-328a-4e5b-850e-ac5f5e255241::INFO::2012-10-31 13:12:04,966::fileVolume::153::Storage.Volume::(_create) Request to create RAW volume /rhev/data-center/b4997363-604b-4392-8250-3ccae29c3223/87fca1e4-9191-4337-9fb9-b01b88be7e32/images/7b50d791-02a9-4da3-ae39-a0075d599b18/1d8baec6-36b6-4109-b6a3-beb342f20672 with size = 2637824 sectors
78ee923f-328a-4e5b-850e-ac5f5e255241::DEBUG::2012-10-31 13:12:05,014::fileVolume::558::Storage.Volume::(validateVolumePath) validate path for 1d8baec6-36b6-4109-b6a3-beb342f20672
78ee923f-328a-4e5b-850e-ac5f5e255241::ERROR::2012-10-31 13:12:05,016::volume::509::Storage.Volume::(create) Unexpected error
Traceback (most recent call last):
File "/usr/share/vdsm/storage/volume.py", line 484, in create
apparentSize = cls.getVSize(dom, imgUUID, volUUID)
File "/usr/share/vdsm/storage/fileVolume.py", line 463, in getVSize
return sdobj.produceVolume(imgUUID, volUUID).getVolumeSize(bs)
File "/usr/share/vdsm/storage/fileSD.py", line 174, in produceVolume
return fileVolume.FileVolume(repoPath, self.sdUUID, imgUUID, volUUID)
File "/usr/share/vdsm/storage/fileVolume.py", line 71, in __init__
volume.Volume.__init__(self, repoPath, sdUUID, imgUUID, volUUID)
File "/usr/share/vdsm/storage/volume.py", line 128, in __init__
self.validate()
File "/usr/share/vdsm/storage/volume.py", line 141, in validate
self.validateVolumePath()
File "/usr/share/vdsm/storage/fileVolume.py", line 567, in validateVolumePath
self.validateMetaVolumePath()
File "/usr/share/vdsm/storage/fileVolume.py", line 576, in validateMetaVolumePath
raise se.VolumeDoesNotExist(self.volUUID)
VolumeDoesNotExist: Volume does not exist: ('1d8baec6-36b6-4109-b6a3-beb342f20672',)
(In reply to comment #3)
> is this only via API or via UI as well?
I can't tell, it runs on Jenkins and I think UI is not built for this test.
> since flagged as a regression, can you please specify which version worked?
rhevm-3.1.0-20.el6ev.noarch
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
http://rhn.redhat.com/errata/RHSA-2012-1508.html
Created attachment 636125 [details] Logs Description of problem: When test tries to suspend VM on local storage via API we got exception in createVolume that Volume doesn't exist to API was sent: url:/api/vms/83c5e31c-2397-4a7e-9996-46034c46c303/suspend body:<action> <async>false</async> <grace_period> <expiry>10</expiry> </grace_period> </action> Version-Release number of selected component (if applicable): rhev-3.1 revision c0c61931cc2d4690a6ddb32b0a52f2989b6ae0b6 vdsm-4.9.6-40.0.el6_3.x86_64 How reproducible: Last two tests on Jenkins Steps to Reproduce: 1. Suspend VM on local storage Actual results: Expected results: Additional info: Not sure if vdsm bug, please move to correct component if not vdsm bug There should be sufficient space on host /dev/sda3 453G 1.8G 428G 1% / 78ee923f-328a-4e5b-850e-ac5f5e255241::INFO::2012-10-31 13:12:04,966::fileVolume::153::Storage.Volume::(_create) Request to create RAW volume /rhev/data-center/b4997363-604b-4392-8250-3ccae29c3223/87fca1e4-9191-4337-9fb9-b01b88be7e32/images/7b50d791-02a9-4da3-ae39-a0075d599b18/1d8baec6-36b6-4109-b6a3-beb342f20672 with size = 2637824 sectors 78ee923f-328a-4e5b-850e-ac5f5e255241::DEBUG::2012-10-31 13:12:05,014::fileVolume::558::Storage.Volume::(validateVolumePath) validate path for 1d8baec6-36b6-4109-b6a3-beb342f20672 78ee923f-328a-4e5b-850e-ac5f5e255241::ERROR::2012-10-31 13:12:05,016::volume::509::Storage.Volume::(create) Unexpected error Traceback (most recent call last): File "/usr/share/vdsm/storage/volume.py", line 484, in create apparentSize = cls.getVSize(dom, imgUUID, volUUID) File "/usr/share/vdsm/storage/fileVolume.py", line 463, in getVSize return sdobj.produceVolume(imgUUID, volUUID).getVolumeSize(bs) File "/usr/share/vdsm/storage/fileSD.py", line 174, in produceVolume return fileVolume.FileVolume(repoPath, self.sdUUID, imgUUID, volUUID) File "/usr/share/vdsm/storage/fileVolume.py", line 71, in __init__ volume.Volume.__init__(self, repoPath, sdUUID, imgUUID, volUUID) File "/usr/share/vdsm/storage/volume.py", line 128, in __init__ self.validate() File "/usr/share/vdsm/storage/volume.py", line 141, in validate self.validateVolumePath() File "/usr/share/vdsm/storage/fileVolume.py", line 567, in validateVolumePath self.validateMetaVolumePath() File "/usr/share/vdsm/storage/fileVolume.py", line 576, in validateMetaVolumePath raise se.VolumeDoesNotExist(self.volUUID) VolumeDoesNotExist: Volume does not exist: ('1d8baec6-36b6-4109-b6a3-beb342f20672',)