You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ra...@apache.org on 2015/04/29 07:44:21 UTC
[37/50] git commit: updated refs/heads/master to 0b83559
Additional automated test paths of browser based volume
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/55ee1ecd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/55ee1ecd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/55ee1ecd
Branch: refs/heads/master
Commit: 55ee1ecd8443b92bc8b0ab9634383edcb2ac3b6a
Parents: 0d06dbd
Author: sailajamada <sa...@citrix.com>
Authored: Wed Apr 8 08:06:34 2015 +0530
Committer: sailajamada <sa...@citrix.com>
Committed: Wed Apr 8 08:06:34 2015 +0530
----------------------------------------------------------------------
.../component/test_browse_volumes.py | 489 +++++++++++++++++--
1 file changed, 439 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/55ee1ecd/test/integration/component/test_browse_volumes.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_browse_volumes.py b/test/integration/component/test_browse_volumes.py
index b2b7caf..edd13e7 100644
--- a/test/integration/component/test_browse_volumes.py
+++ b/test/integration/component/test_browse_volumes.py
@@ -114,7 +114,14 @@ class TestBrowseUploadVolume(cloudstackTestCase):
cls.testdata["configurableData"]["browser_upload_volume"]["browser_resized_disk_offering"],
custom=True
)
+ cls.project = Project.create(
+ cls.apiclient,
+ cls.testdata["project"],
+ account=cls.account.name,
+ domainid=cls.account.domainid
+ )
cls._cleanup = [
+ cls.project,
cls.account,
cls.service_offering,
cls.disk_offering
@@ -152,7 +159,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
config2 = Configurations.list(
self.apiclient,
- name='upload.monitornsving.interval'
+ name='upload.monitoring.interval'
)
uploadtimeout = int(config1[0].value)
@@ -175,6 +182,92 @@ class TestBrowseUploadVolume(cloudstackTestCase):
)
return
+
+ def browse_upload_volume_with_projectid(self,projectid):
+
+ 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.projectid=projectid
+ getuploadparamsresponce=self.apiclient.getUploadParamsForVolume(cmd)
+
+ signt=getuploadparamsresponce.signature
+ posturl=getuploadparamsresponce.postURL
+ metadata=getuploadparamsresponce.metadata
+ expiredata=getuploadparamsresponce.expires
+
+ url=self.uploadurl
+
+ uploadfile = url.split('/')[-1]
+ r = requests.get(url, stream=True)
+ with open(uploadfile, 'wb') as f:
+ for chunk in r.iter_content(chunk_size=1024):
+ if chunk: # filter out keep-alive new chunks
+ f.write(chunk)
+ f.flush()
+
+ files={'file':(uploadfile,open(uploadfile,'rb'),'application/octet-stream')}
+
+ headers={'X-signature':signt,'X-metadata':metadata,'X-expires':expiredata}
+
+ results = requests.post(posturl,files=files,headers=headers,verify=False)
+
+ print results.status_code
+ if results.status_code !=200:
+ self.fail("Upload is not fine")
+
+ self.validate_uploaded_volume(getuploadparamsresponce.id,'Uploaded')
+
+ list_volume_response = Volume.list(
+ self.apiclient,
+ projectid=projectid
+ )
+ if list_volume_response[0].id==getuploadparamsresponce.id:
+ return(getuploadparamsresponce)
+ else:
+ self.fail("Volume is not listed with projectid")
+
+
+ def browse_upload_volume_with_out_zoneid(self):
+
+
+ cmd = getUploadParamsForVolume.getUploadParamsForVolumeCmd()
+ cmd.format = self.uploadvolumeformat
+ cmd.name=self.volname+self.account.name+(random.choice(string.ascii_uppercase))
+ success= False
+ try:
+ getuploadparamsresponce=self.apiclient.getUploadParamsForVolume(cmd)
+ except Exception as ex:
+ if "Invalid Parameter" in str(ex):
+ success = True
+ self.assertEqual(
+ success,
+ True,
+ "Upload Volume - verify upload volume API request is handled without mandatory params - zoneid ")
+
+ return
+
+
+ def browse_upload_volume_with_out_format(self):
+
+
+ cmd = getUploadParamsForVolume.getUploadParamsForVolumeCmd()
+ cmd.zoneid = self.zone.id
+ cmd.name=self.volname+self.account.name+(random.choice(string.ascii_uppercase))
+ success= False
+ try:
+ getuploadparamsresponce=self.apiclient.getUploadParamsForVolume(cmd)
+ except Exception as ex:
+ if "Invalid Parameter" in str(ex):
+ success = True
+ self.assertEqual(
+ success,
+ True,
+ "Upload Volume - verify upload volume API request is handled without mandatory params - format")
+
+ return
+
def browse_upload_volume(self):
cmd = getUploadParamsForVolume.getUploadParamsForVolumeCmd()
cmd.zoneid = self.zone.id
@@ -710,35 +803,15 @@ class TestBrowseUploadVolume(cloudstackTestCase):
return
- def deletevolume(self,volumeid):
+ def delete_volume(self,volumeid):
"""Delete a Volume attached to a VM
"""
cmd = deleteVolume.deleteVolumeCmd()
- cmd.id = volumeid
+ cmd.id =volumeid
self.apiclient.deleteVolume(cmd)
- list_volume_response = Volume.list(
- self.apiclient,
- id=volumeid,
- type='DATADISK'
- )
- self.debug(list_volume_response)
-
- self.assertEqual(
- isinstance(list_volume_response, list),
- True,
- "Check VOLUME is deleted from list Volumes"
- )
- self.assertEqual(
- list_volume_response,
- None,
- "Check VOLUME is deleted from list Volumes"
- )
-
- return
-
def download_volume(self,volumeid):
cmd = extractVolume.extractVolumeCmd()
@@ -785,11 +858,11 @@ class TestBrowseUploadVolume(cloudstackTestCase):
"""Test resize a volume"""
- self.testdata["browser_upload_volume"]["browser_resized_disk_offering"]["disksize"] = 20
+ self.testdata["configurableData"]["browser_upload_volume"]["browser_resized_disk_offering"]["disksize"] = 20
disk_offering_20_GB = DiskOffering.create(
self.apiclient,
- self.testdata["browser_upload_volume"]["browser_resized_disk_offering"]
+ self.testdata["configurableData"]["browser_upload_volume"]["browser_resized_disk_offering"]
)
self.cleanup.append(disk_offering_20_GB)
@@ -1803,7 +1876,9 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.detach_volume(vm1details,browseup_vol.id)
- self.deletevolume(browseup_vol.id)
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browseup_vol.id
+ self.apiclient.deleteVolume(cmd)
return(2)
@@ -1860,7 +1935,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
cmd = deleteVolume.deleteVolumeCmd()
cmd.id = getuploadparamsresponce.id
- self.apiclient.deleteVolume(cmd)
+ self.apiclient.delete_volume(cmd)
success = False
@@ -1885,6 +1960,69 @@ class TestBrowseUploadVolume(cloudstackTestCase):
return("FAIL")
return("PASS")
+ def volume_migration(self,browseup_vol,vm1details):
+
+ pools = StoragePool.list(
+ self.apiclient,
+ zoneid=self.zone.id
+ )
+ if not pools:
+ self.skipTest(
+ "No suitable storage pools found for volume migration.\
+ Skipping")
+ self.assertEqual(
+ validateList(pools)[0],
+ PASS,
+ "invalid pool response from findStoragePoolsForMigration")
+ pool = pools[0]
+
+ try:
+ if vm1details is None:
+ Volume.migrate(
+ self.apiclient,
+ volumeid=browseup_vol.id,
+ storageid=pool.id,
+ livemigrate='false'
+ )
+ else:
+ Volume.migrate(
+ self.apiclient,
+ volumeid=browseup_vol.id,
+ storageid=pool.id,
+ livemigrate='true'
+ )
+
+ except Exception as e:
+ self.fail("Volume migration failed with error %s" % e)
+
+ return
+
+
+ def getvolumelimts(self):
+
+ totalresoucelist=Account.list(
+ self.apiclient,
+ id=self.account.id
+ )
+ totalvolumes=totalresoucelist[0].volumetotal
+
+ return(totalvolumes)
+
+
+ def getstoragelimts(self,rtype):
+
+ cmd=updateResourceCount.updateResourceCountCmd()
+ cmd.account=self.account.name
+ cmd.domainid=self.domain.id
+ cmd.resourcetype=rtype
+
+ responce=self.apiclient.updateResourceCount(cmd)
+
+ totalstorage=responce[0].resourcecount
+
+ return(totalstorage)
+
+
@attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="true")
def test_01_Browser_volume_Life_cycle_tpath(self):
"""
@@ -1936,7 +2074,9 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.vmoperations(vm2details)
self.detach_volume(vm2details,browseup_vol.id)
- self.deletevolume(browseup_vol.id)
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browseup_vol.id
+ self.apiclient.deleteVolume(cmd)
self.debug("========================= Test 8: Try resizing uploaded state volume and validate the error scenario========================= ")
@@ -1958,7 +2098,11 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.detach_volume(vm2details,browseup_vol2.id)
- self.deletevolume(browseup_vol2.id)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browseup_vol2.id
+ self.apiclient.deleteVolume(cmd)
+
self.debug("========================= Test 11: Detach and download uploaded volume========================= ")
@@ -1969,7 +2113,9 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.debug("========================= Test 12: Delete detached uploaded volume========================= ")
- self.deletevolume(browseup_vol3.id)
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browseup_vol3.id
+ self.apiclient.deleteVolume(cmd)
self.debug("========================= Deletion of UnUsed VM's after test is complete========================= ")
@@ -1979,7 +2125,10 @@ class TestBrowseUploadVolume(cloudstackTestCase):
browseup_vol4=self.browse_upload_volume()
- self.deletevolume(browseup_vol4.id)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browseup_vol4.id
+ self.apiclient.deleteVolume(cmd)
self.debug("========================= Test 14: Destroy VM which has Uploaded volumes attached========================= ")
@@ -1996,7 +2145,10 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.recover_destroyed_vm(vm4details)
self.expunge_vm(vm4details)
- self.deletevolume(newvolumetodestoy_VM.id)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=newvolumetodestoy_VM.id
+ self.apiclient.deleteVolume(cmd)
self.debug("========================= Test 16: Delete attached Uploaded volume which is in ready state and it should not be allowed to delete========================= ")
@@ -2022,7 +2174,12 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.volume_snapshot_template(snapshotdetails)
self.detach_volume(vm6details,browseup_vol6.id)
- self.deletevolume(browseup_vol6.id)
+
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browseup_vol6.id
+ self.apiclient.deleteVolume(cmd)
+
self.expunge_vm(vm6details)
self.debug("========================= Test 20: Upload Browser based volume with checksum and validate ========================= ")
@@ -2037,7 +2194,13 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.debug("========================= Test 22: Detach Uploaded volume with checksum and validation of VM operations after detach========================= ")
self.detach_volume(vm7details,browseup_vol_withchecksum.id)
- self.deletevolume(browseup_vol_withchecksum.id)
+
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browseup_vol_withchecksum.id
+
+ self.apiclient.deleteVolume(cmd)
+
self.vmoperations(vm7details)
@@ -2069,7 +2232,11 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.detach_volume(ssvm1vm1details,ssvm1browseup_vol.id)
- self.deletevolume(ssvm1browseup_vol.id)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=ssvm1browseup_vol.id
+ self.apiclient.deleteVolume(cmd)
+
self.expunge_vm(ssvm1vm1details)
self.debug("========================= Test 24: Reboot SSVM and Perform Browser based volume validations ========================= ")
@@ -2085,7 +2252,11 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.detach_volume(ssvm2vm1details,ssvm2browseup_vol.id)
- self.deletevolume(ssvm2browseup_vol.id)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=ssvm2browseup_vol.id
+ self.apiclient.deleteVolume(cmd)
+
self.expunge_vm(ssvm2vm1details)
@@ -2102,7 +2273,11 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.detach_volume(ssvm3vm1details,ssvm3browseup_vol.id)
- self.deletevolume(ssvm3browseup_vol.id)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=ssvm3browseup_vol.id
+ self.apiclient.deleteVolume(cmd)
+
self.expunge_vm(ssvm3vm1details)
@@ -2136,21 +2311,38 @@ class TestBrowseUploadVolume(cloudstackTestCase):
self.debug("========================= Test 27 Reuse the POST URL after expiry time========================= ")
reuse_browse_up_vol=self.browse_upload_volume()
self.reuse_url()
- self.deletevolume(reuse_browse_up_vol.id)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=reuse_browse_up_vol.id
+ self.apiclient.deleteVolume(cmd)
+
self.debug("========================= Test 28 Reboot SSVM before upload is completed=========================")
browse_up_vol=self.onlyupload()
self.uploadvol(browse_up_vol)
- self.deletevolume(browse_up_vol.id)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browse_up_vol.id
+ self.apiclient.deleteVolume(cmd)
+
self.debug("========================= Test 29 Reboot SSVM after getting the upload volume params and before initiating the upload=========================")
browse_up_vol=self.onlyupload()
self.uploadvolwithssvmreboot(browse_up_vol)
- self.deletevolume(browse_up_vol.id)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=reuse_browse_up_vol.id
+ self.apiclient.deleteVolume(cmd)
self.debug("========================= Test 30 Attach Deleted Volume=========================")
deleted_browse_up_vol=self.browse_upload_volume()
- self.deletevolume(deleted_browse_up_vol.id)
+
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=deleted_browse_up_vol.id
+ self.apiclient.deleteVolume(cmd)
+
+
deletedvm1details=self.deploy_vm()
self.attach_deleted_volume(deletedvm1details, deleted_browse_up_vol)
@@ -2249,15 +2441,6 @@ class TestBrowseUploadVolume(cloudstackTestCase):
except Exception as e:
self.fail("Exception occurred : %s" % e)
return
- @classmethod
- def tearDownClass(self):
- try:
- self.apiclient = super(TestBrowseUploadVolume,self).getClsTestClient().getApiClient()
- cleanup_resources(self.apiclient, self._cleanup)
- except Exception as e:
- raise Exception("Warning: Exception during cleanup : %s" % e)
- return
-
@attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="true")
@@ -2285,6 +2468,212 @@ class TestBrowseUploadVolume(cloudstackTestCase):
return
+ @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="true")
+ def test_11_migrate_upload_volume(self):
+ """
+ Test Browser_Upload_Volume_migrate_upload_volume
+ """
+ self.debug("========================= Test 40 Test Browser_Upload_Volume_Migration=========================")
+
+ browseup_vol=self.browse_upload_volume()
+ vm1details=self.deploy_vm()
+ self.attach_volume(vm1details,browseup_vol.id)
+ self.volume_migration(browseup_vol, vm1details)
+ self.debug("========================= Test 41 Test VM Operations after Browser_Upload_Volume_Migration=========================")
+ self.vmoperations(vm1details)
+
+ self.debug("========================= Test 42 Detach Browser_Upload_Volume after Migration and attach to a new VM=========================")
+ self.detach_volume(vm1details,browseup_vol.id)
+ vm2details=self.deploy_vm()
+ self.attach_volume(vm2details,browseup_vol.id)
+ self.vmoperations(vm2details)
+
+ self.debug("========================= Test 43 Detach Browser_Upload_Volume and Migrate to another storage=========================")
+
+ self.detach_volume(vm2details,browseup_vol.id)
+ self.volume_migration(browseup_vol, "None")
+
+ self.debug("========================= Test 44 Attach detached Browser_Upload_Volume after Migration =========================")
+
+ self.attach_volume(vm2details,browseup_vol.id)
+ self.vmoperations(vm2details)
+
+ self.debug("========================= Test 45 Detach ,Resize,Attach Browser_Upload_Volume after Migration =========================")
+
+ self.detach_volume(vm2details,browseup_vol.id)
+ self.resize_volume(browseup_vol.id)
+ self.attach_volume(vm2details,browseup_vol.id)
+ self.vmoperations(vm2details)
+
+ self.detach_volume(vm2details,browseup_vol.id)
+
+ self.cleanup.append(browseup_vol)
+ self.cleanup.append(vm2details)
+ self.cleanup.append(vm1details)
+ return
+
+
+ @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="true")
+ def test_12_Browser_Upload_Volume_with_all_API_parameters(self):
+ """
+ Test Browser_Upload_Volumewith all API parameters
+ """
+ try:
+
+ self.debug("========================= Test 46 & 47 Upload volume with account name and domainid========================")
+
+ browseup_vol1=self.browse_upload_volume()
+
+ self.debug("========================= Test 48 Upload volume with projectid========================")
+ browseup_vol2=self.browse_upload_volume_with_projectid(self.project.id)
+
+ self.debug("========================= Test 49 Upload volume with out mandatory param zone id ========================")
+
+ browseup_vol2=self.browse_upload_volume_with_out_zoneid()
+
+
+ self.debug("========================= Test 50 Upload volume with out mandatory param format ========================")
+
+ browseup_vol3=self.browse_upload_volume_with_out_format()
+
+ except Exception as e:
+ self.fail("Exception occurred : %s" % e)
+ return
+
+
+
+ @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="true")
+ def test_13_Browser_Upload_Volume_volume_resource_limits(self):
+ """
+ Test Browser_Upload_Volume Volume Resource limits
+ """
+ try:
+
+ self.debug("========================= Test 51 Upload volume and verify volume limits========================")
+ initialvolumelimit=self.getvolumelimts()
+ browseup_vol1=self.browse_upload_volume()
+ afteruploadvolumelimit=self.getvolumelimts()
+
+ if int(afteruploadvolumelimit)!=(int(initialvolumelimit)+1):
+ self.fail("Volume Resouce Count is not updated")
+
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=deleted_browse_up_vol1.id
+ self.apiclient.deleteVolume(cmd)
+
+
+ except Exception as e:
+ self.fail("Exception occurred : %s" % e)
+ return
+
+ @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="true")
+ def test_14_Browser_Upload_Volume_secondary_storage_resource_limits(self):
+ """
+ Test Browser_Upload_Volume Secondary Storage Resource limits
+ """
+ try:
+
+ self.debug("========================= Test 52 Upload volume and verify secondary storage limits========================")
+
+ initialsecondarystoragelimit=self.getstoragelimts(11)
+ browseup_vol1=self.browse_upload_volume()
+ volumedetails=Volume.list(
+ self.apiclient,
+ id=browseup_vol1.id)
+ afteruploadsecondarystoragelimit=self.getstoragelimts(11)
+
+ if afteruploadsecondarystoragelimit!=(initialsecondarystoragelimit+volumedetails[0].size):
+ self.fail("Secondary Storage Resouce Count is not updated")
+
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=deleted_browse_up_vol1.id
+ self.apiclient.deleteVolume(cmd)
+
+
+ except Exception as e:
+ self.fail("Exception occurred : %s" % e)
+ return
+
+ @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="true")
+ def test_15_Browser_Upload_Volume_primary_storage_resource_limits(self):
+ """
+ Test Browser_Upload_Volume Primary Storage Resource limits
+ """
+ try:
+
+ self.debug("========================= Test 53 Attach Upload volume and verify primary storage limits========================")
+
+ initialprimarystoragelimit=self.getstoragelimts(10)
+ browseup_vol1=self.browse_upload_volume()
+ volumedetails=Volume.list(
+ self.apiclient,
+ id=browseup_vol1.id)
+ afteruploadprimarystoragelimit=self.getstoragelimts(10)
+
+ if afteruploadprimarystoragelimit!=(initialprimarystoragelimit+volumedetails[0].size):
+ self.fail("Primary Storage Resource Count is not updated")
+
+ except Exception as e:
+ self.fail("Exception occurred : %s" % e)
+ return
+
+ @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="true")
+ def test_16_Browser_Upload_volume_resource_limits_after_deletion(self):
+ """
+ Test Browser_Upload_Volume resource_limits_after_deletion
+ """
+ try:
+ self.debug("========================= Test 54 Delete Upload volume and verify volume limits========================")
+ browseup_vol1=self.browse_upload_volume()
+ initialvolumelimit=self.getvolumelimts()
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browseup_vol1.id
+ self.apiclient.deleteVolume(cmd)
+
+ aftervolumelimit=self.getvolumelimts()
+
+ if aftervolumelimit!=(initialvolumelimit-1):
+ self.fail("Volume Resource Count is not updated after deletion")
+
+ except Exception as e:
+ self.fail("Exception occurred : %s" % e)
+ return
+
+
+
+ @attr(tags = ["advanced", "advancedns", "smoke", "basic"], required_hardware="true")
+ def test_17_Browser_Upload_Volume_secondary_storage_resource_limits_after_deletion(self):
+ """
+ Test Browser_Upload_Volume secondary_storage_resource_limits_after_deletion
+ """
+ try:
+ self.debug("========================= Test 55 Delete Upload volume and secondary storage limits========================")
+
+ browseup_vol1=self.browse_upload_volume()
+
+ volumedetails=Volume.list(
+ self.apiclient,
+ id=browseup_vol1.id)
+
+ initialuploadsecondarystoragelimit=self.getstoragelimts(11)
+
+ cmd=deleteVolume.deleteVolumeCmd()
+ cmd.id=browseup_vol1.id
+ self.apiclient.deleteVolume(cmd)
+
+ afteruploadsecondarystoragelimit=self.getstoragelimts(11)
+
+ if afteruploadsecondarystoragelimit!=(initialuploadsecondarystoragelimit-volumedetails[0].size):
+ self.fail("Secondary Storage Resouce Count is not updated after deletion")
+
+ except Exception as e:
+ self.fail("Exception occurred : %s" % e)
+ return
+
+
@classmethod
def tearDownClass(self):
try: