Skip to content

Commit c1646ff

Browse files
committed
Create a CSD dataset
1 parent 6658580 commit c1646ff

File tree

20 files changed

+1450
-0
lines changed

20 files changed

+1450
-0
lines changed

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: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
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+
10+
from ansible_collections.ibm.ibm_zos_core.plugins.module_utils.dd_statement import StdoutDefinition, DatasetDefinition, DDStatement
11+
from ansible_collections.ibm.ibm_zos_core.plugins.module_utils.zos_mvs_raw import MVSCmd
12+
from ansible_collections.ibm.ibm_zos_cics.plugins.module_utils.dataset_utils import _data_set
13+
from ansible_collections.ibm.ibm_zos_cics.plugins.module_utils.response import _execution
14+
from ansible_collections.ibm.ibm_zos_cics.plugins.module_utils.data_set import _dataset_constants as ds_constants
15+
16+
17+
def _get_ccmutl_dds(catalog):
18+
return [
19+
DDStatement('steplib', DatasetDefinition(catalog["sdfhload"])),
20+
DDStatement('sysprint', StdoutDefinition()),
21+
DDStatement('sysudump', StdoutDefinition()),
22+
DDStatement(
23+
'dfhlcd',
24+
DatasetDefinition(
25+
dataset_name=catalog["name"],
26+
disposition="SHR")),
27+
]
28+
29+
30+
def _run_dfhccutl(starting_catalog): # type: (_data_set) -> [_execution]
31+
executions = []
32+
dfhccutl_response = _execute_dfhccutl(starting_catalog)
33+
34+
executions.append(_execution(
35+
name="DFHCCUTL - Initialise CSD",
36+
rc=dfhccutl_response.rc,
37+
stdout=dfhccutl_response.stdout,
38+
stderr=dfhccutl_response.stderr))
39+
40+
if dfhccutl_response.rc != 0:
41+
raise Exception(
42+
"DFHCCUTL failed with RC {0}".format(
43+
dfhccutl_response.rc
44+
), executions
45+
)
46+
return executions
47+
48+
49+
def _execute_dfhccutl(starting_catalog):
50+
return MVSCmd.execute(
51+
pgm="DFHCCUTL",
52+
dds=_get_ccmutl_dds(catalog=starting_catalog),
53+
verbose=True,
54+
debug=False)
55+
56+
57+
def _get_idcams_cmd_csd(dataset): # type: (dict) -> dict
58+
defaults = {
59+
"CLUSTER": {
60+
"RECORDSIZE": "{0} {1}".format(_csd_constants["RECORD_COUNT_DEFAULT"], _csd_constants["RECORD_SIZE_DEFAULT"]),
61+
"INDEXED": None,
62+
"KEYS": "{0} {1}".format(_csd_constants["KEY_LENGTH"], _csd_constants["KEY_OFFSET"]),
63+
"FREESPACE": "{0} {1}".format(_csd_constants["CI_PERCENT"], _csd_constants["CA_PERCENT"]),
64+
"SHAREOPTIONS": "{0}".format(_csd_constants["SHARE_CROSSREGION"]),
65+
"REUSE": None
66+
},
67+
"DATA": {
68+
"CONTROLINTERVALSIZE": "{0}".format(_csd_constants["CONTROL_INTERVAL_SIZE_DEFAULT"])
69+
},
70+
"INDEX": {
71+
None
72+
}
73+
}
74+
defaults.update(dataset)
75+
return defaults
76+
77+
78+
_csd_constants = {
79+
"PRIMARY_SPACE_VALUE_DEFAULT": 4,
80+
"SECONDARY_SPACE_VALUE_DEFAULT": 1,
81+
"SPACE_UNIT_DEFAULT": "M",
82+
"TARGET_STATE_OPTIONS": [
83+
ds_constants["TARGET_STATE_ABSENT"],
84+
ds_constants["TARGET_STATE_INITIAL"],
85+
ds_constants["TARGET_STATE_WARM"]
86+
],
87+
"RECORD_COUNT_DEFAULT": 200,
88+
"RECORD_SIZE_DEFAULT": 2000,
89+
"CONTROL_INTERVAL_SIZE_DEFAULT": 8192,
90+
"KEY_LENGTH": 22,
91+
"KEY_OFFSET": 0,
92+
"CI_PERCENT": 10,
93+
"CA_PERCENT": 10,
94+
"SHARE_CROSSREGION": 2
95+
}

0 commit comments

Comments
 (0)