Skip to content

Commit 892f13d

Browse files
committed
updated stop action to use self attributes
Signed-off-by: Andrew Twydell <[email protected]>
1 parent f456fbc commit 892f13d

File tree

3 files changed

+42
-37
lines changed

3 files changed

+42
-37
lines changed

plugins/action/stop_region.py

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,20 @@ def run(self, tmp=None, task_vars=None):
4949
self._setup(tmp, task_vars)
5050
self._execute_stop_module()
5151

52-
if self.result.get(FAILED):
53-
return self.result
52+
if self.failed:
53+
return self.get_result()
5454

5555
self._parse_module_params()
5656

5757
try:
5858
self._get_job_data()
5959
except AnsibleActionFail as e:
60-
self.result.update(
61-
{MSG: e.args[0], FAILED: True, CHANGED: False})
62-
return self.result
60+
self.failed = True
61+
return self.get_result(e.args[0])
6362

6463
if not self.job_id or not self.job_name or self.job_status != EXECUTING:
65-
self.result.update({FAILED: False, CHANGED: False, })
66-
return self.result
64+
self.failed = True
65+
return self.get_result()
6766

6867
self.logger.debug(RUNNING_ATTEMPTING_TO_STOP)
6968
try:
@@ -72,17 +71,17 @@ def run(self, tmp=None, task_vars=None):
7271
else:
7372
self._perform_shutdown()
7473
except AnsibleActionFail as e:
75-
self.result.update(
76-
{MSG: e.args[0], FAILED: True, CHANGED: False})
77-
return self.result
74+
self.failed = True
75+
return self.get_result(e.args[0])
7876

7977
try:
8078
self.wait_for_shutdown()
81-
self.result.update({CHANGED: True})
79+
self.changed = True
8280
except TimeoutError as e:
83-
self.result.update({MSG: e.args[0], FAILED: True})
81+
self.failed = True
82+
self.msg = e.args[0]
8483

85-
return self.result
84+
return self.get_result()
8685

8786
def _cancel_region(self):
8887
run_command_result = self.execute_cancel_shell_cmd(
@@ -104,21 +103,28 @@ def _setup(self, tmp, task_vars):
104103
self.module_args = self._task.args.copy()
105104
self.logger = logging.getLogger(__name__)
106105

107-
self.result = {
108-
FAILED: False,
109-
CHANGED: False,
110-
MSG: "",
111-
EXECUTIONS: [],
106+
self.failed = False
107+
self.changed = False
108+
self.msg = ""
109+
self.executions = []
110+
111+
def get_result(self, msg=None):
112+
return {
113+
FAILED: self.failed,
114+
CHANGED: self.changed,
115+
MSG: msg if msg else self.msg,
116+
EXECUTIONS: self.executions,
112117
}
113118

114119
def _execute_stop_module(self):
115-
self.result.update(
116-
self._execute_module(
117-
module_name=STOP_MODULE_NAME,
118-
module_args=self.module_args,
119-
task_vars=self.task_vars,
120-
tmp=self.tmp,
121-
))
120+
stop_module_output = self._execute_module(
121+
module_name=STOP_MODULE_NAME,
122+
module_args=self.module_args,
123+
task_vars=self.task_vars,
124+
tmp=self.tmp,
125+
)
126+
self.failed = stop_module_output.get(FAILED, self.failed)
127+
self.msg = stop_module_output.get(MSG, self.msg)
122128

123129
def _parse_module_params(self):
124130
self.job_name = self.module_args.get(JOB_NAME)
@@ -141,7 +147,8 @@ def _get_job_data(self):
141147
if len(running_jobs) > 1:
142148
self.job_status = "MULTIPLE"
143149
raise AnsibleActionFail(
144-
"Cannot ambiguate between multiple running jobs with the same name ({0}). Use `job_id` as a parameter to specify the correct job.".format(self.job_name))
150+
"Cannot ambiguate between multiple running jobs with the same name ({0}). Use `job_id` as a parameter to specify the correct job.".format(
151+
self.job_name))
145152

146153
self.job_id = running_jobs[0][JOB_ID]
147154
self.job_status = running_jobs[0][STATUS]
@@ -186,7 +193,7 @@ def _get_running_jobs(self):
186193
return running
187194

188195
def _add_status_execution(self, job, result):
189-
self.result[EXECUTIONS].append({
196+
self.executions.append({
190197
NAME: CHECK_CICS_STATUS.format(job),
191198
RETURN: result,
192199
})
@@ -195,7 +202,7 @@ def wait_for_shutdown(self):
195202
end_time = calculate_end_time(
196203
self.timeout) if self.timeout > 0 else None
197204

198-
self.result[EXECUTIONS].append({})
205+
self.executions.append({})
199206
status = EXECUTING
200207
while status == EXECUTING and (
201208
get_datetime_now() < end_time if end_time else True
@@ -207,7 +214,7 @@ def wait_for_shutdown(self):
207214
TSO_STATUS_ID_COMMAND.format(self.job_name, self.job_id)
208215
)
209216

210-
self.result[EXECUTIONS].pop()
217+
self.executions.pop()
211218
self._add_status_execution(self.job_id, tso_cmd_response)
212219

213220
status = _get_job_status_name_id(
@@ -232,7 +239,7 @@ def execute_zos_job_query(self, job_id):
232239
module_args={JOB_ID: job_id},
233240
task_vars=self.task_vars,
234241
)
235-
self.result[EXECUTIONS].append({
242+
self.executions.append({
236243
NAME: "ZOS Job Query - {0}".format(job_id),
237244
RETURN: query_response
238245
})
@@ -244,7 +251,7 @@ def execute_zos_operator_cmd(self, command):
244251
module_args={"cmd": command},
245252
task_vars=self.task_vars,
246253
)
247-
self.result[EXECUTIONS].append({
254+
self.executions.append({
248255
NAME: "ZOS Operator Command - {0}".format(command),
249256
RETURN: operator_response,
250257
})
@@ -267,7 +274,7 @@ def execute_cancel_shell_cmd(self, job_name, job_id):
267274
shared_loader_obj=self._shared_loader_obj,
268275
)
269276
cancel_response = command_action.run(task_vars=self.task_vars)
270-
self.result[EXECUTIONS].append({
277+
self.executions.append({
271278
NAME: "Cancel command - {0}({1})".format(job_name, job_id),
272279
RETURN: cancel_response,
273280
})

plugins/modules/stop_region.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -220,10 +220,8 @@ def __init__(self):
220220
mutually_exclusive=[(SDTRAN, NO_SDTRAN)],
221221
required_one_of=[(JOB_ID, JOB_NAME)],
222222
)
223-
self.changed = False
224223
self.failed = False
225224
self.msg = ""
226-
self.executions = []
227225

228226
def main(self):
229227
if self._module.params.get(SDTRAN):
@@ -247,9 +245,9 @@ def _fail(self, msg): # type: (str) -> None
247245

248246
def get_result(self): # type: () -> dict
249247
return {
250-
"changed": self.changed,
248+
"changed": False,
251249
"failed": self.failed,
252-
"executions": self.executions,
250+
"executions": [],
253251
"msg": self.msg
254252
}
255253

tests/integration/targets/cics_start_stop/playbooks/stop_args.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@
142142
ansible.builtin.assert:
143143
that:
144144
- stop_result.failed == true
145-
- stop_result.msg == "No jobs found with name TWYD01 and ID NONJOB"
145+
- stop_result.msg == "No jobs found with name {{ start_region_applid }} and ID NONJOB"
146146

147147
- name: Issue shutdown command (wrong name)
148148
ibm.ibm_zos_cics.stop_region:

0 commit comments

Comments
 (0)