def test_pvc_delete_and_verify_size_is_returned_to_backend_pool( self, pvc_factory, pod_factory): """ Test case to verify after delete pvc size returned to backend pools """ # TODO: Get exact value of replica size replica_size = 3 used_before_creating_pvc = fetch_used_size() logger.info(f"Used before creating PVC {used_before_creating_pvc}") pvc_obj = pvc_factory(interface=constants.CEPHBLOCKPOOL, size=10, status=constants.STATUS_BOUND) pod_obj = pod_factory(interface=constants.CEPHBLOCKPOOL, pvc=pvc_obj, status=constants.STATUS_RUNNING) pvc_obj.reload() # Write 3Gb pod.run_io_and_verify_mount_point(pod_obj, bs='10M', count='300') exp_size = used_before_creating_pvc + (3 * replica_size) used_after_io = fetch_used_size(exp_size) logger.info(f"Used space after IO {used_after_io}") rbd_image_id = pvc_obj.image_uuid pod_obj.delete() pod_obj.ocp.wait_for_delete(resource_name=pod_obj.name) pvc_obj.delete() pvc_obj.ocp.wait_for_delete(resource_name=pvc_obj.name) verify_pv_not_exists(pvc_obj, constants.DEFAULT_BLOCKPOOL, rbd_image_id) used_after_deleting_pvc = fetch_used_size(used_before_creating_pvc) logger.info(f"Used after deleting PVC {used_after_deleting_pvc}")
def test_pvc_delete_and_verify_size_is_returned_to_backend_pool(self): """ Test case to verify after delete pvc size returned to backend pools """ used_before_creating_pvc = check_ceph_used_space() logger.info(f"Used before creating pvc {used_before_creating_pvc}") pvc_obj = create_pvc_and_verify_pvc_exists( self.sc_obj.name, self.cbp_obj.name ) pod_obj = helpers.create_pod( interface_type=constants.CEPHBLOCKPOOL, pvc_name=pvc_obj.name ) helpers.wait_for_resource_state(pod_obj, constants.STATUS_RUNNING) pod_obj.reload() used_percentage = pod.run_io_and_verify_mount_point(pod_obj) assert used_percentage > '90%', "I/O's didn't run completely" used_after_creating_pvc = check_ceph_used_space() logger.info(f"Used after creating pvc {used_after_creating_pvc}") assert used_before_creating_pvc < used_after_creating_pvc pod_obj.delete() pvc_obj.delete() verify_pv_not_exists(pvc_obj, self.cbp_obj.name) used_after_deleting_pvc = check_ceph_used_space() logger.info(f"Used after deleting pvc {used_after_deleting_pvc}") assert used_after_deleting_pvc < used_after_creating_pvc assert (abs( used_after_deleting_pvc - used_before_creating_pvc) < 0.2 )
def test_pvc_delete_and_verify_size_is_returned_to_backend_pool(self): """ Test case to verify after delete pvc size returned to backend pools """ used_before_creating_pvc = check_ceph_used_space() logger.info(f"Used before creating pvc {used_before_creating_pvc}") pvc_obj = create_pvc_and_verify_pvc_exists( self.sc_obj.name, self.cbp_obj.name ) pod_data = templating.load_yaml_to_dict(constants.CSI_RBD_POD_YAML) pod_data['spec']['volumes'][0]['persistentVolumeClaim'][ 'claimName' ] = pvc_obj.name pod_obj = helpers.create_pod(**pod_data) used_percentage = pod.run_io_and_verify_mount_point(pod_obj) assert used_percentage > '90%', "I/O's didn't run completely" used_after_creating_pvc = check_ceph_used_space() logger.info(f"Used after creating pvc {used_after_creating_pvc}") assert used_before_creating_pvc < used_after_creating_pvc pod_obj.delete() pvc_obj.delete() verify_pv_not_exists(pvc_obj.backed_pv, self.cbp_obj.name) used_after_deleting_pvc = check_ceph_used_space() logger.info(f"Used after deleting pvc {used_after_deleting_pvc}") assert used_after_deleting_pvc < used_after_creating_pvc assert (abs( used_after_deleting_pvc - used_before_creating_pvc) < 0.2)
def test_pvc_delete_and_verify_size_is_returned_to_backend_pool( self, pause_cluster_load, pvc_factory, pod_factory ): """ Test case to verify after delete pvc size returned to backend pools """ cbp_name = helpers.default_ceph_block_pool() # TODO: Get exact value of replica size replica_size = 3 pvc_obj = pvc_factory( interface=constants.CEPHBLOCKPOOL, size=10, status=constants.STATUS_BOUND ) pod_obj = pod_factory( interface=constants.CEPHBLOCKPOOL, pvc=pvc_obj, status=constants.STATUS_RUNNING ) pvc_obj.reload() used_before_io = fetch_used_size(cbp_name) logger.info(f"Used before IO {used_before_io}") # Write 6Gb pod.run_io_and_verify_mount_point(pod_obj, bs='10M', count='600') exp_size = used_before_io + (6 * replica_size) used_after_io = fetch_used_size(cbp_name, exp_size) logger.info(f"Used space after IO {used_after_io}") rbd_image_id = pvc_obj.image_uuid pod_obj.delete() pod_obj.ocp.wait_for_delete(resource_name=pod_obj.name) pvc_obj.delete() pvc_obj.ocp.wait_for_delete(resource_name=pvc_obj.name) verify_pv_not_exists( pvc_obj, cbp_name, rbd_image_id ) used_after_deleting_pvc = fetch_used_size(cbp_name, used_before_io) logger.info(f"Used after deleting PVC {used_after_deleting_pvc}")
def test_pvc_delete_and_verify_size_is_returned_to_backend_pool(self): """ Test case to verify after delete pvc size returned to backend pools """ failed_to_delete = [] ceph_obj1 = CephCluster() used_before_creating_pvc = ceph_obj1.check_ceph_pool_used_space( cbp_name=self.cbp_obj.name) logger.info(f"Used before creating PVC {used_before_creating_pvc}") pvc_obj = create_pvc_and_verify_pvc_exists(self.sc_obj.name, self.cbp_obj.name) pod_obj = helpers.create_pod(interface_type=constants.CEPHBLOCKPOOL, pvc_name=pvc_obj.name) helpers.wait_for_resource_state(pod_obj, constants.STATUS_RUNNING) pod_obj.reload() pod.run_io_and_verify_mount_point(pod_obj, bs='10M', count='300') used_after_creating_pvc = ceph_obj1.check_ceph_pool_used_space( cbp_name=self.cbp_obj.name) logger.info(f"Used after creating PVC {used_after_creating_pvc}") assert used_before_creating_pvc < used_after_creating_pvc rbd_image_id = pvc_obj.image_uuid for resource in pod_obj, pvc_obj: resource.delete() try: resource.ocp.wait_for_delete(resource) except TimeoutError: failed_to_delete.append(resource) if failed_to_delete: raise UnexpectedBehaviour( f"Failed to delete resources: {failed_to_delete}") verify_pv_not_exists(pvc_obj, self.cbp_obj.name, rbd_image_id) ceph_obj2 = CephCluster() used_after_deleting_pvc = ceph_obj2.check_ceph_pool_used_space( cbp_name=self.cbp_obj.name) logger.info(f"Used after deleting PVC {used_after_deleting_pvc}") assert used_after_deleting_pvc < used_after_creating_pvc assert (abs(used_after_deleting_pvc - used_before_creating_pvc) < 0.5)