diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh index ee952104..ed3854f6 100644 --- a/.devcontainer/setup.sh +++ b/.devcontainer/setup.sh @@ -18,6 +18,7 @@ echo -e "[defaults]\nstdout_callback=community.general.yaml\nCOLLECTIONS_PATHS=/ pip install -r /workspace/collections/ansible_collections/ibm/ibm_zos_cics/dev-requirements.txt pip install -r /workspace/collections/ansible_collections/ibm/ibm_zos_cics/doc-requirements.txt +pip install -r /workspace/collections/ansible_collections/ibm/ibm_zos_cics/lint-requirements.txt mkdir -p /commandhistory touch /commandhistory/.zsh_history diff --git a/dev-requirements.txt b/dev-requirements.txt index d6ea74a6..5dacb4cd 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -11,8 +11,11 @@ pytest==7.2.0 pylint==2.5.3 shellcheck-py==0.9.0.5 rstcheck==6.1.2 -yamllint==1.32.0 +yamllint==1.34.0 voluptuous==0.13.1 -ansible-lint==6.22.1 +<<<<<<< Updated upstream +ansible-lint==25.1.3 +======= +>>>>>>> Stashed changes pycodestyle==2.10.0 bandit==1.7.8 diff --git a/lint-requirements.txt b/lint-requirements.txt new file mode 100644 index 00000000..3311fbc8 --- /dev/null +++ b/lint-requirements.txt @@ -0,0 +1,5 @@ +# (c) Copyright IBM Corp. 2025 +# Apache License, Version 2.0 (see https://opensource.org/licenses/Apache-2.0) +-r dev-requirements.txt + +ansible-lint==6.22.1 \ No newline at end of file diff --git a/tests/integration/targets/cics_start_stop/playbooks/provisioning_and_deprovisioning.yml b/tests/integration/targets/cics_start_stop/playbooks/provisioning_and_deprovisioning.yml index 65d8d619..3f447241 100644 --- a/tests/integration/targets/cics_start_stop/playbooks/provisioning_and_deprovisioning.yml +++ b/tests/integration/targets/cics_start_stop/playbooks/provisioning_and_deprovisioning.yml @@ -19,63 +19,66 @@ tasks: - name: Normal Start Stop block: - - name: Initial normal - block: - - name: Create data sets - ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml - vars: - data_set_state: initial + - name: Initial normal + block: + - name: Create data sets + ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml + vars: + data_set_state: initial - - name: Start CICS - ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml + - name: Start CICS + ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml - - name: Stop CICS Region - ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml - vars: - mode: normal + - name: Stop CICS Region + ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml + vars: + mode: normal - always: - - name: Delete job - ansible.builtin.command: - cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + always: + - name: Delete job + ansible.builtin.command: + cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" + failed_when: false + changed_when: true - - name: Warm Immediate - block: - - name: Warm CICS data sets - ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml - vars: - data_set_state: warm + - name: Warm Immediate + block: + - name: Warm CICS data sets + ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml + vars: + data_set_state: warm - - name: Start CICS - ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml + - name: Start CICS + ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml - - name: Stop CICS Region - ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml - vars: - mode: immediate + - name: Stop CICS Region + ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml + vars: + mode: immediate - always: - - name: Delete job - ansible.builtin.command: - cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + always: + - name: Delete job + ansible.builtin.command: + cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" + failed_when: false + changed_when: true - - name: Normal Cancel - block: - - name: Start CICS - ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml + - name: Normal Cancel + block: + - name: Start CICS + ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml - - name: Stop CICS Region - ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml - vars: - mode: cancel + - name: Stop CICS Region + ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml + vars: + mode: cancel - always: - - name: Delete job - ansible.builtin.command: - cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + always: + - name: Delete job + ansible.builtin.command: + cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" + failed_when: false + changed_when: true always: - name: Delete data sets diff --git a/tests/integration/targets/cics_start_stop/playbooks/start_from_PDS.yml b/tests/integration/targets/cics_start_stop/playbooks/start_from_PDS.yml index 62687615..71b1d10b 100644 --- a/tests/integration/targets/cics_start_stop/playbooks/start_from_PDS.yml +++ b/tests/integration/targets/cics_start_stop/playbooks/start_from_PDS.yml @@ -21,72 +21,75 @@ tasks: - name: Normal Start Stop block: - - name: Initial normal - block: - - name: Create PDS for region JCL data set member - ibm.ibm_zos_core.zos_data_set: - name: "{{ region_data_set_path }}.LIB" - state: present - type: PDS - register: result - retries: 3 - until: result is not failed + - name: Initial normal + block: + - name: Create PDS for region JCL data set member + ibm.ibm_zos_core.zos_data_set: + name: "{{ region_data_set_path }}.LIB" + state: present + type: PDS + register: result + retries: 3 + until: result is not failed - - name: Create data sets - ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml - vars: - data_set_state: initial + - name: Create data sets + ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml + vars: + data_set_state: initial - - name: Start CICS - ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml + - name: Start CICS + ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml - - name: Stop CICS Region - ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml - vars: - mode: normal + - name: Stop CICS Region + ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml + vars: + mode: normal - always: - - name: Delete job - ansible.builtin.command: - cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + always: + - name: Delete job + ansible.builtin.command: + cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" + failed_when: false + changed_when: true - - name: Warm Immediate - block: - - name: Warm CICS data sets - ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml - vars: - data_set_state: warm + - name: Warm Immediate + block: + - name: Warm CICS data sets + ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml + vars: + data_set_state: warm - - name: Start CICS - ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml + - name: Start CICS + ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml - - name: Stop CICS Region - ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml - vars: - mode: immediate + - name: Stop CICS Region + ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml + vars: + mode: immediate - always: - - name: Delete job - ansible.builtin.command: - cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + always: + - name: Delete job + ansible.builtin.command: + cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" + failed_when: false + changed_when: true - - name: Normal Cancel - block: - - name: Start CICS - ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml + - name: Normal Cancel + block: + - name: Start CICS + ansible.builtin.import_tasks: ../repeatable_tasks/start_cics.yml - - name: Stop CICS Region - ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml - vars: - mode: cancel + - name: Stop CICS Region + ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml + vars: + mode: cancel - always: - - name: Delete job - ansible.builtin.command: - cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + always: + - name: Delete job + ansible.builtin.command: + cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" + failed_when: false + changed_when: true always: - name: Delete data sets diff --git a/tests/integration/targets/cics_start_stop/playbooks/stop_args.yml b/tests/integration/targets/cics_start_stop/playbooks/stop_args.yml index 204f7681..0394fbaa 100644 --- a/tests/integration/targets/cics_start_stop/playbooks/stop_args.yml +++ b/tests/integration/targets/cics_start_stop/playbooks/stop_args.yml @@ -97,7 +97,8 @@ - name: Delete job ansible.builtin.command: cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + failed_when: false + changed_when: true - name: Stop job no timeout block: @@ -177,7 +178,8 @@ - name: Delete job ansible.builtin.command: cmd: "jcan C {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + failed_when: false + changed_when: true - name: Stop job already stopped block: @@ -230,7 +232,8 @@ job_id: "NONJOB" job_name: "{{ start_region_applid }}" register: stop_result - ignore_errors: true + failed_when: false + changed_when: true - name: Assert CICS stop did not fail ansible.builtin.assert: that: @@ -242,7 +245,8 @@ - name: Delete job ansible.builtin.command: cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + failed_when: false + changed_when: true - name: Delete data sets ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml vars: diff --git a/tests/integration/targets/cics_start_stop/playbooks/validate_console_autoinstall_fail.yml b/tests/integration/targets/cics_start_stop/playbooks/validate_console_autoinstall_fail.yml index 731ac94f..1d838b82 100644 --- a/tests/integration/targets/cics_start_stop/playbooks/validate_console_autoinstall_fail.yml +++ b/tests/integration/targets/cics_start_stop/playbooks/validate_console_autoinstall_fail.yml @@ -7,7 +7,7 @@ environment: "{{ environment_vars }}" vars: - AUTOINSTALL_FAIL_MSG: "Shutdown command failed because the auto-install of the console was unsuccessful. See executions for full command output." + autoinstall_fail_msg: "Shutdown command failed because the auto-install of the console was unsuccessful. See executions for full command output." module_defaults: group/ibm.ibm_zos_cics.region: @@ -38,7 +38,8 @@ - name: Stop CICS Region ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml - ignore_errors: true + failed_when: false + changed_when: true vars: mode: normal expect_failure: true @@ -47,14 +48,15 @@ ansible.builtin.assert: that: - stop_output.failed is true - - stop_output.msg == AUTOINSTALL_FAIL_MSG + - stop_output.msg == autoinstall_fail_msg - stop_output.changed is false - "'executions' in stop_output" always: - name: Cancel and Delete job ansible.builtin.command: cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + failed_when: false + changed_when: true - name: Delete data sets ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml vars: diff --git a/tests/integration/targets/cics_start_stop/playbooks/validate_console_not_defined.yml b/tests/integration/targets/cics_start_stop/playbooks/validate_console_not_defined.yml index d7e27631..33a0bb72 100644 --- a/tests/integration/targets/cics_start_stop/playbooks/validate_console_not_defined.yml +++ b/tests/integration/targets/cics_start_stop/playbooks/validate_console_not_defined.yml @@ -7,7 +7,7 @@ environment: "{{ environment_vars }}" vars: - UNDEFINED_CONSOLE_MSG: "Shutdown command failed because the console used was not defined. See executions for full command output." + undefined_console_msg: "Shutdown command failed because the console used was not defined. See executions for full command output." module_defaults: group/ibm.ibm_zos_cics.region: @@ -38,7 +38,7 @@ - name: Stop CICS Region ansible.builtin.import_tasks: ../repeatable_tasks/stop_region.yml - ignore_errors: true + failed_when: false vars: mode: normal expect_failure: true @@ -47,14 +47,15 @@ ansible.builtin.assert: that: - stop_output.failed is true - - stop_output.msg == UNDEFINED_CONSOLE_MSG + - stop_output.msg == undefined_console_msg - stop_output.changed is false - "'executions' in stop_output" always: - name: Cancel and Delete job ansible.builtin.command: cmd: "jcan P {{ start_region_applid }} {{ start_result.stdout }}" - ignore_errors: true + failed_when: false + changed_when: true - name: Delete data sets ansible.builtin.import_tasks: ../repeatable_tasks/data_sets.yml vars: diff --git a/tests/integration/targets/cics_start_stop/repeatable_tasks/stop_region.yml b/tests/integration/targets/cics_start_stop/repeatable_tasks/stop_region.yml index b7e63931..ef45b17c 100644 --- a/tests/integration/targets/cics_start_stop/repeatable_tasks/stop_region.yml +++ b/tests/integration/targets/cics_start_stop/repeatable_tasks/stop_region.yml @@ -22,7 +22,8 @@ timeout: 300 - name: Set stop_output - ansible.builtin.set_fact: stop_output="{{ stop_result }}" + ansible.builtin.set_fact: + stop_output: "{{ stop_result }}" when: "'skip_reason' not in stop_result" - name: Issue shutdown command (with job_name) @@ -36,7 +37,8 @@ timeout: 300 - name: Set stop_output - ansible.builtin.set_fact: stop_output="{{ stop_result }}" + ansible.builtin.set_fact: + stop_output: "{{ stop_result }}" when: stop_result.changed - name: Issue shutdown command (with job_id and job_name) @@ -51,7 +53,8 @@ timeout: 300 - name: Set stop_output - ansible.builtin.set_fact: stop_output="{{ stop_result }}" + ansible.builtin.set_fact: + stop_output: l"{{ stop_result }}" when: stop_result.changed always: