ansible-for-i
ansible-for-i copied to clipboard
ibmi_copy does not rename file if exist before copying with backup=True
Sample task:
tasks:
- name: Copy single PTF from local to remote server
ibmi_copy:
src: /tmp/repos/ibmi/SI78108.savf
lib_name: QGPL
force: True
backup: True
register: results
ignore_errors: yes
- name: results
debug:
msg: "{{ results }}"
I'm seeing the error in the job log:
Cause . . . . . : An attempt was made to create a file that already exists.
Recovery . . . : Do one of the following:
-- Change the file or library name on create file command, and then try the request again.
-- Omit the request.
JSON msg log:
{
"msg": {
"msg": "Failed to create SAVF: /QSYS.LIB/QGPL.LIB/SI78108.FILE on remote.",
"stderr": [
"{'error': '*** error QSYS/CRTSAVF FILE(QGPL/SI78108)', 'error1': '202', 'version': 'XML Toolkit 2.0.2-dev', 'xmlhint': 'QSYS/CRTSAVF FILE(QGPL/SI78108)', 'xmlhint2': 'QSYS/CRTSAVF FILE(QGPL/SI78108)', 'jobipc': '*na', 'jobipcskey': 'FFFFFFFF', 'jobname': 'QSQSRVR', 'jobuser': 'QUSER', 'jobnbr': '019940', 'curuser': 'CECUSER', 'ccsid': '37', 'dftccsid': '37', 'paseccsid': '0', 'syslibl': 'QSYS QSYS2 QHLPSYS QUSRSYS', 'usrlibl': 'QGPL QTEMP'}"
],
"stdout": [],
"src": "",
"md5sum": "",
"dest": "",
"remote_md5sum": "",
"remote_checksum": "",
"checksum": "",
"delta": "",
"job_log": [
{
"ORDINAL_POSITION": 11,
"MESSAGE_ID": "CPF7302",
"MESSAGE_TYPE": "ESCAPE",
"MESSAGE_SUBTYPE": "EXCEPTION HANDLED",
"SEVERITY": 40,
"MESSAGE_TIMESTAMP": "2022-10-14T08:55:41.938405",
"FROM_LIBRARY": "QSYS",
"FROM_PROGRAM": "QDDCDF",
"FROM_MODULE": null,
"FROM_PROCEDURE": null,
"FROM_INSTRUCTION": "025D",
"TO_LIBRARY": "QXMLSERV",
"TO_PROGRAM": "XMLSTOREDP",
"TO_MODULE": "PLUGILE",
"TO_PROCEDURE": "ILECMDEXC",
"TO_INSTRUCTION": "5841",
"FROM_USER": "CECUSER",
"MESSAGE_FILE": "QCPFMSG",
"MESSAGE_LIBRARY": "QSYS",
"MESSAGE_TEXT": "File SI78108 not created in library QGPL.",
"MESSAGE_SECOND_LEVEL_TEXT": "&N Cause . . . . . : The file was not created because of errors. &N Recovery . . . : See the error messages previously listed. Correct the errors, and then try the request again."
},
{
"ORDINAL_POSITION": 10,
"MESSAGE_ID": "CPF5813",
"MESSAGE_TYPE": "DIAGNOSTIC",
"MESSAGE_SUBTYPE": null,
"SEVERITY": 40,
"MESSAGE_TIMESTAMP": "2022-10-14T08:55:41.938322",
"FROM_LIBRARY": "QSYS",
"FROM_PROGRAM": "QDMROUTE",
"FROM_MODULE": null,
"FROM_PROCEDURE": null,
"FROM_INSTRUCTION": "04DC",
"TO_LIBRARY": "QXMLSERV",
"TO_PROGRAM": "XMLSTOREDP",
"TO_MODULE": "PLUGILE",
"TO_PROCEDURE": "ILECMDEXC",
"TO_INSTRUCTION": "5841",
"FROM_USER": "CECUSER",
"MESSAGE_FILE": "QCPFMSG",
"MESSAGE_LIBRARY": "QSYS",
"MESSAGE_TEXT": "File SI78108 in library QGPL already exists.",
"MESSAGE_SECOND_LEVEL_TEXT": "&N Cause . . . . . : An attempt was made to create a file that already exists. &N Recovery . . . : Do one of the following: &P -- Change the file or library name on create file command, and then try the request again. &P -- Omit the request."
},
{
"ORDINAL_POSITION": 9,
"MESSAGE_ID": "CPF9898",
"MESSAGE_TYPE": "COMPLETION",
"MESSAGE_SUBTYPE": null,
"SEVERITY": 40,
"MESSAGE_TIMESTAMP": "2022-10-14T08:55:41.807762",
"FROM_LIBRARY": "QSYS",
"FROM_PROGRAM": "QSQSRVR",
"FROM_MODULE": "QSQSRVR",
"FROM_PROCEDURE": "QSQSRVR",
"FROM_INSTRUCTION": "8964",
"TO_LIBRARY": "QSYS",
"TO_PROGRAM": "QSQSRVR",
"TO_MODULE": "QSQSRVR",
"TO_PROCEDURE": "QSQSRVR",
"TO_INSTRUCTION": "8964",
"FROM_USER": "CECUSER",
"MESSAGE_FILE": "QCPFMSG",
"MESSAGE_LIBRARY": "QSYS",
"MESSAGE_TEXT": "SERVER MODE CONNECTING JOB IS 021504/QSECOFR/QP0ZSPWP.",
"MESSAGE_SECOND_LEVEL_TEXT": "&N Cause . . . . . : This message is used by application programs as a general escape message."
},
{
"ORDINAL_POSITION": 8,
"MESSAGE_ID": null,
"MESSAGE_TYPE": "COMPLETION",
"MESSAGE_SUBTYPE": null,
"SEVERITY": 0,
"MESSAGE_TIMESTAMP": "2022-10-14T08:55:41.807716",
"FROM_LIBRARY": "QSYS",
"FROM_PROGRAM": "QSQSRVR",
"FROM_MODULE": "QSQSRVR",
"FROM_PROCEDURE": "QSQSRVR",
"FROM_INSTRUCTION": "8873",
"TO_LIBRARY": "QSYS",
"TO_PROGRAM": "QSQSRVR",
"TO_MODULE": "QSQSRVR",
"TO_PROCEDURE": "QSQSRVR",
"TO_INSTRUCTION": "8873",
"FROM_USER": "CECUSER",
"MESSAGE_FILE": null,
"MESSAGE_LIBRARY": null,
"MESSAGE_TEXT": "User Profile = CECUSER ",
"MESSAGE_SECOND_LEVEL_TEXT": null
},
{
"ORDINAL_POSITION": 7,
"MESSAGE_ID": "CPF1301",
"MESSAGE_TYPE": "INFORMATIONAL",
"MESSAGE_SUBTYPE": null,
"SEVERITY": 30,
"MESSAGE_TIMESTAMP": "2022-10-14T08:55:41.807680",
"FROM_LIBRARY": "QSYS",
"FROM_PROGRAM": "QWTCHGJB",
"FROM_MODULE": null,
"FROM_PROCEDURE": null,
"FROM_INSTRUCTION": "11DA",
"TO_LIBRARY": "QSYS",
"TO_PROGRAM": "QSQSRVR",
"TO_MODULE": "QSQSRVR",
"TO_PROCEDURE": "QSQSRVR",
"TO_INSTRUCTION": "8782",
"FROM_USER": "CECUSER",
"MESSAGE_FILE": "QCPFMSG",
"MESSAGE_LIBRARY": "QSYS",
"MESSAGE_TEXT": "ACGDTA for 019940/QUSER/QSQSRVR not journaled; reason 1.",
"MESSAGE_SECOND_LEVEL_TEXT": "&N Cause . . . . . : Job resource accounting data for job 019940/QUSER/QSQSRVR was not journaled to the system accounting journal QSYS/QACGJRN. &P -- Reason codes and their meanings follow: &P -- 1-The accounting level system value (QACGLVL) indicated that this level of resource accounting was not to be done when the job entered the system. &P -- 2-The accounting journal QSYS/QACGJRN is unable to receive the data. The accounting data was sent to the history log (QHST) as the text of a CPF1303 message. See CPF1302 in the history log (QHST) for recovery action. &P -- 3-The accounting journal QSYS/QACGJRN was allocated to another job. The accounting data was sent to the history log (QHST) as the text of a CPF1303 message."
},
{
"ORDINAL_POSITION": 6,
"MESSAGE_ID": "CPD1672",
"MESSAGE_TYPE": "DIAGNOSTIC",
"MESSAGE_SUBTYPE": null,
"SEVERITY": 0,
"MESSAGE_TIMESTAMP": "2022-10-14T08:55:41.807580",
"FROM_LIBRARY": "QSYS",
"FROM_PROGRAM": "QWTCHGJB",
"FROM_MODULE": null,
"FROM_PROCEDURE": null,
"FROM_INSTRUCTION": "2F6F",
"TO_LIBRARY": "QSYS",
"TO_PROGRAM": "QSQSRVR",
"TO_MODULE": "QSQSRVR",
"TO_PROCEDURE": "QSQSRVR",
"TO_INSTRUCTION": "8775",
"FROM_USER": "CECUSER",
"MESSAGE_FILE": "QCPFMSG",
"MESSAGE_LIBRARY": "QSYS",
"MESSAGE_TEXT": "Job changed successfully; however errors occurred.",
"MESSAGE_SECOND_LEVEL_TEXT": "&N Cause . . . . . : The request to change the job attributes completed successfully, however errors occurred during processing. &N Recovery . . . : See previously listed messages for details."
},
{
"ORDINAL_POSITION": 5,
"MESSAGE_ID": "CPD0912",
"MESSAGE_TYPE": "DIAGNOSTIC",
"MESSAGE_SUBTYPE": null,
"SEVERITY": 20,
"MESSAGE_TIMESTAMP": "2022-10-14T08:55:41.807129",
"FROM_LIBRARY": "QSYS",
"FROM_PROGRAM": "QWTCHGJB",
"FROM_MODULE": null,
"FROM_PROCEDURE": null,
"FROM_INSTRUCTION": "2F6F",
"TO_LIBRARY": "QSYS",
"TO_PROGRAM": "QSQSRVR",
"TO_MODULE": "QSQSRVR",
"TO_PROCEDURE": "QSQSRVR",
"TO_INSTRUCTION": "8775",
"FROM_USER": "CECUSER",
"MESSAGE_FILE": "QCPFMSG",
"MESSAGE_LIBRARY": "QSYS",
"MESSAGE_TEXT": "Printer device PRT01 not found.",
"MESSAGE_SECOND_LEVEL_TEXT": "&N Cause . . . . . : The printer device was not found. &N Recovery . . . : Either create the printer device (CRTDEVPRT command) or if the printer device name is not correct, change the printer device name and then try the command again."
}
],
"rc": 255,
"failed": true,
"changed": false
},
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
I've tried with:
force: yes
backup: yes
Still getting the same error