- HubPages»
- Technology»
- Computers & Software»
- Computer Science & Programming
Jenkins Getting Mainframe Job Log
Configuring Jenkins Project
Jenkins software and software documentation and usage can be found in following URL:Jenkins
Create a Jenkins project and add input string validation parameters for JOBNAME and JOBNO. In addition, code an FTPPassword parameter.
Mainframe JCL to place on local server where jenkin resides
//SDSFVAL JOB (DEVSIMS00,1,990,,LAN2),'08205', // REGION=4M,MSGCLASS=S,CLASS=M,MSGLEVEL=(1,1), // USER=PRODUSER /*JOBPARM S=DEV1 //STEP1 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //DD01 DD DSN=TEMP.JENKINS...J.LOG, // DISP=(MOD,DELETE,DELETE),SPACE=(TRK,1) //STEP2 EXEC PGM=IKJEFT01,PARM='SDSFSELK ' //SYSPRINT DD SYSOUT=* //SYSTSIN DD DUMMY //SYSTSPRT DD SYSOUT=* //SYSEXEC DD DISP=SHR,DSN=REGION.REXX.UTIL //OUTFLE DD DSN=TEMP.JENKINS...J.LOG, // SPACE=(TRK,15),UNIT=SYSDA, // DCB=(RECFM=VB,LRECL=132), // DISP=(,CATLG,CATLG) //STEP3 EXEC PGM=FTP //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //OUTPUT DD SYSOUT=* //INPUT DD * ###.###.###.### myuserid mypasswd cd /tmp put 'TEMP.JENKINS...J.LOG' ..J.LOG.txt quit /* //STEP4 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //DD01 DD DSN=TEMP.JENKINS...J.LOG, // DISP=(MOD,DELETE,DELETE),SPACE=(TRK,1)
Mainframe REXX script
What is REXX?
Code:
/* REXX */ ARG JOBNM JOBNO IF JOBNM=="" THEN DO SAY "MISSING JOB NAME PARM" EXIT 16 END IF JOBNO=="" THEN DO SAY "MISSING JOB NUMBER PARM" EXIT 16 END RC=ISFCALLS('ON') ISFACTIONS="ON" ISFOWNER="*" ISFPREFIX=JOBNM ISFJOBCLASS="*" ADDRESS SDSF "ISFEXEC ST" NUMROWS=ISFROWS X=0 X=X+1 WRT.X="+------------------------------------------+" X=X+1 WRT.X="| SEARCHING JOB...:" JOBNM JOBNO X=X+1 WRT.X="+------------------------------------------+" FND="NO" DO I=1 TO NUMROWS IF JOBID.I=JOBNO THEN DO X=X+1 WRT.X="=======================================" X=X+1 WRT.X=" J O B F O U N D " X=X+1 WRT.X="=======================================" ADDRESS SDSF "ISFBROWSE ST TOKEN('"TOKEN.I"')" CALL WRTJOB FND="YES" LEAVE END END IF FND="NO" THEN DO X=X+1 WRT.X="===========================" X=X+1 WRT.X=" N O M A T C H " X=X+1 WRT.X="===========================" END WRT.0=X /*DO I=1 TO WRT.0 SAY WRT.I END */ "EXECIO * DISKW OUTFLE (STEM WRT. FINIS)" RC=ISFCALLS('OFF') EXIT WRTJOB: DO K=1 TO ISFLINE.0 X=X+1 WRT.X=ISFLINE.K END RETURN
Jenkins KSH script
How to FTP to Mainframe
Code:
#!/usr/bin/ksh echo "Review job logs for ${JOBNAME}" JOBNM=${JOBNAME} JOBID=${JOBNO} BUILDID=${BUILD_ID} cd /InvestOne/bin echo "s//${JOBNM}/g" > ${WORKSPACE}/SDSFGTJB.sed echo "s//${JOBID}/g" >> ${WORKSPACE}/SDSFGTJB.sed echo "s//${BUILDID}/g" >> ${WORKSPACE}/SDSFGTJB.sed sed -f ${WORKSPACE}/SDSFGTJB.sed SDSFGTJB.jcl > ${WORKSPACE}/SDSFGTJB.jcl rm -f ${WORKSPACE}/SDSFGTJB.sed echo "====================================" echo "ftp to mainframe" echo "====================================" ftp -v -n ###.###.###.### << EOF user SUNSVN \ ${FTPPassword} lcd "${WORKSPACE}" quote site filetype=JES put SDSFGTJB.jcl EOF rm -f ${WORKSPACE}/SDSFGTJB.jcl sleep 10 echo "====================================" echo "Job Status Information " echo "====================================" cat /tmp/${JOBNM}.${JOBNO}.J${BUILDID}.LOG.txt rm -f /tmp/${RegionID}.${JOBNO}.J${BUILDID}.LOG.txt