/*************************************************************/ /* This program is provided on an "AS IS" basis, without */ /* warranties or conditions of any kind, either express or */ /* implied including, without limitation, any warranties */ /* or conditions of title, non-infringement, */ /* merchantability or fitness for a particular purpose. */ /* Neither recipient nor any contributors shall have any */ /* liability for any direct, indirect, incidental, */ /* special, exemplary, or consequential damages (including */ /* without limitation lost profits), however caused and on */ /* any theory of liability, whether in contract, strict */ /* liability, or tort (including negligence or otherwise) */ /* arising in any way out of the use or distribution of */ /* the program or the exercise of any rights granted */ /* hereunder, even if advised of the possibility of such */ /* damages. */ /*************************************************************/ /* Purpose: */ /* Issue a command on all members of a cluster using the */ /* response from QUERY SSI to find the member names. */ /* */ /* Inputs: */ /* cmd - the CP command to issue on each member. */ /* */ /* Output: */ /* The results from issuing the AT command. */ /* */ /* References: */ /* The Virtualization Cookbook for Linux on IBM z Systems */ /* URL: http://www.ibm.com/vm/pubs/redbooks/SG248147 */ /*************************************************************/ Address COMMAND /* The command is passed by the caller */ Arg cmd /* Provide help if requested or if no command is specified */ If cmd = '' | cmd = '?' Then Call Help /* Determine the members of the SSI cluster */ 'PIPE CP QUERY SSI', '| STEM MSG.', /* Save the response if error */ '| XLATE', /* Make all output upper case */ '| FRTARGET ALL /SLOT/', /* Just look after 'SLOT' */ '| LOCATE /JOINED/', /* JOINED members can do a command */ '| SPEC W2', /* Get the member names */ '| STEM SSI.' /* Save the member names */ /* If nonzero return code, show error message and exit */ If rc <> 0 | ssi.0 = 0 Then Do Say 'Error: QUERY SSI return code =' rc Say msg.1 End Else Do /* Send the command to each member of the SSI cluster */ Do i = 1 To ssi.0 Say ssi.i||":" 'CP AT' ssi.i 'CMD' cmd Say End End Exit help: /* Provide syntax information to the user */ Say 'SSICMD cmd' Say Say 'cmd is a command to be issued on each of the members' Say ' in the SSI cluster using the AT command.' Exit