/* ************************************************************************** */ /* Program: GETHDWRSC */ /* Title: Get hardware resource */ /* Pgmr: MJR */ /* ************************************************************************** */ PGM (&LPAR) DCL VAR(&SYSTEM) TYPE(*CHAR) LEN(10) DCL VAR(&SYSTEM03) TYPE(*CHAR) LEN(10) DCL VAR(&SYSTEM04) TYPE(*CHAR) LEN(10) DCL VAR(&LPAR) TYPE(*CHAR) LEN(10) DCL VAR(&USER) TYPE(*CHAR) LEN(10) DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(512) DCL VAR(&SSHKEY) TYPE(*CHAR) LEN(100) DCL VAR(&SSHPREFIX) TYPE(*CHAR) LEN(200) + VALUE('ssh -T hmc chhwres -r io + --rsubtype slot -m + Server-9406-550-SNxxxxxxx -o') DCL VAR(&QSHCMD) TYPE(*CHAR) LEN(512) /* ************************************************************************** */ /* GLOBAL MESSAGE MONITOR */ /* ************************************************************************** */ MONMSG MSGID(CPF0000 RPG0000 QRG0000 RSF0000 + MCH0000) EXEC(GOTO CMDLBL(##ERROR)) GOTO CMDLBL(##NOERROR) ##ERROR: MOVDIAGMSG MONMSG MSGID(CPF0000) RSNESCMSG MONMSG MSGID(CPF0000) RETURN ##NOERROR: /* ************************************************************************** */ /* START OF MAINLINE CODE */ /* ************************************************************************** */ RTVJOBA USER(&USER) CHGVAR VAR(&SSHKEY) VALUE('/home/' *TCAT &USER + *TCAT '/.ssh/id_rsa.pub') CHKIFSOBJ OBJ(&SSHKEY) MONMSG MSGID(CPF9897) EXEC(DO) CHGVAR VAR(&MSGDTA) VALUE('You are not set up to + use SSH sessions with the HMC.') SNDPGMMSG MSGID(CPF9898) + MSGF(QCPFMSG) MSGDTA(&MSGDTA) + MSGTYPE(*ESCAPE) ENDDO CALL PGM(FINDSLOTID) PARM(&SYSTEM03 &SYSTEM04) /* If already assigned to the requested system, no need to do any more */ IF COND((&SYSTEM03 *EQ &SYSTEM04) *AND (&SYSTEM03 *EQ &LPAR)) THEN(DO) CHGVAR VAR(&MSGDTA) VALUE('Tape drive + already assigned to' *BCAT &LPAR *TCAT '. + No action taken') SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSGDTA) + MSGTYPE(*COMP) GOTO CMDLBL(ENDPGM) ENDDO ASSIGN: IF COND(&SYSTEM03 *EQ ' ') THEN(DO) CHGVAR VAR(&QSHCMD) VALUE(&SSHPREFIX *BCAT 'a -p' + *BCAT &LPAR *BCAT '-l 21030021') QSH CMD(&QSHCMD) DLYJOB DLY(15) CHGVAR VAR(&MSGDTA) VALUE(&MSGDTA *BCAT 'C03 added + to' *BCAT &LPAR *TCAT '.') ENDDO IF COND(&SYSTEM04 *EQ ' ') THEN(DO) CHGVAR VAR(&QSHCMD) VALUE(&SSHPREFIX *BCAT 'a -p' + *BCAT &LPAR *BCAT '-l 21040021') QSH CMD(&QSHCMD) DLYJOB DLY(15) CHGVAR VAR(&MSGDTA) VALUE(&MSGDTA *BCAT 'C04 added + to' *BCAT &LPAR *TCAT '.') SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSGDTA) + MSGTYPE(*COMP) ENDDO MOVE: /* Move resource(s) as required */ IF COND(&SYSTEM04 *NE ' ') THEN(DO) CHGVAR VAR(&QSHCMD) VALUE(&SSHPREFIX *BCAT 'm -p' + *BCAT &SYSTEM04 *BCAT '-t' *BCAT &LPAR + *BCAT '-l 21040021') CHGVAR VAR(&MSGDTA) VALUE(&MSGDTA *BCAT 'C04 moved from' + *BCAT &SYSTEM04 *BCAT 'to' *BCAT &LPAR *TCAT '.') QSH CMD(&QSHCMD) DLYJOB DLY(15) ENDDO IF COND(&SYSTEM03 *NE ' ') THEN(DO) CHGVAR VAR(&QSHCMD) VALUE(&SSHPREFIX *BCAT 'm -p' + *BCAT &SYSTEM03 *BCAT '-t' *BCAT &LPAR + *BCAT '-l 21030021') QSH CMD(&QSHCMD) CHGVAR VAR(&MSGDTA) VALUE(&MSGDTA *BCAT 'C03 moved from' + *BCAT &SYSTEM03 *BCAT 'to' *BCAT &LPAR *TCAT '.') ENDDO SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSGDTA) + MSGTYPE(*COMP) ENDPGM: RETURN ENDPGM