Skip to content

Commit 02986de

Browse files
Tom-LathamGitHub Enterprise
authored andcommitted
Merge pull request ansible-collections#142 from CICS/csd
Create a CSD dataset
2 parents 6658580 + 7ca704e commit 02986de

24 files changed

+1544
-1
lines changed

meta/runtime.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ action_groups:
1414
- trace
1515
- intrapartition
1616
- auxiliary_temp
17+
- csd

plugins/action/csd.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# (c) Copyright IBM Corp. 2023
2+
# Apache License, Version 2.0 (see https://opensource.org/licenses/Apache-2.0)
3+
4+
from __future__ import absolute_import, division, print_function
5+
6+
__metaclass__ = type
7+
8+
from ansible_collections.ibm.ibm_zos_cics.plugins.controller_utils.module_action_plugin import (
9+
_ModuleActionPlugin,
10+
)
11+
12+
13+
class ActionModule(_ModuleActionPlugin):
14+
def run(self, tmp=None, task_vars=None):
15+
return super(ActionModule, self)._run(
16+
ds_name="dfhcsd",
17+
module_name="csd",
18+
cics_data_sets_required=True,
19+
tmp=tmp,
20+
task_vars=task_vars,
21+
)

plugins/module_utils/csd.py

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# -*- coding: utf-8 -*-
2+
3+
# (c) Copyright IBM Corp. 2023
4+
# Apache License, Version 2.0 (see https://opensource.org/licenses/Apache-2.0)
5+
6+
from __future__ import (absolute_import, division, print_function)
7+
__metaclass__ = type
8+
9+
from ansible_collections.ibm.ibm_zos_core.plugins.module_utils.dd_statement import StdinDefinition, DatasetDefinition, DDStatement, StdoutDefinition
10+
from ansible_collections.ibm.ibm_zos_core.plugins.module_utils.zos_mvs_raw import MVSCmd, MVSCmdResponse
11+
from ansible_collections.ibm.ibm_zos_cics.plugins.module_utils.response import _execution
12+
from ansible_collections.ibm.ibm_zos_cics.plugins.module_utils.data_set import _dataset_constants as ds_constants
13+
14+
15+
def _get_csdup_dds(catalog): # type: (dict) -> dict
16+
return [
17+
DDStatement('steplib', DatasetDefinition(catalog["sdfhload"], disposition="SHR")),
18+
DDStatement(
19+
'dfhcsd',
20+
DatasetDefinition(
21+
dataset_name=catalog["name"],
22+
disposition="SHR")),
23+
DDStatement('sysprint', StdoutDefinition()),
24+
DDStatement('sysudump', StdoutDefinition()),
25+
DDStatement('sysin', StdinDefinition(content=_get_csdupcmd())),
26+
]
27+
28+
29+
def _run_dfhcsdup(starting_catalog): # type: (dict) -> [_execution]
30+
executions = []
31+
dfhcsdup_response = _execute_dfhcsdup(starting_catalog)
32+
33+
executions.append(_execution(
34+
name="DFHCSDUP - Initialise CSD",
35+
rc=dfhcsdup_response.rc,
36+
stdout=dfhcsdup_response.stdout,
37+
stderr=dfhcsdup_response.stderr))
38+
39+
if dfhcsdup_response.rc != 0:
40+
raise Exception(
41+
"DFHCSDUP failed with RC {0}".format(
42+
dfhcsdup_response.rc
43+
), executions
44+
)
45+
return executions
46+
47+
48+
def _execute_dfhcsdup(starting_catalog): # type: (dict) -> MVSCmdResponse
49+
return MVSCmd.execute(
50+
pgm="DFHCSDUP",
51+
dds=_get_csdup_dds(catalog=starting_catalog),
52+
verbose=True,
53+
debug=False)
54+
55+
56+
def _get_csdupcmd(): # type () -> dict
57+
cmd = [
58+
"INITIALIZE"
59+
]
60+
return cmd
61+
62+
63+
def _get_idcams_cmd_csd(dataset): # type: (dict) -> dict
64+
defaults = {
65+
"CLUSTER": {
66+
"RECORDSIZE": "{0} {1}".format(_csd_constants["RECORD_COUNT_DEFAULT"], _csd_constants["RECORD_SIZE_DEFAULT"]),
67+
"INDEXED": None,
68+
"KEYS": "{0} {1}".format(_csd_constants["KEY_LENGTH"], _csd_constants["KEY_OFFSET"]),
69+
"FREESPACE": "{0} {1}".format(_csd_constants["CI_PERCENT"], _csd_constants["CA_PERCENT"]),
70+
"SHAREOPTIONS": "{0}".format(_csd_constants["SHARE_CROSSREGION"]),
71+
"REUSE": None
72+
},
73+
"DATA": {
74+
"CONTROLINTERVALSIZE": "{0}".format(_csd_constants["CONTROL_INTERVAL_SIZE_DEFAULT"])
75+
},
76+
"INDEX": {
77+
None
78+
}
79+
}
80+
defaults.update(dataset)
81+
return defaults
82+
83+
84+
_csd_constants = {
85+
"PRIMARY_SPACE_VALUE_DEFAULT": 4,
86+
"SECONDARY_SPACE_VALUE_DEFAULT": 1,
87+
"SPACE_UNIT_DEFAULT": "M",
88+
"TARGET_STATE_OPTIONS": [
89+
ds_constants["TARGET_STATE_ABSENT"],
90+
ds_constants["TARGET_STATE_INITIAL"],
91+
ds_constants["TARGET_STATE_WARM"]
92+
],
93+
"RECORD_COUNT_DEFAULT": 200,
94+
"RECORD_SIZE_DEFAULT": 2000,
95+
"CONTROL_INTERVAL_SIZE_DEFAULT": 8192,
96+
"KEY_LENGTH": 22,
97+
"KEY_OFFSET": 0,
98+
"CI_PERCENT": 10,
99+
"CA_PERCENT": 10,
100+
"SHARE_CROSSREGION": 2
101+
}

0 commit comments

Comments
 (0)