1637
1637
RawInputDefinition ,
1638
1638
RawOutputDefinition ,
1639
1639
)
1640
+ from ansible_collections .ibm .ibm_zos_core .plugins .module_utils .import_handler import ZOAUImportError
1640
1641
from ansible_collections .ibm .ibm_zos_core .plugins .module_utils import data_set
1641
1642
from ansible .module_utils .basic import AnsibleModule
1642
1643
from ansible_collections .ibm .ibm_zos_core .plugins .module_utils .ansible_module import (
1643
1644
AnsibleModuleHelper ,
1644
1645
)
1645
1646
import re
1647
+ import traceback
1646
1648
from ansible .module_utils .six import PY3
1647
1649
1648
1650
if PY3 :
1649
1651
from shlex import quote
1650
1652
else :
1651
1653
from pipes import quote
1652
1654
1655
+ try :
1656
+ from zoautil_py import datasets
1657
+ except Exception :
1658
+ datasets = ZOAUImportError (traceback .format_exc ())
1653
1659
1654
1660
ENCODING_ENVIRONMENT_VARS = {"_BPXK_AUTOCVT" : "OFF" }
1655
1661
@@ -2580,9 +2586,11 @@ def get_dd_name_and_key(dd):
2580
2586
key = ""
2581
2587
if dd .get ("dd_data_set" ):
2582
2588
dd_name = dd .get ("dd_data_set" ).get ("dd_name" )
2583
- data_set_name = resolve_data_set_names (dd .get ("dd_data_set" ).get ("data_set_name" ),
2584
- dd .get ("dd_data_set" ).get ("disposition" ))
2589
+ data_set_name , disposition = resolve_data_set_names (dd .get ("dd_data_set" ).get ("data_set_name" ),
2590
+ dd .get ("dd_data_set" ).get ("disposition" ),
2591
+ dd .get ("dd_data_set" ).get ("type" ))
2585
2592
dd .get ("dd_data_set" )["data_set_name" ] = data_set_name
2593
+ dd .get ("dd_data_set" )["disposition" ] = disposition
2586
2594
key = "dd_data_set"
2587
2595
elif dd .get ("dd_unix" ):
2588
2596
dd_name = dd .get ("dd_unix" ).get ("dd_name" )
@@ -2627,7 +2635,7 @@ def set_extra_attributes_in_dd(dd, tmphlq, key):
2627
2635
return dd
2628
2636
2629
2637
2630
- def resolve_data_set_names (dataset , disposition ):
2638
+ def resolve_data_set_names (dataset , disposition , type ):
2631
2639
"""Resolve cases for data set names as relative gds or positive
2632
2640
that could be accepted if disposition is new.
2633
2641
Parameters
@@ -2636,15 +2644,27 @@ def resolve_data_set_names(dataset, disposition):
2636
2644
Data set name to determine if is a GDS relative name or regular name.
2637
2645
disposition : str
2638
2646
Disposition of data set for it creation.
2647
+ type : str
2648
+ Type of dataset
2639
2649
Returns
2640
2650
-------
2641
2651
str
2642
2652
The absolute name of dataset or relative positive if disposition is new.
2653
+ str
2654
+ The disposition base on the system
2643
2655
"""
2656
+ if disposition :
2657
+ disp = disposition
2658
+ else :
2659
+ disp = "shr"
2660
+
2644
2661
if data_set .DataSet .is_gds_relative_name (dataset ):
2645
2662
if data_set .DataSet .is_gds_positive_relative_name (dataset ):
2646
- if disposition and disposition == "new" :
2647
- return dataset
2663
+ if disp == "new" :
2664
+ if type :
2665
+ return str (datasets .create (dataset , type ).name ), "shr"
2666
+ else :
2667
+ return str (datasets .create (dataset , "seq" ).name ), "shr"
2648
2668
else :
2649
2669
raise ("To generate a new GDS as {0} disposition 'new' is required." .format (dataset ))
2650
2670
else :
@@ -2653,14 +2673,14 @@ def resolve_data_set_names(dataset, disposition):
2653
2673
)
2654
2674
src = data .name
2655
2675
if data .is_gds_active :
2656
- if disposition and disposition == "new" :
2676
+ if disposition and disp == "new" :
2657
2677
raise ("GDS {0} already created, incorrect parameters for disposition and data_set_name" .format (src ))
2658
2678
else :
2659
- return src
2679
+ return src , disposition
2660
2680
else :
2661
2681
raise ("{0} does not exist" .format (src ))
2662
2682
else :
2663
- return dataset
2683
+ return dataset , disp
2664
2684
2665
2685
2666
2686
def build_data_definition (dd ):
0 commit comments