@@ -356,6 +356,7 @@ def __init__(
356356 key_encoding1 = None ,
357357 key_label2 = None ,
358358 key_encoding2 = None ,
359+ raw = False ,
359360 ):
360361 """Dataset DD data type to be used in a DDStatement.
361362 Defaults and validation are handled my mvscmd.
@@ -539,19 +540,23 @@ def __init__(
539540 super ().__init__ (dataset_name )
540541 self .disposition = disposition
541542 self .type = type
542-
543- if primary_unit and space_units .get (primary_unit .lower ()) is not None :
544- primary_unit = space_units .get (primary_unit .lower ())
545- if secondary_unit and space_units .get (secondary_unit .lower ()) is not None :
546- secondary_unit = space_units .get (secondary_unit .lower ())
547- if primary and primary_unit :
548- self .primary = str (primary ) + primary_unit
549- else :
550- self .primary = primary
551- if secondary and secondary_unit :
552- self .secondary = str (secondary ) + secondary_unit
543+ self .raw = raw
544+ if not raw :
545+ if primary_unit and space_units .get (primary_unit .lower ()) is not None :
546+ primary_unit = space_units .get (primary_unit .lower ())
547+ if secondary_unit and space_units .get (secondary_unit .lower ()) is not None :
548+ secondary_unit = space_units .get (secondary_unit .lower ())
549+ if primary and primary_unit :
550+ self .primary = str (primary ) + primary_unit
551+ else :
552+ self .primary = primary
553+ if secondary and secondary_unit :
554+ self .secondary = str (secondary ) + secondary_unit
555+ else :
556+ self .secondary = secondary
553557 else :
554- self .secondary = secondary
558+ self .primary = None
559+ self .secondary = None
555560
556561 DISPOSITION_ARG_MAP = {"catlg" : "catalog" , "uncatlg" : "uncatalog" }
557562 self .normal_disposition = (
@@ -591,68 +596,73 @@ def _build_arg_string(self):
591596 str
592597 String to be used by mvscmd/mvscmdauth.
593598 """
594- if not self .disposition :
595- return ""
596- mvscmd_string = ",{0}" .format (self .disposition ) if self .disposition else ""
597- mvscmd_string = self ._append_mvscmd_string (mvscmd_string , "type" , self .type )
598- mvscmd_string = self ._append_mvscmd_string (
599- mvscmd_string , "primary" , self .primary
600- )
601- mvscmd_string = self ._append_mvscmd_string (
602- mvscmd_string , "secondary" , self .secondary
603- )
604- mvscmd_string = self ._append_mvscmd_string (
605- mvscmd_string , "normdisp" , self .normal_disposition
606- )
607- mvscmd_string = self ._append_mvscmd_string (
608- mvscmd_string , "conddisp" , self .conditional_disposition
609- )
610- mvscmd_string = self ._append_mvscmd_string (
611- mvscmd_string , "blksize" , self .block_size
612- )
613- mvscmd_string = self ._append_mvscmd_string (
614- mvscmd_string , "dirblks" , self .directory_blocks
615- )
616- mvscmd_string = self ._append_mvscmd_string (
617- mvscmd_string , "recfm" , self .record_format
618- )
619- mvscmd_string = self ._append_mvscmd_string (
620- mvscmd_string , "lrecl" , self .record_length
621- )
622- mvscmd_string = self ._append_mvscmd_string (
623- mvscmd_string , "storclas" , self .storage_class
624- )
625- mvscmd_string = self ._append_mvscmd_string (
626- mvscmd_string , "dataclas" , self .data_class
627- )
628- mvscmd_string = self ._append_mvscmd_string (
629- mvscmd_string , "mgmtclas" , self .management_class
630- )
631- mvscmd_string = self ._append_mvscmd_string (
632- mvscmd_string , "keylen" , self .key_length
633- )
634- mvscmd_string = self ._append_mvscmd_string (
635- mvscmd_string , "keyoffset" , self .key_offset
636- )
637- mvscmd_string = self ._append_mvscmd_string (
638- mvscmd_string , "volumes" , self .volumes
639- )
640- mvscmd_string = self ._append_mvscmd_string (
641- mvscmd_string , "dskeylbl" , self .dataset_key_label
642- )
643- mvscmd_string = self ._append_mvscmd_string (
644- mvscmd_string , "keylab1" , self .key_label1
645- )
646- mvscmd_string = self ._append_mvscmd_string (
647- mvscmd_string , "keylab2" , self .key_label2
648- )
649- mvscmd_string = self ._append_mvscmd_string (
650- mvscmd_string , "keycd1" , self .key_encoding1
651- )
652- mvscmd_string = self ._append_mvscmd_string (
653- mvscmd_string , "keycd2" , self .key_encoding2
654- )
655- return mvscmd_string
599+ if self .raw :
600+ mvscmd_string = ",{0}" .format (self .disposition ) if self .disposition else ""
601+ mvscmd_string += ",raw"
602+ return mvscmd_string
603+ else :
604+ if not self .disposition :
605+ return ""
606+ mvscmd_string = ",{0}" .format (self .disposition ) if self .disposition else ""
607+ mvscmd_string = self ._append_mvscmd_string (mvscmd_string , "type" , self .type )
608+ mvscmd_string = self ._append_mvscmd_string (
609+ mvscmd_string , "primary" , self .primary
610+ )
611+ mvscmd_string = self ._append_mvscmd_string (
612+ mvscmd_string , "secondary" , self .secondary
613+ )
614+ mvscmd_string = self ._append_mvscmd_string (
615+ mvscmd_string , "normdisp" , self .normal_disposition
616+ )
617+ mvscmd_string = self ._append_mvscmd_string (
618+ mvscmd_string , "conddisp" , self .conditional_disposition
619+ )
620+ mvscmd_string = self ._append_mvscmd_string (
621+ mvscmd_string , "blksize" , self .block_size
622+ )
623+ mvscmd_string = self ._append_mvscmd_string (
624+ mvscmd_string , "dirblks" , self .directory_blocks
625+ )
626+ mvscmd_string = self ._append_mvscmd_string (
627+ mvscmd_string , "recfm" , self .record_format
628+ )
629+ mvscmd_string = self ._append_mvscmd_string (
630+ mvscmd_string , "lrecl" , self .record_length
631+ )
632+ mvscmd_string = self ._append_mvscmd_string (
633+ mvscmd_string , "storclas" , self .storage_class
634+ )
635+ mvscmd_string = self ._append_mvscmd_string (
636+ mvscmd_string , "dataclas" , self .data_class
637+ )
638+ mvscmd_string = self ._append_mvscmd_string (
639+ mvscmd_string , "mgmtclas" , self .management_class
640+ )
641+ mvscmd_string = self ._append_mvscmd_string (
642+ mvscmd_string , "keylen" , self .key_length
643+ )
644+ mvscmd_string = self ._append_mvscmd_string (
645+ mvscmd_string , "keyoffset" , self .key_offset
646+ )
647+ mvscmd_string = self ._append_mvscmd_string (
648+ mvscmd_string , "volumes" , self .volumes
649+ )
650+ mvscmd_string = self ._append_mvscmd_string (
651+ mvscmd_string , "dskeylbl" , self .dataset_key_label
652+ )
653+ mvscmd_string = self ._append_mvscmd_string (
654+ mvscmd_string , "keylab1" , self .key_label1
655+ )
656+ mvscmd_string = self ._append_mvscmd_string (
657+ mvscmd_string , "keylab2" , self .key_label2
658+ )
659+ mvscmd_string = self ._append_mvscmd_string (
660+ mvscmd_string , "keycd1" , self .key_encoding1
661+ )
662+ mvscmd_string = self ._append_mvscmd_string (
663+ mvscmd_string , "keycd2" , self .key_encoding2
664+ )
665+ return mvscmd_string
656666
657667
658668class VolumeDefinition (DataDefinition ):
0 commit comments