def test_override_compression(): base_yml = '%s/override/override.yaml' % globals.yaml_dir timeout = globals.status_check_timeout sc = None pvc = None pod = None try: # Creating storage class and pvc sc = manager.create_sc(base_yml) provisioning, compression, cpg_name, snap_cpg, desc, accessProtocol = get_sc_properties( base_yml) logging.getLogger().info( "Volume properties set in SC, provisioning::%s compression::%s CPG::%s SNAP CPG::%s desc::%s Protocol::%s" % (provisioning, compression, cpg_name, snap_cpg, desc, accessProtocol)) pvc = manager.create_pvc(base_yml) flag, base_pvc_obj = manager.check_status( 30, pvc.metadata.name, kind='pvc', status='Bound', namespace=pvc.metadata.namespace) assert flag is True, "PVC %s status check timed out, not in Bound state yet..." % base_pvc_obj.metadata.name logging.getLogger().info("Pvc in bound state :: %s" % base_pvc_obj.metadata.name) #Get pvc crd details pvc_crd = manager.get_pvc_crd(base_pvc_obj.spec.volume_name) vol_name, vol_cpg, vol_snpCpg, vol_provType, vol_desc, vol_compr = manager.get_pvc_editable_properties( pvc_crd) assert compression != vol_compr, "Override of compression parameter failed for %s" % vol_name logging.getLogger().info( "Overriden Volume properties, name::%s usrCPG::%s snpCPG::%s provType::%s compr::%s desc::%s" % (vol_name, vol_cpg, vol_snpCpg, vol_provType, vol_compr, vol_desc)) # Get proprties from the array hpe3par_volume = manager.get_volume_from_array(globals.hpe3par_cli, vol_name) assert hpe3par_volume[ 'compressionState'] == 2, "compressionState does not match ovveride compression parameter" # (compressionState is set to 1 if compression is enabled on 3PAR volume) pod = manager.create_pod(base_yml) flag, pod_obj = manager.check_status(timeout, pod.metadata.name, kind='pod', status='Running', namespace=pod.metadata.namespace) assert flag is True, "Pod %s status check timed out, not in Running state yet..." % pod.metadata.name except Exception as e: logging.getLogger().error( "Exception in test_override_compression :: %s" % e) raise e finally: # Now cleanup secret, sc, pv, pvc, pod cleanup(sc, pvc, pod)
def test_override_and_expand_volume(): base_yml = '%s/override/override.yaml' % globals.yaml_dir timeout = globals.status_check_timeout sc = None pvc = None pod = None try: # Creating storage class and pvc sc = manager.create_sc(base_yml) provisioning, compression, cpg_name, snap_cpg, desc, accessProtocol = get_sc_properties( base_yml) logging.getLogger().info( "Volume properties set in SC, provisioning::%s compression::%s CPG::%s SNAP CPG::%s desc::%s Protocol::%s" % (provisioning, compression, cpg_name, snap_cpg, desc, accessProtocol)) pvc = manager.create_pvc(base_yml) flag, base_pvc_obj = manager.check_status( 30, pvc.metadata.name, kind='pvc', status='Bound', namespace=pvc.metadata.namespace) assert flag is True, "PVC %s status check timed out, not in Bound state yet..." % base_pvc_obj.metadata.name logging.getLogger().info("Pvc in bound state :: %s" % base_pvc_obj.metadata.name) #Get pvc crd details pvc_crd = manager.get_pvc_crd(base_pvc_obj.spec.volume_name) vol_name, vol_cpg, vol_snpCpg, vol_provType, vol_desc, vol_compr = manager.get_pvc_editable_properties( pvc_crd) assert cpg_name != vol_cpg, "Override failed for %s" % vol_name logging.getLogger().info( "Overriden Volume properties, name::%s usrCPG::%s snpCPG::%s provType::%s compr::%s desc::%s" % (vol_name, vol_cpg, vol_snpCpg, vol_provType, vol_compr, vol_desc)) # Get proprties from the array hpe3par_volume = manager.get_volume_from_array(globals.hpe3par_cli, vol_name) assert hpe3par_volume[ 'userCPG'] == vol_cpg, "userCPG does not match ovveride cpg parameter" # proceed to expanding pvc size_in_gb = '30' patch_json = { 'spec': { 'resources': { 'requests': { 'storage': size_in_gb + 'Gi' } } } } mod_pvc = manager.patch_pvc(pvc.metadata.name, pvc.metadata.namespace, patch_json) logging.getLogger().info("Patched PVC %s" % mod_pvc) sleep(20) # Creating pod pod = manager.create_pod(base_yml) flag, pod_obj = manager.check_status(timeout, pod.metadata.name, kind='pod', status='Running', namespace=pod.metadata.namespace) assert flag is True, "Pod %s status check timed out, not in Running state yet..." % pod.metadata.name # Now check if volume in 3par has increased size volume = manager.get_volume_from_array(globals.hpe3par_cli, vol_name) assert volume['sizeMiB'] == int( size_in_gb) * 1024, "Volume on array does not have updated size" # Check if PVC has increaded size mod_pvc = manager.hpe_read_pvc_object(pvc.metadata.name, pvc.metadata.namespace) logging.getLogger().info("PVC after expansion %s" % mod_pvc) assert mod_pvc.spec.resources.requests[ 'storage'] == "%sGi" % size_in_gb, "PVC %s does not have updated size" % pvc.metadata.name except Exception as e: logging.getLogger().error("Exception in test_override_usrCPG :: %s" % e) raise e finally: # Now cleanup secret, sc, pv, pvc, pod cleanup(sc, pvc, pod)