Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -333,11 +333,10 @@ public void processEvent(ObjectInDataStoreStateMachine.Event event) {
} finally {
// in case of OperationFailed, expunge the entry
if (event == ObjectInDataStoreStateMachine.Event.OperationFailed &&
(volumeVO.getState() != Volume.State.Copying && volumeVO.getState() != Volume.State.Uploaded)) {
(volumeVO.getState() != Volume.State.Copying && volumeVO.getState() != Volume.State.Uploaded && volumeVO.getState() != Volume.State.UploadError)) {
objectInStoreMgr.deleteIfNotReady(this);
}
}

}

@Override
Expand Down
28 changes: 28 additions & 0 deletions test/integration/component/test_browse_volumes.py
Original file line number Diff line number Diff line change
Expand Up @@ -2678,6 +2678,34 @@ def test_17_Browser_Upload_Volume_secondary_storage_resource_limits_after_deleti
return


@attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="false")
def test_browser_upload_volume_incomplete(self):
"""
Test browser based incomplete volume upload, followed by SSVM destroy. Volume should go to UploadAbandoned/Error state and get cleaned up.
"""
try:
self.debug("========================= Test browser based incomplete volume upload ========================")

#Only register volume, without uploading
cmd = getUploadParamsForVolume.getUploadParamsForVolumeCmd()
cmd.zoneid = self.zone.id
cmd.format = self.uploadvolumeformat
cmd.name = self.volname + self.account.name + (random.choice(string.ascii_uppercase))
cmd.account = self.account.name
cmd.domainid = self.domain.id
upload_volume_response = self.apiclient.getUploadParamsForVolume(cmd)

#Destroy SSVM, and wait for new one to start
self.destroy_ssvm()

#Verify that the volume is cleaned up as part of sync-up during new SSVM start
self.validate_uploaded_volume(upload_volume_response.id, 'UploadAbandoned')

except Exception as e:
self.fail("Exceptione occurred : %s" % e)
return


@classmethod
def tearDownClass(self):
try:
Expand Down