4
4
# Apache License, Version 2.0 (see https://opensource.org/licenses/Apache-2.0)
5
5
6
6
from __future__ import (absolute_import , division , print_function )
7
+
8
+ from ansible_collections .ibm .ibm_zos_cics .plugins .module_utils .icetool import _run_icetool
9
+ from ansible_collections .ibm .ibm_zos_core .plugins .module_utils .better_arg_parser import BetterArgParser
7
10
__metaclass__ = type
8
11
9
12
from ansible .module_utils .basic import AnsibleModule
10
- from ansible_collections .ibm .ibm_zos_cics .plugins .module_utils import dataset_utils
13
+ from ansible_collections .ibm .ibm_zos_cics .plugins .module_utils .dataset_utils import (
14
+ _build_idcams_define_cmd , _data_set , _dataset_size , _run_idcams , _run_listds , _run_iefbr14 )
11
15
from ansible_collections .ibm .ibm_zos_cics .plugins .module_utils .response import _response , _state
12
16
from ansible_collections .ibm .ibm_zos_core .plugins .module_utils .better_arg_parser import BetterArgParser
13
17
from ansible_collections .ibm .ibm_zos_core .plugins .module_utils .dd_statement import DatasetDefinition
@@ -61,16 +65,16 @@ def _get_arg_defs(self): # type: () -> dict
61
65
},
62
66
}
63
67
64
- def _get_data_set_object (self , size , result ): # type: (dataset_utils. _dataset_size, dict) -> dataset_utils. _data_set
65
- return dataset_utils . _data_set (
68
+ def _get_data_set_object (self , size , result ): # type: (_dataset_size, dict) -> _data_set
69
+ return _data_set (
66
70
size = size ,
67
71
name = result .get (_dataset_constants ["DATASET_LOCATION_ALIAS" ]).upper (),
68
72
state = result .get (_dataset_constants ["TARGET_STATE_ALIAS" ]),
69
73
exists = False ,
70
74
vsam = False )
71
75
72
76
def _get_data_set_size (self , result ):
73
- return dataset_utils . _dataset_size (
77
+ return _dataset_size (
74
78
unit = result .get (_dataset_constants ["PRIMARY_SPACE_UNIT_ALIAS" ]),
75
79
primary = result .get (_dataset_constants ["PRIMARY_SPACE_VALUE_ALIAS" ]),
76
80
secondary = _dataset_constants ["SECONDARY_SPACE_VALUE_DEFAULT" ])
@@ -93,11 +97,11 @@ def validate_parameters(self): # type: () -> None
93
97
self .data_set = self ._get_data_set_object (size , result )
94
98
95
99
def create_data_set (self ):
96
- create_cmd = dataset_utils . _build_idcams_define_cmd ({})
100
+ create_cmd = _build_idcams_define_cmd ({})
97
101
98
102
def build_vsam_data_set (self , create_cmd , message ): # type: (str, str) -> None
99
103
try :
100
- idcams_executions = dataset_utils . _run_idcams (
104
+ idcams_executions = _run_idcams (
101
105
cmd = create_cmd ,
102
106
name = message ,
103
107
location = self .data_set ["name" ],
@@ -111,7 +115,7 @@ def build_vsam_data_set(self, create_cmd, message): # type: (str, str) -> None
111
115
112
116
def build_seq_data_set (self , ddname , definition ): # type: (str, DatasetDefinition) -> None
113
117
try :
114
- iefbr14_executions = dataset_utils . _run_iefbr14 (ddname , definition )
118
+ iefbr14_executions = _run_iefbr14 (ddname , definition )
115
119
self .result ["executions" ] = self .result ["executions" ] + iefbr14_executions
116
120
self .result ["changed" ] = True
117
121
except Exception as e :
@@ -124,7 +128,7 @@ def delete_data_set(self, message): # type: (str) -> None
124
128
''' .format (self .data_set ["name" ])
125
129
126
130
try :
127
- idcams_executions = dataset_utils . _run_idcams (
131
+ idcams_executions = _run_idcams (
128
132
cmd = delete_cmd ,
129
133
name = message ,
130
134
location = self .data_set ["name" ],
@@ -137,10 +141,17 @@ def delete_data_set(self, message): # type: (str) -> None
137
141
138
142
def init_data_set (self ): # type: () -> None
139
143
if self .data_set ["exists" ]:
140
- self .result ["end_state" ] = _state (exists = self .data_set ["exists" ], vsam = self .data_set ["vsam" ])
141
- self ._exit ()
144
+ icetool_executions , record_count = _run_icetool (self .data_set ["name" ])
145
+ self .result ["executions" ] = self .result ["executions" ] + icetool_executions
146
+ if record_count ["record_count" ] <= 0 :
147
+ self .result ["end_state" ] = _state (exists = self .data_set ["exists" ], vsam = self .data_set ["vsam" ])
148
+ self ._exit ()
149
+ else :
150
+ self .delete_data_set ()
151
+ self .data_set = self .get_data_set_state (self .data_set )
152
+ self .create_data_set ()
142
153
143
- if not self . data_set [ "exists" ] :
154
+ else :
144
155
self .create_data_set ()
145
156
146
157
def warm_data_set (self ): # type: () -> None
@@ -177,7 +188,7 @@ def get_target_method(self, target): # type: (str) -> [str | invalid_target_sta
177
188
178
189
def get_data_set_state (self , data_set ): # type: (dict) -> dict
179
190
try :
180
- listds_executions , ds_status = dataset_utils . _run_listds (data_set ["name" ])
191
+ listds_executions , ds_status = _run_listds (data_set ["name" ])
181
192
182
193
data_set ["exists" ] = ds_status ["exists" ]
183
194
data_set ["vsam" ] = ds_status ["vsam" ]
0 commit comments