ª9B(8sm_name_hdr.vcfcrfsCmdHdrfcrfsNameOptAdd a Standard Journaled File Systemsmit.catccrfsCmdHdrccrfsNameOptAdd a Compressed Journaled File Systemsmit.catlcrfsCmdHdrlcrfsNameOptAdd a Large File Enabled Journaled File Systemsmit.catjchfsCmdHdrjchfsNameOptChange/Show Characteristics of a Journaled File Systemsmit.catcdchfsCmdHdrcdchfsNameOptChange/Show Characteristics of a CDROM File Systemsmit.catdejfsCmdHdrdejfsNameOptDefragment a Journaled File Systemsmit.catchtz_dialchtz_cty_optChange Time Zonesmit.catps_ps_selmkpsCmdHdrmkpsNameOptAdd Another Paging Spacesmit.catchpsCmdHdrchpsNameOptChange / Show Characteristics of a Paging Spacesmit.catps_chpqNameOptPrint Queue to Change / Showsmit.cat/usr/sbin/piomisc_base two_dev_base_chpq _rawnamecookedname:queue_name:queue_device:ps_error_msgps_chpq_ps_chpq_genericOptCharacteristics to Change / Showsmit.catfunction x { case $1 in 1) print chqueghostName ;; 2) print genericName_2 ;; esac }; x_rawnamecookednameps_chpq_generic_2_ps_chpq_generic_2_ghostOptfunction two_dev_base { if [[ -x /usr/lib/lpd/pio/etc/piolsvp ]] then print ghostName:$1:$2 else typeset -i num_dev num_dev=$(/usr/bin/lsallqdev -q$1 | /usr/bin/wc -l) case $num_dev in 0 | 1) print ghostName:$(/usr/bin/lsallqdev -c -q$1) ;; *) print printerName:$1: ;; esac fi }; two_dev_basequeue_name queue_devicecookedname:queue_name:queue_deviceps_chpq_generic_2_ghostNameps_chpq_generic_2_printerOptPrintersmit.catprint_rawnamequeue_devicechqueCmdHdrps_chpq_generic_2_ghostOptchquedevCmdHdr1ps_chpq_generic_2_ghostOptps_chprinter_ps_chprinterOptPrinter to Change / Showsmit.catfunction is_ext { if [ -x /usr/lib/lpd/pio/etc/piolsvp ] then print attachName else print localName fi }; is_extps_chprinter_localNmHdr_ps_chprinter_localOptPrinter to Change / Showsmit.cat function xx { /usr/sbin/lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" | /usr/bin/sed 's/^\([^:]*\):\([^:]*\):/\2:&/' } xx printer_nameprinter_name_cookedname:type:subclass:parent:port:loc:state:descps_chprinter_localCmdHdr_parallelps_chprinter_localNmHdr_parallel.optChange / Show Printer Connection Characteristicssmit.catps_chprinter_localCmdHdr_rs232_ps_chprinter_localNmHdr_rs232.optChange / Show Printer Connection Characteristicssmit.catdrvr () { type=$(odmget -q "name = $1" CuDv | grep PdDvLn) parent_unique_type=$(echo $type | sed 's/.*"\(.*\)".*/\1/') driver_name=$(odmget -q "uniquetype = $parent_unique_type" PdDv | grep DvDr | sed 's/.*"\(.*\)".*/\1/') print $driver_name } drvr parentdriverps_chprinter_localCmdHdr_rs422ps_chprinter_localNmHdr_rs422.optChange / Show Printer Connection Characteristicssmit.catps_errorCmdHdrps_errorOptprinterinstps_not_installed_error_ghostName.optPrinter Attachment Type Support Not Installedpiosmit.catps_mkpq_ps_mkpqOptAdd a Print Queuesmit.catfunction is_ext { if [[ -x /usr/lib/lpd/pio/etc/piolsvp ]] then /usr/lib/lpd/pio/etc/piodmgrsu >/dev/null 2>&1 print attachName: else print base_attachName: fi }; is_extcookedname:ps_existingps_mkpq_base_attach_ps_mkpq_base_attachOptAdd a Print Queuesmit.catfunction x { print $1'_ghostName' }; x_rawnameps_mkpqOptfunction x { if [[ -z "$1" ]] then print ps_mkpq_attach_user-definedCmdHdr else print ps_mkprinterCmdHdr fi }; xps_existingps_mkpq_attach_remoteCmdHdrps_mkpqOptps_mkpqOptAdd an Additional Printer to an Existing Print Queuesmit.catfunction is_ext { if [[ -x /usr/lib/lpd/pio/etc/piolsvp ]] then /usr/lib/lpd/pio/etc/piodmgrsu >/dev/null 2>&1 print ps_mkpqprt_attachName:-e else print ps_mkprinter_ghostName:-e fi }; is_extcookedname:ps_existingps_mkprinterCmdHdrps_mkprinter_ghostOptchqueCmdHdrchqueNameOptQueue to Change / Showsmit.catqueue_namermquedevCmdHdrrmquedevNameOptQueue from which to Remove a Devicesmit.catchquedevNameOpt0Change / Show Characteristics of a Queue Devicesmit.cat/usr/sbin/piomisc_base pq_chquedev_two_dev cookedname:queue_name:queue_device:ps_error_msgchquedevCmdHdr1chquedevNameOpt1Queue Device to Change / Showsmit.catqueue_devicechquedevCmdHdr1chquedevghostNameOptQueue Device to Change / Showsmit.catps_qprtOptStart a Print Jobsmit.cat/usr/sbin/piomisc_base is_ext_attach_qprt cookedname:queue_name:queue_device:attach_type:input_queue:ps_error_msgps_qprt_genericCmdHdrps_qprt_genericOptStart a Print Jobsmit.catps_qstartNameOptStart a Print Queuesmit.cat/usr/sbin/piomisc_base two_devices qstart cookedname:queue_name:queue_device:ps_error_msgps_qstart_ghostNameps_qstart_printerOptPrintersmit.catqueue_deviceps_qstartCmdHdrps_qstart_ghostOptPrintersmit.catps_qstartNameOptStop a Print Queuesmit.cat/usr/sbin/piomisc_base two_devices qstop cookedname:queue_name:queue_device:ps_error_msgps_qstop_ghostNameps_qstart_printerOptPrintersmit.catqueue_deviceps_qstopCmdHdrps_qstart_ghostOptPrintersmit.catps_rmpqNameOptRemove a Print Queuesmit.cat/usr/sbin/piomisc_base two_devices rmpq cookedname:queue_name:queue_device:ps_error_msgps_rmpq_ghostNameps_rmpq_printerOptPrinter to Removesmit.catqueue_deviceps_rmpq_ghostOptRemove a Print Queuesmit.cat/usr/sbin/piomisc_base is_ext_rmpq_ghostName queue_name queue_devicecookedname:attach_type:deviceps_rmpq_CmdHdr_genericps_rmpq_CmdHdr_ghostOptqserver.cmdselect.subsvr.name.optQuery a Subserversmit.catsub_typestartserver.cmdselect.subsvr.name.optStart a Subserversmit.catsub_typestopserver.cmdselect.subsvr.name.optStop a Subserversmit.catsub_typestartserver.trace.cmdselect.subsvr.name.optStart Tracesmit.catsub_typestopserver.trace.cmdselect.subsvr.name.optStop Tracesmit.catsub_typestartssys1subsys.name.optStart a Subsystemsmit.cat_rawname_cookednamelicense_on_mediaget_deviceShow License Agreements on Installation Mediasmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_deviceinstalled_license_rget_locationShow Installed License Agreementssmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_locationfcrfs2CmdHdrfcrfs2NameOptAdd an Enhanced Journaled File Systemsmit.catjchfs2CmdHdrjchfs2NameOptChange/Show Characteristics of an Enhanced Journaled File Systemsmit.catdejfs2CmdHdrdejfs2NameOptDefragment an Enhanced Journaled File Systemsmit.catfcrintsnapj2CmdHdrfcrintsnapj2NameOptCreate Snapshot for an Enhanced Journaled File System in File Systemsmit.catfcrsnapj2CmdHdrfcrsnapj2NameOptCreate Snapshot for an Enhanced Journaled File System in New Logical Volumesmit.catjchsnapCmdHdrjchsnapNameOptChange Snapshot for an Enhanced Journaled File Systemsmit.catrbackintsnapCmdjrbackintsnapfsnameRollback an Enhanced Journaled File System to an Internal Snapshotsmit.cat_rawfsnamermintsnapcmdjrmintsnapfsnameRemove Internal Snapshot of an Enhanced Journaled File Systemsmit.cat_rawfsnamej2enablequotasCmdj2enablequotasNameOptj2changelimitTypej2limSel_fsnameChange / Show Characteristics of a Limits Classsmit.cat_rawfsname_cookedfsnamej2changelimitLCIDj2limSel_typeChange / Show Characteristics of a Limits Classsmit.cat_rawtype_cookedtypej2changelimitCmdj2limSel_LCIDChange / Show Characteristics of a Limits Classsmit.cat_rawlcid_cookedlcidj2defaultlimitTypej2limSel_fsnameMake a Limits Class the Default Limits for a File Systemsmit.cat_rawfsname_cookedfsnamej2defaultlimitCmdj2limSel_typeMake a Limits Class the Default Limits for a File Systemsmit.cat_rawtype_cookedtypej2assignlimitTypej2limSel_fsnameAssign a User or Group to a Limits Classsmit.cat_rawfsname_cookedfsnamej2assignlimitCmdj2limSel_typeAssign a User or Group to a Limits Classsmit.catecho _rawtype_rawtype_cookedtypej2removelimitTypej2limSel_fsnameRemove a Limits Classsmit.cat_rawfsname_cookedfsnamej2removelimitCmdj2limSel_typeRemove a Limits Classsmit.cat_rawtype_cookedtypelsattrs_1lsattrs_optShow Characteristics of a Supported Devicesmit.catclasslsattrs_2lsattrs_1_optShow Characteristics of a Supported Devicesmit.catsubclasslsattrs_hdrlsattrs_2_optShow Characteristics of a Supported Devicesmit.cattypelsattrd_hdrlsattrd_optShow Characteristics of a Defined Devicesmit.catlnamemaktty_parenttty_predef_optAdd a TTYsmit.catclass () # str1 str2 str3 { echo $1 | sed 's/^\([^ ]*\)[ ]*\([^ ]*\)[ ]*/\1:\2:/' } class _rawnametype:subclass:descmaktty_hdr_selmaktty_parent_optAdd a TTYsmit.catparentmaktty_hdr_maktty_hdr.opt0drvr () { type=$(odmget -q "name = $1" CuDv | grep PdDvLn) parent_unique_type=$(echo $type | sed 's/.*"\(.*\)".*/\1/') parent_subclass=$(odmget -q "uniquetype = $parent_unique_type" PdDv | grep subclass | sed 's/.*"\(.*\)".*/\1/') driver_name=$(odmget -q "uniquetype = $parent_unique_type" PdDv | grep DvDr | sed -e 's/.*"\(.*\)".*/\1/' -e 's#^isa/##' -e 's/_rspc$//' -e 's#^pcmcia/pcrsdd#rsdd#') if [[ $parent_subclass = "sio" || $parent_subclass = "isa_sio" ]] then driver_prefix=n fi print $driver_prefix$driver_name } drvr parentdriver_cookednamemovtty_parenttty_ln_optMove a TTY to Another Portsmit.catlogicnamemovtty_hdrtty_mv_parentMove a TTY to Another Portsmit.cat x() { parent_type=$(lsdev -C -l $1 -F type) if [[ $parent_type == soe ]] then print _soe fi } x parentparentchgtty_hdr_tty_ln_optChange/Show Characteristics of a TTYsmit.catdrvr () { parent=$(lsdev -C -l $1 -F "parent") tty=$(lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description") type=$(odmget -q "name = $parent" CuDv | grep PdDvLn) parent_unique_type=$(echo $type | sed 's/.*"\(.*\)".*/\1/') parent_subclass=$(odmget -q "uniquetype = $parent_unique_type" PdDv | grep subclass | sed 's/.*"\(.*\)".*/\1/') driver_name=$(odmget -q "uniquetype = $parent_unique_type" PdDv | grep DvDr | sed -e 's/.*"\(.*\)".*/\1/' -e 's#^isa/##' -e 's/_rspc$//' -e 's#^pcmcia/pcrsdd#rsdd#') if [[ $parent_subclass = "sio" || $parent_subclass = "isa_sio" ]] then driver_prefix=n fi print $driver_prefix$driver_name:$tty } drvr logicname logicname_cookedname:type:subclass:parent:port:loc:state:descrmvtty_hdrtty_ln_optRemove a TTYsmit.catlogicnamecfgtty_hdrtty_ln_optConfigure a Defined TTY smit.catlogicnamerrbtty_managerrbtty_ln_optlogicnamempiopath_enable_dev_hdrmpiopath_enable_dev_opt1Enable Paths for a Devicesmit.catdevnamempiopath_enable_par_hdrmpiopath_enable_par_opt1Enable Paths under a Parentsmit.catparentmpiopath_cfg_dev_hdrmpiopath_cfg_dev_opt1Configure Paths for a Devicesmit.catdevnamempiopath_cfg_par_hdrmpiopath_cfg_par_opt1Configure Paths under a Parentsmit.catparentmpiopath_pcmchg_mpio_path_optChange/Show Characteristics for a Pathsmit.cat classify () { set -- $1 if [[ $(lsdev -l $2 -F type) = *nvmdisk* ]] then echo PCM/friend/nvmdisk else lsattr -l $2 -E -F value -a PCM fi } classify pathpath_cookednamempiopath_chg_pcm_path_dev_pathmpiopath_chg_pcm_path_dev_optChange/Show Characteristics for a Device's Pathsmit.catdevnamempiopath_pcmchg_mpio_path_dev_optChange/Show Characteristics for a Device's Pathsmit.cat classify () { set -- $1 if [[ $(lsdev -l $2 -F type) = *nvmdisk* ]] then echo PCM/friend/nvmdisk else lsattr -l $2 -E -F value -a PCM fi } classify pathpath_cookednamempiopath_chg_pcm_path_par_pathmpio_parent_optChange/Show Characteristics for a Parent's Pathsmit.catparentmpiopath_pcmchg_mpio_path_parent_optChange/Show Characteristics for a Parent's Pathsmit.cat classify () { set -- $1 if [[ $(lsdev -l $2 -F type) = *nvmdisk* ]] then echo PCM/friend/nvmdisk else lsattr -l $2 -E -F value -a PCM fi } classify pathpath_cookednamempiopath_disable_dev_hdrmpiopath_disable_dev_opt1Disable Paths for a Devicesmit.catdevnamempiopath_disable_par_hdrmpiopath_disable_par_opt1Disable Paths under a Parentsmit.catparentmpiopath_remove_dev_hdrmpiopath_remove_dev_opt1Remove a Path for a Devicesmit.catdevnamempiopath_remove_par_hdrmpiopath_remove_par_opt1Remove Paths under a Parentsmit.catparentmpiodev_pcmchg_mpiodev_chg_pcm_char_optChange/Show MPIO Device Characteristicssmit.cat classify () { if [[ $(lsdev -l $1 -F type) = *nvmdisk* ]] then echo PCM/friend/nvmdisk else lsattr -E -F value -a PCM -l $1 fi } classify devnamedevname_cookednamerepdrpci2repdrpci_optReplace/Remove a PCI Hot Plug Adaptersmit.catslot_namerepdrpci_hdrrepdrpci2_optReplace/Remove a PCI Hot Plug Adaptersmit.catoperationiddrpci_hdriddrpci_optIdentify a PCI Hot Plug Slotsmit.catslot_nameadddrpci_hdradddrpci_optAdd a PCI Hot Plug Adaptersmit.catslot_namechlvd_cmdlvmlvnsChange a Logical Volumesmit.catlvcls () { LVID=`/usr/sbin/getlvodm -l $1`; if test $? -ne 0 then exit 1 fi Q1=`/usr/sbin/getlvodm -c $LVID | cut -f2-6,8 -d' ' | sed '1s/ /:/g'`; Q4=`/usr/sbin/getlvodm -B $LVID`; Q2=`/usr/sbin/lquerylv -L $LVID -nMPRv`; Q3=`echo $Q2 |sed '1s/ /:/g'`; Q5=`/usr/sbin/lquerylv -L $LVID -w`; Q6=`/usr/sbin/lquerylv -L $LVID -I`; Q7=`/usr/sbin/lquerylv -L $LVID -Z`; echo $1:$Q1:$Q4:$Q3:$Q5:$Q6:$Q7; }; lvcls_rawname_rawnameLVName:LVType:Position:Range:Upbound:Strict:Reloc:Label:MaxLPs:Sched:Permissions:BadBlk:Verify:MirrWC:OverlapIO:InfiniteRetrychpv1_cmdlvmpvnsChange Characteristics of a Physical Volumesmit.catpvcls () { PVID=`/usr/sbin/getlvodm -p $1`; if test $? -ne 0 then exit 1 fi Alloc='y'; Avail='r'; hotspare='n' VGID=`/usr/sbin/getlvodm -j $1`; if test $? -ne 0 then exit 1 fi Q1=`/usr/sbin/lquerypv -p $PVID -g $VGID -c`; Q2=`expr $Q1 % 2`;Q3=`expr $Q1 / 8`;Q3=`expr $Q3 % 2`; if test $Q2 -eq 1 then Avail='a' fi if test $Q3 -eq 1 then Alloc='n' fi Q4=`/usr/sbin/lquerypv -p $PVID -N $1 -S` if test $Q4 -eq 32 then hotspare='y' fi echo $Alloc:$Avail:$hotspare; }; pvcls_rawname_rawnameAlloc:Avail:hotsparechvg1_cmdlvmvgnsChange a Volume Groupsmit.catvgcls () { /usr/sbin/getlvodm -v $1 >/dev/null; if test $? -ne 0 then exit 1 fi hotspare='n'; sync='n'; VRltg=128; InfiniteRetry='n'`lsvg $1 2>/dev/null`; if test $? -ne 0 then echo $1:$VRltg:$hotspare:$sync:$InfiniteRetry; else VGID=`getlvodm -v $1`;Q1=`/usr/sbin/lqueryvg -g $VGID -h`;if test $Q1 -eq 0 then hotpare='n'; elif test $Q1 -eq 1 then hotspare='y'; elif test $Q1 -eq 2 then hotspare='Y' fi Q2=`/usr/sbin/lqueryvg -g $VGID -y`;if test $Q2 -eq 1 then sync='y'; fi VRltg=`/usr/sbin/lsvg $1|grep -e 'LTG size'|cut -f2 -d: | /usr/bin/awk '{print $1}'`; Q3=`/usr/sbin/lqueryvg -g $VGID -Z`;if test $Q3 -eq 1 then InfiniteRetry='y'; elif test $Q3 -eq 2 then InfiniteRetry='n' fi echo $1:$VRltg:$hotspare:$sync:$InfiniteRetry; fi }; vgcls_rawname_rawname_cookedname:VRltg:hotspare:sync:InfiniteRetryextendlv1_cmdlvmlvnsIncrease the Size of a Logical Volumesmit.catextcls () { LVID=`/usr/sbin/getlvodm -l $1`; if test $? -ne 0 then exit 1 fi VGID=`/usr/sbin/getlvodm -b $LVID`; Q1=`/usr/sbin/getlvodm -c $LVID | cut -f3-6 -d' ' | sed '1s/ /:/g'`; echo $VGID:$Q1; }; extcls_rawname_rawname_cookedname:Position:Range:Upbound:Strictlslvd_cmdlvmlvnsShow Characteristics of a Logical Volumesmit.cat_rawname_rawname_cookednamelspvd_cmdlvmpvnsList Contents of a Physical Volumesmit.cat_rawname_rawname_cookednamelsvgd_cmdlvmvgnsList Contents of a Volume Groupsmit.cat_rawname_rawname_cookednamemigratepvd_cmdlvmspvnsMove Contents of a Physical Volumesmit.cat/usr/sbin/getlvodm -j_rawname_rawname_cookednamemklv1_cmdlvmvgnsAdd a Logical Volumesmit.catvgcls () { /usr/sbin/getlvodm -v $1 >/dev/null; if test $? -ne 0 then exit 1 fi }; vgcls_rawname_rawname_cookednamemklvcopy1_cmdlvmlvnsAdd Copies to a Logical Volumesmit.catmklvcls () { LVID=`/usr/sbin/getlvodm -l $1`; if test $? -ne 0 then exit 1 fi VGNAME=`/usr/sbin/getlvodm -b $LVID`; Q1=`/usr/sbin/getlvodm -c $LVID | cut -f3-7 -d' ' | sed '1s/ /:/g'`; echo $VGNAME:$Q1; }; mklvcls_rawname_rawname_cookedname:Position:Range:Upbound:Strict:NumCopiesreducevgd_cmdlvmvgnsRemove a Physical Volume from a Volume Groupsmit.catvgcls () { /usr/sbin/getlvodm -v $1 >/dev/null; if test $? -ne 0 then exit 1 fi }; vgcls_rawname_rawname_cookednamermvg_cmdlvmvgnsRemove a Volume Groupsmit.catxlist () { VGID=`/usr/sbin/getlvodm -v $1`; if test $? -ne 0 then exit 1 fi Q1=`/usr/sbin/getlvodm -w $VGID | cut -f2 -d' '`; echo $Q1; }; xlist_rawname_cookednamereorgvg1_cmdlvmvgnsReorganize a Volume Groupsmit.catxlist () { VGID=`/usr/sbin/getlvodm -v $1`; if test $? -ne 0 then exit 1 fi Q1=`/usr/sbin/getlvodm -w $VGID | cut -f2 -d' '`; echo $Q1; }; xlist_rawname_rawname_cookednamermlvcopy1_cmdlvmlvnsRemove Copies from a Logical Volumesmit.catrmlvccls () { LVID=`/usr/sbin/getlvodm -l $1`; if test $? -ne 0 then exit 1 fi /usr/sbin/getlvodm -c $LVID | cut -f7 -d' '; }; rmlvccls_rawname_rawname_cookednamemirrorvg1_cmdlvmvgnsMirror a Volume Groupsmit.catvgcls () { /usr/sbin/getlvodm -v $1 >/dev/null; if test $? -ne 0 then exit 1 fi }; vgcls_rawname_rawname_cookednameunmirrorvg1_cmdlvmvgnsUnmirror a Volume Groupsmit.catvgcls () { /usr/sbin/getlvodm -v $1 >/dev/null; if test $? -ne 0 then exit 1 fi }; vgcls_rawname_rawname_cookednamexlvm_chlv_optSet Characteristic of a Logical Volumesmit.catclass_proc () { ListPick="$*" if [[ $ListPick = $(dspmsg smit.cat -s 25 360 'Increase the Size of a Logical Volume') ]] then echo extendlv else echo chlv1 fi } class_proc _rawnamexlvm_chps_optPaging Spacesmit.catclass_proc () { ListPick="$*" if [[ $ListPick = $(dspmsg smit.cat -s 25 360 'Increase the Size of a Logical Volume') ]] then echo extendlv elif [[ $ListPick = $(dspmsg smit.cat -s 25 358 'Change a Logical Volume') ]] then echo chlv1 else echo chps fi } class_proc _rawnamexlvm_chvg_optVolume Groupssmit.catclass_proc () { ListPick="$*" if [[ $ListPick = $(dspmsg smit.cat -s 25 352 'Change a Volume Group') ]] then echo chvg else echo lsvg1 fi } class_proc _rawnamemakprt_subclassprt_predef_optAdd a Printer/Plottersmit.cat class () # str1 str2 { echo $1 | sed -e 's/ */:/' } class _rawnametype:descmakprt_parentprt_predef_class_optAdd a Printer/Plottersmit.catechosubclassmakprt_hdr_makprt_parent_optAdd a Printer/Plottersmit.catclass () # str1 { echo $1 } class subclassparent_cookednamemakprt_rs232_makprt_hdr_rs232.opt0drvr () { type=$(odmget -q "name = $1" CuDv | grep PdDvLn) parent_unique_type=$(echo $type | sed 's/.*"\(.*\)".*/\1/') driver_name=$(odmget -q "uniquetype = $parent_unique_type" PdDv | grep DvDr | sed -e 's/.*"\(.*\)".*/\1/' -e 's#^isa/##' -e 's/_rspc$//' -e 's#^pci/##') print $driver_name } drvr parentdriver_cookednamemakprt_rs422makprt_hdr_rs422.optAdd a Printer/Plottersmit.catmakprt_parallelmakprt_hdr_parallel.optAdd a Printer/Plottermovprt_parentprt_ln_optMove a Printer/Plotter to Another Portsmit.catlogicnamemovprt_hdrprt_mv_parentMove a Printer/Plotter to Another Portsmit.catparentchgprt_hdr_prt_ln_optChange/Show Characteristics of a Printer/Plottersmit.cat xx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\2:&/' } xx logicname logicname_cookedname:type:subclass:parent:port:loc:state:descchgprt_rs232_chgprt_hdr_rs232.optChange/Show Characteristics of a Printer/Plottersmit.catdrvr () { type=$(odmget -q "name = $1" CuDv | grep PdDvLn) parent_unique_type=$(echo $type | sed 's/.*"\(.*\)".*/\1/') driver_name=$(odmget -q "uniquetype = $parent_unique_type" PdDv | grep DvDr | sed -e 's/.*"\(.*\)".*/\1/' -e 's#^isa/##' -e 's/_rspc$//' -e 's#^pci/##') print $driver_name } drvr parentdriverchgprt_rs422chgprt_hdr_rs422.optChange/Show Characteristics of a Printer/Plottersmit.catchgprt_parallelchgprt_hdr_parallel.optChange/Show Characteristics of a Printer/Plottersmit.catrmvprt_hdrprt_ln_optRemove a Printer/Plottersmit.catlogicnamecfgprt_hdrprt_ln_optConfigure a Defined Printer/Plottersmit.catlogicnameshpriocfg_shpriocfg_hdr.opt_rawname_cookednameshliocfg_shliocfg_hdr.opt_rawname_cookednamechgsys_chgsys_hdr.opt0machinetype () { lsattr -D -l sys0 -a memscrub >/dev/null 2>/dev/null if [ $? -eq 0 ] then lsattr -D -l sys0 -a cpuguard >/dev/null 2>/dev/null if [ $? -eq 0 ] then echo MS_CPUG else echo MS_noCPUG fi else lsattr -D -l sys0 -a cpuguard >/dev/null 2>/dev/null if [ $? -eq 0 ] then echo noMS_CPUG else echo noMS_noCPUG fi fi } machinetype _rawname_cookednamewlmchclass_galwlmclass.nameselectGeneral Characteristics of a classwlmcntrl.cat_rawname_cookednamewlmcntrl.catwlmchclass_cpuwlmclass.nameselectCPU resource Managementwlmcntrl.cat_rawname_cookednamewlmcntrl.catwlmchclass_memwlmclass.nameselectMemory resource Managementwlmcntrl.cat_rawname_cookednamewlmcntrl.catwlmchclass_biowlmclass.nameselectdiskIO resource Managementwlmcntrl.cat_rawname_cookednamewlmcntrl.catwlmchclass_proclimitwlmclass.nameselectProcess total resource managementwlmcntrl.cat_rawname_cookednamewlmcntrl.catwlmchclass_classlimitwlmclass.nameselectClass total resource managementwlmcntrl.cat_rawname_cookednamewlmcntrl.catcrewlmrs_hdr_wlmrs_dl_optCreate a new Rulewlmcntrl.cat[ -r $SmitDATA ] && . $SmitDATA lswlmconf -ld ${WLM_DIRCONF:-current} | grep '/' >/dev/null && { dspmsg -s 16 wlmcntrl.cat 50 "This selection only applies to regular configurations, and the current one is actually a configuration set. Please go first to the \"Work on alternate configurations\" menu and select a regular configuration there." exit 1 } echo cre:::-:-:-:-:-: logicname logicname_cookedname:order:class:user:group:appli:type:tagwlmcntrl.catchgwlmrs_hdr_wlmrs_ln_optChange/Show Characteristics of a Rulewlmcntrl.catdrule() { [ -r $SmitDATA ] && . $SmitDATA awk -v nb=$1 '/^\*/{ next } { if (++lnum == nb) printf("iva:%d:%s:%s:%s:%s:%s:%s", nb, $1, $3, $4, $5, $6, $7); }' /etc/wlm/${WLM_DIRCONF:=current}/${WLM_DIRCLASS}rules } drule logicname logicname_cookedname:order:class:user:group:appli:type:tagwlmcntrl.catdelwlmrs_hdr_wlmrs_ln_optDelete a Rulewlmcntrl.catdrule() { [ -r $SmitDATA ] && . $SmitDATA awk -v nb=$1 '/^\*/{ next } { if (++lnum == nb) printf("iva:%d:%s:%s:%s:%s:%s:%s", nb, $1, $3, $4, $5, $6, $7); }' /etc/wlm/${WLM_DIRCONF:=current}/${WLM_DIRCLASS}rules } drule logicname logicnamewlmcntrl.catwlmgroupings_chgrwlmgroupings_selectChange an attribute value groupingwlmcntrl.catgroupings_filter(){ awk '/^\*/ { next } { for (i=1; i/dev/null)) attach_type=${next_id#* }; attach_type=${attach_type%% *} next_id=${next_id##* } if [[ -z "$next_id" ]] then next_id=ps_chpq_genericName fi print $next_id:$attach_type }; xqueue_name queue_devicecookedname:ps_attachps_chpq_generic_2_ghostOptfunction x { case $1 in remote.local) next_id=$(/usr/lib/lpd/pio/etc/piolsvp -N local -n change_queue 2>/dev/null) [[ -z $next_id ]] && next_id=ps_chpq_genericName ;; *) next_id=ps_chpq_attach_remote_ghostName ;; esac print $next_id }; xps_attach queue_name queue_deviceps_chpq_attach_remoteCmdHdrps_chpq_generic_2_ghostOptps_chpq_attachOptfunction x { case $1 in 1) print "#/var/spool/lpd/pio/@local/smit/#ps_setup_$2.$3" ;; 2) print "#/var/spool/lpd/pio/@local/smit/#ps_jobattrs_$2.$3" ;; 3) print ps_chpq_attach_accountCmdHdr ;; 4) print ps_chpq_attach_disciplineCmdHdr ;; esac }; x_rawname queue_name queue_devicecookednameps_chprinter_attachOptPrinter to Change / Showsmit.catfunction x { print `/usr/lib/lpd/pio/etc/piolsvp -N $1 -n printer_conn 2>/dev/null` }; x_rawnameps_chprinter_xstaCmdHdrps_chprinter_xstaNameOptPrinter to Change / Showsmit.catprint $1_rawnamexsta_printerps_lsvirprtCmdHdrps_lsvirprtOptChange / Show Printer Attribute Databasepiosmit.catfunction x { /usr/lib/lpd/pio/etc/piodmgrsu >/dev/null 2>&1 print "$1" | /usr/bin/awk '{print $1":"$2}' }; x_rawnamequeue_name:queue_deviceps_prt_attach_optAttachment Typepiosmit.catfunction x { case "$1" in other) cookedname='ps_mkpq_base_attach_user-defined_ghostName' ;; *) cookedname=$(/usr/lib/lpd/pio/etc/piolsvp -N $1 -n add_queue 2>/dev/null) if [[ $? -ne 0 ]] then cookedname='ptr_to_config_attachment_dialog' else cookedname=${cookedname%%*( | )} cookedname=${cookedname##*( | )} if [[ -z $cookedname ]] then cookedname='ps_mkpq_base_attach_user-defined_ghostName' fi fi ;; esac print $cookedname:$1::::::::::::::: }; x_rawnamecookedname:ps_attach:ps_ptype:ps_dtype:ps_device:ps_subclass:ps_parent:ps_xstation:ps_xtype:ps_xport:ps_tty:ps_file:ps_exec_cmd:ps_disc_cmd:ps_prt_comm:ps_error_msg:ps_titleps_mkpqprt_attach_optAttachment Typepiosmit.catfunction x { case "$1" in other) cookedname='ps_mkpq_base_attach_user-defined_ghostName' ;; *) cookedname=$(/usr/lib/lpd/pio/etc/piolsvp -N $1 -n add_printer 2>/dev/null) cookedname=${cookedname%%*( | )} cookedname=${cookedname##*( | )} ;; esac print $cookedname:$1:::::::::::::: }; x_rawnamecookedname:ps_attach:ps_ptype:ps_dtype:ps_device:ps_subclass:ps_parent:ps_xstation:ps_xtype:ps_xport:ps_tty:ps_file:ps_exec_cmd:ps_disc_cmd:ps_prt_comm:ps_titleps_mkpq_prt_predefps_prt_manufacturer_optPrinter Typepiosmit.catfunction x { otherstr=$(/usr/bin/dspmsg piobe.cat -s 8 1 'Other (Select this if your printer type is not listed above)') if [[ "$otherstr" = "$1" ]] # see if they selected 'other' then manuf='+++OTHER+++' else manuf="$1" fi print "$manuf" }; x_rawnameps_manufps_prt_predef_optPrinter Typepiosmit.catfunction x { otherstr=$(/usr/bin/dspmsg piobe.cat -s 8 1 'Other (Select this if your printer type is not listed above)') if [[ "$otherstr" = "$1" ]] # see if they selected 'other' then # branch back to this selector with ps_manuf=+++OTHER+++ print 'ps_mkpq_prt_predef:+++OTHER+++::::' exit 0; fi # they selected one of the printer types description=$(print ${1#* }) # strip off leading spaces predef=${1%% *} dtype=$predef device_found=$(/usr/sbin/lsdev -P -c printer -t $predef) predef_found=$(/usr/bin/ls -1 /usr/lib/lpd/pio/predef/$predef.* 2>/dev/null) if [[ -z $device_found && -z $predef_found ]] then package=$(/usr/bin/egrep -p "^[ ]*type[ ]*=[ ]*$predef" /usr/lib/lpd/pio/etc/printers.inv | /usr/bin/awk '$1 == "package" { print $3 }') print "ps_mkpq_prt_notinstalled:::::$package" exit 0 fi if [[ -z $predef_found ]] then ptype='generic' # No predef file found for this type else ptype=$predef fi case "$2" in local) if [[ -z $device_found ]] then # no device for this type # (therefore, a predef type has been found) dtype='osp_opp' # will be osp or opp if [[ -z $(/usr/sbin/lsdev -C -c printer -t osp) && -z $(/usr/sbin/lsdev -C -c printer -t opp) ]] then cookedname=ps_mkpq_osp_opp_subclass else cookedname=ps_mkpq_exist_dev fi else if [[ -z $(/usr/sbin/lsdev -C -c printer -t $dtype) ]] then cookedname=ps_mkpq_subclass else cookedname=ps_mkpq_exist_dev fi fi print "$cookedname::$dtype:$description:$ptype:" ;; # For xstation, ascii, file: ptype is used in place # of dtype. Not a typo. xstation) print "ps_mkpq_attach_xsta_nameName::$ptype:$description:$ptype:" ;; ascii) if [[ -n $(/usr/sbin/lsdev -Cctty) ]] then print "ps_mkpq_attach_ascii_ttynameName::$ptype:$description:$ptype:" else print "ps_error_ghostName:::::$(/usr/bin/dspmsg -s 1 piosmit.cat 117 'There are no TTYs defined in the system!\0134\0134nAfter you add a TTY for the ASCII terminal to which the printer is connected,\0134\0134nthen you will be able to add a print queue for the printer. ')" fi ;; file) print "ps_mkpq_attach_file_nameName::$ptype:$description:$ptype:" ;; *) print "ps_error_ghostName:::::$(/usr/bin/dspmsg -s 1 piosmit.cat 90 'Unrecognized attachment type. ')" ;; esac }; x _rawname ps_attachcookedname:ps_manuf:ps_dtype:ps_description:ps_ptype:ps_error_msgps_ps_prt_exist_optPrintersmit.catfunction x { if [[ "$2" != "osp_opp" ]] then /usr/sbin/lsdev -C -c printer -t $2 | /usr/bin/grep -q $1 if [[ "$?" = "0" ]] then print "build_dialog:$1" else print "mkpq_subclass:" fi else { /usr/sbin/lsdev -C -c printer -t osp; /usr/sbin/lsdev -C -c printer -t opp; } | /usr/bin/grep -q $1 if [[ "$?" = "0" ]] then print "build_dialog:$1" else print "mkpq_osp_opp_subclass:" fi fi }; x_rawname ps_dtypenextid:ps_deviceps_makprt_parentps_prt_predef_class_optprintps_subclassps_makprt_parentps_prt_osp_opp_subclass_optfunction x { /usr/sbin/lsdev -P -c printer -t osp -F subclass | /usr/bin/grep -q $1 if [[ "$?" = 0 ]] then print $1:osp else print $1:opp fi }; xps_subclass:ps_dtypeps_build_dialogps_makprt_parent_optps_parent#/var/spool/lpd/pio/@local/smit#ps_apqd_hdrps_build_dialog_opt/usr/lib/lpd/pio/etc/piomkapqd-A ps_attach -p ps_ptype -v ps_dtype -d ps_device -s ps_subclass -r ps_parent -x ps_xstation -t ps_xtype -P ps_xport -T ps_tty -f ps_file -c ps_exec_cmd -i ps_disc_cmd -o ps_prt_comm -h ps_title ps_existingps_mkpq_attach_xsta_typeps_mkpq_attach_xsta_nameNameOptXstation NAMEpiosmit.catps_xstationps_mkpq_attach_xsta_portNameps_mkpq_attach_xsta_portOptXstation Typepiosmit.catps_xtypeps_build_dialogps_mkpq_attach_xsta_portNameOptPort Namepiosmit.catfunction x { typeset pdevnm="$1@$2#xstation" if [[ -f "/var/spool/lpd/pio/@local/dev/$pdevnm" ]] then print $1:$1@$2 else print $1: fi }; x_rawname ps_xstationps_xport:ps_deviceps_build_dialogps_mkpq_attach_ascii_ttynameNameOptTTY Namepiosmit.catfunction x { print $1:$1 }; x_rawnameps_tty:ps_deviceps_build_dialogps_mkpq_attach_file_nameNameOptFile Namepiosmit.catfunction x { print ${1##*/}:${1##*/} }; x_rawnameps_file:ps_deviceps_run_config_dialogps_config_optps_mkpq_attach_remoteNameOptRemote Printing Stylepiosmit.catfunction remote_type { # Default messages (and message numbers) must # match those in the corresponding cmd_to_list. case "$1" in $(/usr/bin/dspmsg -s 1 piosmit.cat 97 'Standard processing ')) next=ps_mkpq_base_attach_standard_remote_ghostName attach_type="remote.remote" ;; $(/usr/bin/dspmsg -s 1 piosmit.cat 99 'Standard with NFS access to server print queue attributes ')) next=ps_mkpq_nfs_attach_remote_ghostName attach_type="remote.nfs" ;; $(/usr/bin/dspmsg -s 1 piosmit.cat 98 'Local filtering before sending to print server ')) next=ps_mkpq_remote_local_manufName attach_type="remote" ;; *) next=ps_mkpq_base_attach_standard_remote_ghostName attach_type="remote.remote" ;; esac next=${next%%*( | )}; next=${next##*( | )} print "$next:$attach_type" }; remote_typecookedname:ps_attachps_mkpq_nfs_attach_remoteCmdHdrps_mkpqOptps_mkpq_remote_local_predefNameps_mkpq_remote_local_manufNameOptRemote Printer Typepiosmit.catfunction x { otherstr=$(/usr/bin/dspmsg piobe.cat -s 8 1 'Other (Select this if your printer type is not listed above)') if [[ "$otherstr" = "$1" ]] # see if they selected 'other' then manuf='+++OTHER+++' else manuf="$1" fi print "$manuf" }; x_rawnameps_manufps_mkpq_remote_local_predefNameOptRemote Printer Typepiosmit.catfunction x { otherstr=$(/usr/bin/dspmsg piobe.cat -s 8 1 'Other (Select this if your printer type is not listed above)') if [[ "$otherstr" = "$1" ]] # see if they selected 'other' then # branch back to this selector with ps_manuf=+++OTHER+++ print 'ps_mkpq_remote_local_predefName:+++OTHER+++::::' exit 0; fi # they selected one of the printer types description=$(print ${1#* }) # strip off leading spaces predef=${1%% *} dtype=$predef device_found=$(/usr/sbin/lsdev -P -c printer -t $predef) predef_found=$(/usr/bin/ls -1 /usr/lib/lpd/pio/predef/$predef.* 2>/dev/null) if [[ -z $device_found && -z $predef_found ]] then # Printer not installed. Look-up package name(s) in # printers inventory file and branch to error dialog for # uninstalled packages. package=$(/usr/bin/egrep -p "^[ ]*type[ ]*=[ ]*$predef" /usr/lib/lpd/pio/etc/printers.inv | /usr/bin/awk '$1 == "package" { print $3 }') print "ps_mkpq_prt_notinstalled:::::$package" exit 0 fi if [[ -z $predef_found ]] then ptype='generic' # No predef file found for this type else ptype=$predef fi case "$2" in remote) print "ps_mkpq_remote_local_ghostName::$ptype:$description:$ptype:" ;; *) print "ps_error_ghostName:::::$(/usr/bin/dspmsg -s 1 piosmit.cat 90 'Unrecognized attachment type. ')" ;; esac }; x _rawname ps_attachcookedname:ps_manuf:ps_dtype:ps_description:ps_ptype:ps_error_msgps_build_dialogps_mkpqOptprint "[piosmit.cat,1,111;Add a Remote Print Queue with Local Filtering]:ps_mkpq_remoteOptGroup3,ps_mkpq_remoteOptGroup4,ps_mkpq_remoteOptGroup5,ps_mkpq_remoteOptGroup6:/usr/lib/lpd/pio/etc/piomisc_ext mkpq_remote_local:"ps_title:ps_prt_comm:ps_exec_cmd:dummyps_mkpq_attach_standard_remoteCmdHdrps_mkpqOptps_pqfiltersNameOptChange / Show Pre-processing Filterspiosmit.catfunction x { /usr/lib/lpd/pio/etc/piodmgrsu >/dev/null 2>&1 print_queue=$(print "$1" | /usr/bin/awk '{print $1":"$2}') next=$(/usr/lib/lpd/pio/etc/piolsvp -P$print_queue -n change_filters 2>/dev/null | /usr/bin/awk '{print $3}') if [ -z "$next" ] then /usr/bin/dspmsg -s 1 piosmit.cat 66 'Incorrect queue name or incorrect SMIT id in attachment file. ' exit 1 else print $next:$print_queue fi }; x_rawnamecookedname:queue_name:queue_device#/var/spool/lpd/pio/@local/smit/#ps_filters_ps_pqfilters_ghostNameOptChange / Show Pre-processing Filterspiosmit.catfunction x { print $1.$2 }; xqueue_name queue_devicecookednameps_qprt_fileNameOptfunction x { if [ "$4" = "remote.nfs" ] then remote=$(/usr/bin/lsque -q $2 | /usr/bin/awk '$0 ~ "^[ ]*host" {print $NF}') [[ -z $remote || ! -x /var/spool/lpd/pio/$remote ]] && { /usr/bin/dspmsg -s 1 piosmit.cat 105 'Could not access NFS mounted directory for remote queue. '; exit 1; } rq=$(/usr/bin/lsque -q $2 | /usr/bin/awk '$0 ~ "^[ ]*rq" {print $NF}') rqdev=$(/usr/sbin/lsvirprt -q $2 -d $3 -f '%5$s' -a zE) rqdev=$(print $rqdev) print "#/var/spool/lpd/pio/$remote/smit/#ps_qprt_$rq.$rqdev.$1:$1" else print "#/var/spool/lpd/pio/@local/smit/#ps_qprt_$2.$3.$1:$1" fi }; x_rawname queue_name queue_device attach_typecookedname:datastreamps_qprt_genericOptfunction x { sub_attach=${1##*.} case $sub_attach in local | nfs) next=$(/usr/lib/lpd/pio/etc/piolsvp -N local -n submit_job 2>/dev/null) next=${next%%*( | )} next=${next##*( | )} print $next:$sub_attach ;; *) # Must be straight remote print ps_qprt_remote_ghostName:$sub_attach ;; esac }; xattach_type queue_name queue_devicecookedname:sub_attachps_qprt_remote_ps_qprt_genericOptfunction x { case $(/usr/bin/lsque -q $1 | /usr/bin/awk -F/ '$0 ~ "^[ ]*s_statfilter" {print $NF}') in aixshort) print aixCmdHdr ;; aixv2short) print rtCmdHdr ;; bsdshort | attshort | *) print bsdCmdHdr ;; esac }; xqueue_nameps_rmpq_CmdHdr_otherps_rmpq_CmdHdr_ghostOptps_rmpq_CmdHdr_localps_rmpq_CmdHdr_ghostOptps_rmpq_CmdHdr_local_lastps_rmpq_CmdHdr_ghostOptprinterinstps_mkpq_prt_notinstalled.optPrinter Support Not Installedpiosmit.catchgvrtscsi_hdr_vrtscsi_ln_optChange/Show Characteristics of a VirtIO SCSI Adaptervrtscsi.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descchgvscsi_hdr_vscsi_ln_optChange/Show Characteristics of a Virtual SCSI Adaptervscsi_init.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descmkwacom_cmdmkwacom_sel_opt xx() { if [ "$1" = "" ] then echo " " else echo "$1" | sed 's/tty//' fi } xx tty_nummk6093_cmdmk6093_sel_opt xx() { if [ "$1" = "" ] then echo " " else echo "$1" | sed 's/tty//' fi } xx tty_nummaktmscsi_tmscsi_predef_optAdd a Target Mode Initiator Devicesas.catclass () # str1 str2 str3 { echo $1 | sed 's/^\([^ ]*\)[ ]*\([^ ]*\)[ ]*/\2:\1:\2:/' } class _rawname_cookedname:type:subclass:descmaktmscsi_scsi_hdrmaktmscsi_parent_optAdd a Target Mode Initiator Devicesas.catparentchgtmscsi_tmscsi_ln_optChange/Show Characteristics of a Target Mode Initiator Devicesas.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:parent:port:loc:state:descrmvtmscsi_hdrtmscsi_ln_optRemove a Target Mode Initiator Devicesas.catlogicnamecfgtmscsi_hdrtmscsi_ln_optConfigure a Defined Target Mode Initiator Devicesas.catlogicnamemaktpe_tape_predef_optAdd a Tape Drivesmit.catclass () # str1 str2 str3 { echo $1 | sed 's/^\([^ ]*\)[ ]*\([^ ]*\)[ ]*/\1_\2:\1:\2:/' } class _rawname_cookedname:type:subclass:descmaktpe_8mm_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_9trk_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_150mb_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_525mb_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_1200mb-c_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_ost_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentchgtpe_tape_ln_optChange/Show Characteristics of a Tape Drivesmit.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:parent:port:loc:state:descrmvtpe_hdrtape_ln_optRemove a Tape Drivesmit.catlogicnamecfgtpe_hdrtape_ln_optConfigure a Defined Tape Drivesmit.catlogicnamemaktpe_8mm5gb_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_8mm7gb_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_4mm2gb_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_4mm4gb_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_3490e_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_scsd_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmaktpe_4mm2gb2_scsi_hdrmaktpe_parent_optAdd a Tape Drivesmit.catparentmakcdr_cdrom_predef_optAdd a CD ROM Drivesmit.catclass () # str1 str2 str3 { echo $1 | sed 's/^\([^ ]*\)[ ]*\([^ ]*\)[ ]*/\2:\1:\2:/' |sed s/scsi:oscd/oscd_scsi:oscd/g } class _rawname_cookedname:type:subclass:descmakcdr_scsi_hdrmakcdr_parent_optAdd a CD ROM Drivesmit.catparentmakcdr_oscd_scsi_hdrmakcdr_parent_optAdd a CD ROM Drivesmit.catparentchgcdr_cdrom_ln_optChange/Show Characteristics of a CD ROM Drivesmit.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\2:&/'\ |sed s/^ide:sdvdrom/sdvdrom_ide:sdvdrom/g \ |sed s/^ide:dvdram/dvdram_ide:dvdram/g \ |sed s/^ide:oicdrom/oicdrom_ide:oicdrom/g \ |sed s/^fcp:oscd/oscd_fcp:oscd/g \ |sed s/^iscsi:oscd/oscd_iscsi:oscd/g \ |sed s/^scsi:oscd/oscd_scsi:oscd/g \ |sed s/^sata:pdvdram/pdvdram_sata:pdvdram/g \ |sed s/^sata:pdvdrom/pdvdrom_sata:pdvdrom/g \ |sed s/^sata:dvdram/dvdram_sata:dvdram/g \ |sed s/^sata:dvdrom/dvdram_sata:dvdrom/g \ |sed s/^sata:wcdvdram/wcdvdram_sata:wcdvdram/g \ |sed s/^sata:osopt/osopt_sata:osopt/g } xx logicname logicname_cookedname:type:subclass:parent:port:loc:state:descrmvcdr_hdrcdrom_ln_optRemove a CD ROM Drivesmit.catlogicnamecfgcdr_hdrcdrom_ln_optConfigure a Defined CD ROM Drivesmit.catlogicnamemakomd_rwopt_predef_optAdd a R/W Optical Drivesmit.catclass () # str1 str2 str3 { echo $1 | sed 's/^\([^ ]*\)[ ]*\([^ ]*\)[ ]*/\2:\1:\2:/' |sed s/scsi:osomd/osomd_scsi:osomd/g } class _rawname_cookedname:type:subclass:descmakomd_scsi_hdrmakomd_parent_optAdd a R/W Optical Drivesmit.catparentmakomd_osomd_scsi_hdrmakomd_parent_optAdd a R/W Optical Drivesmit.catparentchgomd_rwopt_ln_optChange/Show Characteristics of a R/W Optical Drivesmit.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\2:&/'\ |sed s/^fcp:osomd/osomd_fcp:osomd/g \ |sed s/^iscsi:osomd/osomd_iscsi:osomd/g \ |sed s/^scsi:osomd/osomd_scsi:osomd/g } xx logicname logicname_cookedname:type:subclass:parent:port:loc:state:descrmvomd_hdrrwopt_ln_optRemove a R/W Optical Drivesmit.catlogicnamecfgomd_hdrrwopt_ln_optConfigure a Defined R/W Optical Drivesmit.catlogicnamechgsasadap_hdr_sasadap_ln_optChange / Show Characteristics of a SAS Adaptersas.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descchgsasproto_hdr_sasproto_ln_optChange/Show Characteristics of a SAS SCSI Protocol Devicesas.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descnvme_list_dialognvme_list_avail_adaptersList NVMe Storage Configurationnvmemgr.catcontrollernvme_cfg_adapnvme_list_def_adaptersConfigure a Defined NVMe Controllernvmemgr.catcontrollerchgnvmectrl_hdr_nvme_ln_optChange / Show Characteristics of a NVMe Controllernvmemgr.catxx () { type=`lsdev -C -l $1 -F type` subclass=`lsdev -C -l $1 -F subclass` loc=`lsdev -C -l $1 -F location` state=`lsdev -C -l $1 -F status` desc=`lsdev -C -l $1 -F description` pci_speed= pci_width= adap_status=`lsdev -l $1 | cut -f2 -d ' '` if [ $adap_status == Available ] && [ $subclass == pciex ] then pci_speed=`nvmemgr -J -l $1 -k 6 -q` pci_width=`nvmemgr -J -l $1 -k 7 -q` fi /usr/bin/echo "$type"_"$subclass:\c" /usr/bin/echo "$type:\c" /usr/bin/echo "$subclass:\c" /usr/bin/echo "$loc:\c" /usr/bin/echo "$state:\c" /usr/bin/echo "$desc:\c" /usr/bin/echo "$pci_speed:\c" /usr/bin/echo "$pci_width" } xx logicname logicname_cookedname:type:subclass:loc:state:desc:pci_speed:pci_widthcreate_ns_hdrnvme_list_ns_cre_supt_adapsCreate a Namespacenvmemgr.catxx () { free_space=`nvmemgr -J -l $1 -k 10` /usr/bin/echo "$free_space" } xx controller controllerfree_spaceattach_ns_cmdnvme_list_ns_mgmt_supt_adapsAttach a Namespacenvmemgr.catcontrollerdelete_ns_cmdnvme_list_ns_mgmt_supt_adapsDelete a Namespacenvmemgr.catcontrollerdetach_ns_cmdnvme_list_ns_mgmt_supt_adapsDetach a Namespacenvmemgr.catcontrollerchgbell2pcieasync_hdrbell2pcieasync_ln_optChange/Show Characteristics of a PCIe 2-port Async EIA-232 Adapterasync_pcie.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" } xx logicname logicnametype:subclass:parent:port:loc:state:descchgintegpcieasync_hdrintegpcieasync_ln_optChange/Show Characteristics of a PCIe Async EIA-232 Controllerasync_pcie.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" } xx logicname logicnametype:subclass:parent:port:loc:state:descchgvrtscsi_hdr_vrtscsi_ln_optChange/Show Characteristics of a VirtIO SCSI Adaptervrtscsi.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descchgexar2async_hdrexar2async_ln_optChange/Show Characteristics of a Native 2-Port EIA-232 PCI Adapterdevices.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" } xx logicname logicnametype:subclass:parent:port:loc:state:descchgjas2async_hdrjas2async_ln_optChange/Show Characteristics of a 2-Port Asynchronous EIA-232 PCI Adapterdevices.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" } xx logicname logicnametype:subclass:parent:port:loc:state:descchgcxp8async_hdrcxp8async_ln_optChange/Show Characteristics of a IBM 8-Port EIA-232/RS-422A (PCI) Adapterdevices.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" } xx logicname logicnametype:subclass:parent:port:loc:state:descmk_hdlcdpmp_ddln_hdlcdpmp_opt3Add a Device Driverhdlc_device.catparentch_hdlcdpmp_ddln_hdlcdpmp_optChange/Show Characteristics of an HDLC Device Driverhdlc_device.catlogicnamerm_hdlcdpmp_ddln_hdlcdpmp_optRemove a Device Driversmit.catlogicnamecfg_hdlcdpmp_ddln_hdlcdpmp_opt2Configure a Defined Device Driversmit.catlogicnamechgexar1async_hdrexar1async_ln_optChange/Show Characteristics of a Native 1-Port EIA-232 PCI Adapterdevices.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" } xx logicname logicnametype:subclass:parent:port:loc:state:descchgbell4async_hdrbell4async_ln_optChange/Show Characteristics of a 4 Port Async EIA-232 PCIe Adapterdev_async.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" } xx logicname logicnametype:subclass:parent:port:loc:state:descmk_tsdd_ddln_tsdd_opt3Add a Device Driverts_devices.catparentch_tsdd_ddln_tsdd_optChange/Show Characteristics of an MPQP COMIO Emulation Device Driverts_devices.catlogicnamerm_tsdd_ddln_tsdd_optRemove a Device Driversmit.catlogicnamecfg_tsdd_ddln_tsdd_opt2Configure a Defined Device Driversmit.catlogicnamemk_tsdd_portsln_tsp_opt3Add a Portts_devices.catdvdrnamech_tsdd_portsln_tsp_optChange/Show Characteristics of an MPQP COMIO Emulation Portts_devices.catlogicnamerm_tsdd_portsln_tsp_optRemove a Portts_devices.catlogicnamecfg_tsdd_portsln_tsp_opt2Configure a Defined Portts_devices.catlogicnamerm_list_dialogrm_list_avail_adapters_msList PCI-X SCSI Disk Array Configurationsisraidmgr.catadaptersrm_prep_candsrm_list_avail_adapters_msCreate an Array Candidate pdisk and Format to 522 Byte Sectorssisraidmgr.catadaptersrm_prep_dialogrm_list_prep_candsCreate an Array Candidate pdisk and Format to 522 Byte Sectorssisraidmgr.catdevice_listrm_raid_level_selectrm_list_avail_adaptersCreate a PCI-X SCSI Disk Arraysisraidmgr.catadapterrm_stripe_size_selrm_raid_level_optCreate a PCI-X SCSI Disk Arraysisraidmgr.catfunction get_ary_requirements { raid_level=$1 adapter=$2 min_drives=`sisraidmgr -B -b3 -r $raid_level -l $adapter` max_drives=`sisraidmgr -B -b4 -r $raid_level -l $adapter` mult_drives=`sisraidmgr -B -b5 -r $raid_level -l $adapter` /bin/echo "$adapter:\c" /bin/echo "$raid_level:\c" /bin/echo "$min_drives:\c" /bin/echo "$max_drives:\c" /bin/echo "$mult_drives:\c" } get_ary_requirements raid_level adapterraid_leveladapter:raid_level:min_drives:max_drives:mult_drivesrm_device_selrm_list_stripe_sizesCreate a PCI-X SCSI Disk Arraysisraidmgr.catstripe_sizerm_create_dialogrm_dev_sel_optCreate a PCI-X SCSI Disk Arraysisraidmgr.catdevicesrm_select_del_aryrm_list_avail_adaptersDelete a PCI-X SCSI Disk Arraysisraidmgr.catadapterrm_del_ary_dialogrm_list_uncfg_candsDelete a PCI-X SCSI Disk Arraysisraidmgr.catfunction get_name_or_sn { for i in $1 do cmp_name=`/bin/echo "$i" | cut -c -2` if [ $cmp_name = hd ] then echo "$i \c" fi if [ $cmp_name = SN ] then serial_number=`/bin/echo "$i" | cut -c 3-` /bin/echo "$serial_number \c" fi done } get_name_or_sn del_array_infodel_array_infoary_name_or_sn_listrm_select_include_devicerm_list_all_sisarraysAdd Disks to an Existing PCI-X SCSI Disk Arraysisraidmgr.catfunction get_ary_requirements { bus=`odmget -q"name=$1" CuDv | grep parent | sed 's/parent = //' | sed 's/"//g' |awk '{print $1}'` adapter=`odmget -q"name=$bus" CuDv |grep parent | sed 's/parent = //' | sed 's/"//g' |awk '{print $1}'` raid_level=`odmget -q"name=$1 AND attribute=raid_level" CuAt | grep value | sed 's/value = //' | sed 's/"//g' | awk '{print $1}'` min_drives=`sisraidmgr -B -b3 -r $raid_level -l $adapter` max_drives=`sisraidmgr -B -b4 -r $raid_level -l $adapter` mult_drives=`sisraidmgr -B -b5 -r $raid_level -l $adapter` cur_drives=`odmget -q"name=$1 AND attribute=num_devices" CuAt | grep value | sed 's/value = //' | sed 's/"//g' | awk '{print $1}'` /bin/echo "$adapter:\c" /bin/echo "$raid_level:\c" /bin/echo "$min_drives:\c" /bin/echo "$max_drives:\c" /bin/echo "$mult_drives:\c" /bin/echo $cur_drives } get_ary_requirements ary_nameary_nameadapter:raid_level:min_drives:max_drives:mult_drives:cur_drivesrm_add_dev_dialogrm_list_inc_disks_1Add Disks to an Existing PCI-X SCSI Disk Arraysisraidmgr.catdevice_listrm_cfg_def_ary_dialogrm_list_def_arraysConfigure a Defined PCI-X SCSI Disk Arraysisraidmgr.catarrayrm_chg_ary_dialogrm_list_sisarrssisraidmgr.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx ary_nameary_name_cookedname:type:subclass:loc:state:descrm_reconst_dialogrm_list_rebuild_candsReconstruct a PCI-X SCSI Disk Arraysisraidmgr.catrebuild_listrm_chg_pdisk_dialogrm_list_all_pdisksChange/Show PCI-X SCSI pdisksisraidmgr.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx pdiskpdisk_cookedname:type:subclass:loc:state:descrm_hs_dev_selrm_list_avail_adapters_msCreate a Hot Sparesisraidmgr.catadaptersrm_create_hs_dialogrm_hs_dev_sel_optCreate a Hot Sparesisraidmgr.catdevice_listrm_del_hs_selrm_list_avail_adapters_msDelete a Hot Sparesisraidmgr.catadaptersrm_del_hs_dialogrm_del_hs_sel_optDelete a Hot Sparesisraidmgr.catdevice_listrm_fmt_jbod_candsrm_list_avail_adapters_msDelete an Array Candidate pdisk and Format to 512 Byte Sectorssisraidmgr.catadaptersrm_fmt_jbod_dialogrm_list_jbod_candsDelete an Array Candidate pdisk and Format to 512 Byte Sectorssisraidmgr.catdevice_listrm_sel_pdisk_vpdrm_list_avail_adaptersDisplay pdisk Vital Product Datasisraidmgr.catadapterrm_disp_vpd_dialogrm_list_pdisks_vpdDisplay pdisk Vital Product Datasisraidmgr.catpdiskrm_fmt_disk_selrm_list_avail_adapters_msFormat Physical Disk Media (pdisk)sisraidmgr.catadaptersrm_fmt_pdisk_dialogrm_list_fmt_pdisksFormat Physical Disk Media (pdisk)sisraidmgr.catpdiskrm_reclaim_cache_rm_reclaim_adapter_selReclaim Controller Cache Storagesisraidmgr.catsisraidmgr -W -o1 -l adapteradapterrm_reclaim_yes_dlg_rm_allow_data_lossWARNINGsisraidmgr.catdataloss_option_rrm_reclaim_cache_No_dlgrm_no_op2rm_battery_display_dialogrm_list_avail_adaptersDisplay Controller Rechargeable Battery Informationsisraidmgr.catadapterrm_batt_force_dlg_Continuerm_list_avail_adaptersForce Controller Rechargeable Battery Errorsisraidmgr.catadapterrm_batt_restart_dlgrm_batt_restart_adapter_selStart Adapter Cachesisraidmgr.catadapterrm_cfg_adapter_dialogrm_list_def_adaptersConfigure a Defined PCI-X SCSI RAID Controllersisraidmgr.catadapterrm_ucfg_adapter_dialogrm_list_avail_adaptersUnconfigure an Available PCI-X SCSI RAID Controllersisraidmgr.catadaptersisraidmgr.catchgscsi_hdr_sisphys_scsi_busrm_list_phys_busesChange/Show Characteristic of a PCI-X SCSI Controller Bussisraidmgr.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:deschdr_sisraid_chg_controllerrm_list_avail_adaptersChange/Show Characteristics of a PCI-X SCSI RAID Controllersisraidmgr.catxx () { hdr=`lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/'` rm=`sisraidmgr -S -l $1` /bin/echo "$hdr:$rm" } xx logicnamelogicname_cookedname:type:subclass:loc:state:desc:op_mode:pref_op_mode:link_op:remote_vpid:remote_snscraid_chgdev.dialogscraid_pick_devicefunction get_scraid_parms { stripe_size=`odmget -q"name=$1 AND attribute=stripe_size" CuAt | grep value |sed 's/value = //' | sed 's/"//g'| awk '{print $1}'` if [ -z "$stripe_size" ] then stripe_size=`odmget -q"uniquetype=adapter/pci/14102e00 AND attribute=stripe_size" PdAt | grep deflt |sed 's/deflt = //' | sed 's/"//g'| awk '{print $1}'` fi bb=`odmget -q"name=$1 AND attribute=bb" CuAt | grep value |sed 's/value = //' | sed 's/"//g'| awk '{print $1}'` if [ -z "$bb" ] then bb=`odmget -q"uniquetype=adapter/pci/14102e00 AND attribute=bb" PdAt | grep deflt |sed 's/deflt = //' | sed 's/"//g'| awk '{print $1}'` fi #write_cache=`odmget -q"name=$1 AND attribute=write_cache" CuAt | grep value |sed 's/value = //' | sed 's/"//g'| awk '{print $1}'` #if [ -z "$write_cache" ] #then # write_cache=`odmget -q"uniquetype=adapter/pci/14102e00 AND attribute=write_cache" PdAt | grep deflt |sed 's/deflt = //' | sed 's/"//g'| awk '{print $1}'` #fi #read_ahead=`odmget -q"name=$1 AND attribute=read_ahead" CuAt | grep value |sed 's/value = //' | sed 's/"//g'| awk '{print $1}'` #if [ -z "$read_ahead" ] #then # read_ahead=`odmget -q"uniquetype=adapter/pci/14102e00 AND attribute=read_ahead" PdAt | grep deflt |sed 's/deflt = //' | sed 's/"//g'| awk '{print $1}'` #fi rebuild_rate=`odmget -q"name=$1 AND attribute=rebuild_rate" CuAt | grep value |sed 's/value = //' | sed 's/"//g'| awk '{print $1}'` if [ -z "$rebuild_rate" ] then rebuild_rate=`odmget -q"uniquetype=adapter/pci/14102e00 AND attribute=rebuild_rate" PdAt | grep deflt |sed 's/deflt = //' | sed 's/"//g'| awk '{print $1}'` fi data_scrubbing=`odmget -q"name=$1 AND attribute=data_scrubbing" CuAt | grep value |sed 's/value = //' | sed 's/"//g'| awk '{print $1}'` if [ -z "$data_scrubbing" ] then data_scrubbing=`odmget -q"uniquetype=adapter/pci/14102e00 AND attribute=data_scrubbing" PdAt | grep deflt |sed 's/deflt = //' | sed 's/"//g'| awk '{print $1}'` fi /bin/echo "$stripe_size:\c" /bin/echo "$bb:\c" /bin/echo "$rebuild_rate:\c" /bin/echo $data_scrubbing } get_scraid_parms namenamestripe_size:bb:rebuild_rate:data_scrubbing:namesm_ibm2493.catadptr_configdev.dialogadptr_pick_device_definednamesm_ibm2493.catget_vpd_drivecreate_scraid_opt_adptrDisplay Vital Product Datasm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catget_vpd_cmdget_vpd_optDisplay Vital Product Datasm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catclear_config.dialogscraid_pick_deviceecho namenamesm_ibm2493.catretry_config.dialogscraid_pick_devicenamesm_ibm2493.catlist_failedcreate_scraid_opt_adptrSelect a PCI SCSI RAID Adaptersm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catlist_failed_cmd_sclist_failed_opt_scRemove a FAILED Drivesm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catlist_deadsclun_select_opt_definedSelect a Logical Drive for Drive Revivalsm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catlist_dead_cmd_sclist_dead_opt_scRevive a FAILED Drivesm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catlist_optimalsclun_select_optSelect a Logical Drive for Drive Failuresm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catlist_optimal_cmd_sclist_optimal_opt_scFail a Drivesm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catlist_sparecreate_scraid_opt_adptrSelect a PCI SCSI RAID Adaptersm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catlist_spare_cmd_sclist_spare_opt_scRemove a Spare Drivesm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catlist_ES_normalcreate_scraid_opt_adptrSelect a PCI SCSI RAID Adaptersm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catlist_normal_cmdlist_normal_optMove cursor to Location of Desired Drivesm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catlist_ES_identifycreate_scraid_opt_adptrSelect a PCI SCSI RAID Adaptersm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catlist_identify_cmdlist_identify_optMove cursor to Location of Desired Drivesm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catlist_spare_hscreate_scraid_opt_adptrSelect a PCI SCSI RAID Adaptersm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catlist_spare_cmd_sc_hslist_spare_opt_sc_hsMove cursor to Location of Spare Drivesm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catlist_non_hscreate_scraid_opt_adptrSelect a PCI SCSI RAID Adaptersm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catlist_non_hs_cmd_sclist_non_hs_opt_scMove cursor to Location of Spare Drivesm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catlist_scraidcreate_scraid_opt_adptrList PCI SCSI Disk Arrayssm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catcreate_scraid_levelcreate_scraid_opt_adptrCreate a PCI SCSI Disk Arraysm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catcreate_scraid_drivescreate_scraid_opt_levelCreate a PCI SCSI Disk Arraysm_ibm2493.catecho llevelllevelrlevelsm_ibm2493.catcreate_scraid_cmdcreate_scraid_opt_drivesCreate a PCI SCSI Disk Arraysm_ibm2493.catecho ldrivesldrivesrdrivessm_ibm2493.catmodify_scraid_cmdmodify_scraid_optSelect a PCI SCSI RAID Arraysm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catdelete_scraid_cmddelete_scraid_optDelete a PCI SCSI Disk Arraysm_ibm2493.catnamesm_ibm2493.catdrive_status_scsclun_select_optSelect a Logical Drive For Reconstructionsm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catdrive_status_cmd_scdrive_status_opt_scReconstruct a PCI SCSI RAID Drivesm_ibm2493.catfunction get_dstat { echo $1 echo $2 } get_dstat cname chanidchanidsm_ibm2493.catlist_drives_scraidcreate_scraid_opt_adptrList all PCI SCSI RAID Drivessm_ibm2493.catecho lnamelnamecnamesm_ibm2493.cathdisk_configdev.dialoghdisk_pick_device_definednamesm_ibm2493.catcache_statuscreate_scraid_opt_adptrDisplay Status of Adapter Write Cachesm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catconfig_changes_cmdcreate_scraid_opt_adptrDisplay/Accept Configuration Changessm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catdrive_config_cmdcreate_scraid_opt_adptrAccept Configuration on Drivessm_ibm2493.catecho lnamelnamecnamesm_ibm2493.catmakcdr_ide_hdrmakcdr_ide_parent_optAdd a CD ROM Drivesmit.catparentchdispsz_dialchdispsz_seldisplaychdisptype_chdisptype_selfunction query_DDC { capable=`odmget -q "name=$1 AND attribute=DDC_capable" CuAt | sed -n ' /value = /p' | sed 's/value = //' | sed 's/"//g'` if [ ${capable}X = yX ] then print ddc_dial else print dial fi } query_DDCdisplaydisplaych_chres_refrt_selfunction get_next_id_postfix { temp=`echo $1` temp=`print ${temp%?}` capable=`odmget -q "name=$1 AND attribute=DDC_capable" CuAt | sed -n ' /value = /p' | sed 's/value = //' | sed 's/"//g'` if [ $temp = ppr ] || [ $temp = hispd3d ] then print refrt_only_dial else if [ ${capable}X = yX ] then print res_refrt_ddc_dial else print res_refrt_dial fi fi } get_next_id_postfixdisplaydisplaydisplay_pm_select_opt pm_select() { echo display_pm } pm_select _cookednamechgusbadap_hdr_usbadap_ln_optChange / Show Characteristics of a USB Adapterusb.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descchgusbdevice_hdr_usbdevice_ln_optChange/Show Characteristics of a USB Deviceusb.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descchgsoe_hdrsoe_ln_optChange/Show Characteristics of a Serial over Ethernet Adapterdev_soe.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" } xx logicname logicnametype:subclass:parent:port:loc:state:desc/usr/lib/methods/dev_soe.catrmsoe_hdrsoe_ln_optRemove a Serial over Ethernet Adapterdev_soe.catlogicname/usr/lib/methods/dev_soe.catcfgsoe_hdrsoe_ln_optConfigure a Defined Serial over Ethernet Adapterdev_soe.catlogicname/usr/lib/methods/dev_soe.catsas_list_dialogsas_list_avail_adapters_msList SAS Disk Array Configurationsissasraidmgr.catadapterssas_prep_candssas_list_avail_adapters_msCreate an Array Candidate pdisk and Format to RAID block sizesissasraidmgr.catadapterssas_prep_dialogsas_list_prep_candsCreate an Array Candidate pdisk and Format to RAID block sizesissasraidmgr.catdevice_listsas_raid_level_selectsas_list_avail_adaptersCreate a SAS Disk Arraysissasraidmgr.catadaptersas_stripe_size_selsas_raid_level_optCreate a SAS Disk Arraysissasraidmgr.catfunction get_ary_requirements { raid_level=$1 adapter=$2 min_drives=`sissasraidmgr -B -b3 -r $raid_level -l $adapter` max_drives=`sissasraidmgr -B -b4 -r $raid_level -l $adapter` mult_drives=`sissasraidmgr -B -b5 -r $raid_level -l $adapter` min_perc_cap_tier=`sissasraidmgr -B -b11 -r $raid_level -l $adapter` min_devs_tier=`sissasraidmgr -B -b12 -r $raid_level -l $adapter` /bin/echo "$adapter:\c" /bin/echo "$raid_level:\c" /bin/echo "$min_drives:\c" /bin/echo "$max_drives:\c" /bin/echo "$mult_drives:\c" /bin/echo "$min_perc_cap_tier:\c" /bin/echo "$min_devs_tier:\c" } get_ary_requirements raid_level adapterraid_leveladapter:raid_level:min_drives:max_drives:mult_drives:min_perc_cap_tier:min_devs_tiersas_device_selsas_list_stripe_sizesCreate a SAS Disk Arraysissasraidmgr.catstripe_sizesas_create_dialogsas_dev_sel_optCreate a SAS Disk Arraysissasraidmgr.catdevicessas_select_del_arysas_list_avail_adapters_msDelete a SAS Disk Arraysissasraidmgr.catadaptersas_del_ary_dialogsas_list_uncfg_candsDelete a SAS Disk Arraysissasraidmgr.catfunction get_name_or_sn { for i in $1 do cmp_name=`/bin/echo "$i" | cut -c -2` if [ "$cmp_name" = hd ] then echo "$i \c" fi if [ "$cmp_name" = SN ] then serial_number=`/bin/echo "$i" | cut -c 3-` /bin/echo "$serial_number \c" fi done } get_name_or_sn del_array_infodel_array_infoary_name_or_sn_listsas_select_include_devicesas_list_all_sisarraysAdd Disks to an Existing SAS Disk Arraysissasraidmgr.catfunction get_ary_requirements { bus=`odmget -q"name=$1" CuDv | grep parent | sed 's/parent = //' | sed 's/"//g' |awk '{print $1}'` adapter=`odmget -q"name=$bus" CuDv |grep parent | sed 's/parent = //' | sed 's/"//g' |awk '{print $1}'` raid_level=`odmget -q"name=$1 AND attribute=raid_level" CuAt | grep value | sed 's/value = //' | sed 's/"//g' | awk '{print $1}'` min_drives=`sissasraidmgr -B -b3 -r $raid_level -l $adapter` max_drives=`sissasraidmgr -B -b4 -r $raid_level -l $adapter` mult_drives=`sissasraidmgr -B -b5 -r $raid_level -l $adapter` cur_drives=`odmget -q"name=$1 AND attribute=num_devices" CuAt | grep value | sed 's/value = //' | sed 's/"//g' | awk '{print $1}'` /bin/echo "$adapter:\c" /bin/echo "$raid_level:\c" /bin/echo "$min_drives:\c" /bin/echo "$max_drives:\c" /bin/echo "$mult_drives:\c" /bin/echo $cur_drives } get_ary_requirements ary_nameary_nameadapter:raid_level:min_drives:max_drives:mult_drives:cur_drivessas_add_dev_dialogsas_list_inc_disks_1Add Disks to an Existing SAS Disk Arraysissasraidmgr.catdevice_listsas_cfg_def_ary_dialogsas_list_def_arraysConfigure a Defined SAS Disk Arraysissasraidmgr.catarraysas_chg_ary_dialogsas_list_sisarrssissasraidmgr.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx ary_nameary_name_cookedname:type:subclass:loc:state:descsas_reconst_dialogsas_list_rebuild_candsReconstruct a SAS Disk Arraysissasraidmgr.catrebuild_listsas_chg_pdisk_dialogsas_list_all_pdisksChange/Show SAS pdisksissasraidmgr.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx pdiskpdisk_cookedname:type:subclass:loc:state:descsas_hs_dev_selsas_list_avail_adapters_msCreate a Hot Sparesissasraidmgr.catadapterssas_create_hs_dialogsas_hs_dev_sel_optCreate a Hot Sparesissasraidmgr.catdevice_listsas_del_hs_selsas_list_avail_adapters_msDelete a Hot Sparesissasraidmgr.catadapterssas_del_hs_dialogsas_del_hs_sel_optDelete a Hot Sparesissasraidmgr.catdevice_listsas_fmt_jbod_candssas_list_avail_adapters_msDelete an Array Candidate pdisk and Format to JBOD block sizesissasraidmgr.catadapterssas_fmt_jbod_dialogsas_list_jbod_candsDelete an Array Candidate pdisk and Format to JBOD block sizesissasraidmgr.catdevice_listsas_sel_pdisk_vpdsas_list_avail_adaptersDisplay pdisk Vital Product Datasissasraidmgr.catadaptersas_disp_vpd_dialogsas_list_pdisks_vpdDisplay pdisk Vital Product Datasissasraidmgr.catpdisksas_fmt_disk_selsas_list_avail_adapters_msFormat Physical Disk Media (pdisk)sissasraidmgr.catadapterssas_fmt_pdisk_dialogsas_list_fmt_pdisksFormat Physical Disk Media (pdisk)sissasraidmgr.catpdisksas_reclaim_cache_sas_reclaim_adapter_selReclaim Controller Cache Storagesissasraidmgr.catsissasraidmgr -W -o1 -l adapteradaptersas_reclaim_yes_dlg_sas_allow_data_lossAttentionsissasraidmgr.catdataloss_option_rsas_reclaim_cache_No_dlgsas_no_op2sas_battery_display_dialogsas_list_avail_adaptersDisplay Controller Rechargeable Battery Informationsissasraidmgr.catadaptersas_batt_force_dlg_Continuesas_list_avail_adapters_msForce Controller Rechargeable Battery Errorsissasraidmgr.catadaptersas_batt_restart_dlgsas_batt_restart_adapter_selStart Adapter Cachesissasraidmgr.catadaptersas_cfg_adapter_dialogsas_list_def_adaptersConfigure a Defined SAS Controllersissasraidmgr.catadaptersas_ucfg_adapter_dialogsas_list_avail_adapters_msUnconfigure an Available SAS RAID Controllersissasraidmgr.catadaptersissasraidmgr.catsas_show_controller_dialog_1sas_list_avail_adapters_msShow Physical Resource Locationssissasraidmgr.catadaptersas_show_controller_dialog_2sas_list_avail_adapters_msShow Physical Resource Informationsissasraidmgr.catadaptersas_show_fabric_controller3sas_list_avail_adaptersShow Fabric Path Graphical Viewsissasraidmgr.catadaptersas_show_fabric_controller4sas_list_avail_adaptersShow Fabric Path Data Viewsissasraidmgr.catadaptersas_show_fabric_controller_dialog1sas_fabric_optShow Fabric Path Graphical Viewsissasraidmgr.catfabdevsas_show_fabric_controller_dialog2sas_fabric_optShow Fabric Path Data Viewsissasraidmgr.catfabdevsas_show_fabric_controller_dialog3sas_list_avail_adaptersShow Controller SAS Addresssissasraidmgr.catadapterhdr_sasraid_chg_controllersas_list_avail_adapters_msChange/Show SAS Controllersissasraidmgr.catxx () { hdr=`lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/'` hdr2="" for i in max_devices max_cmd_elems max_dma_window do val=`lsattr -E -O -l $1 -a $i 2>/dev/null` if [ $? -eq 0 ]; then hdr2="$hdr2":`echo "$val" | sed '/^#/d'` else hdr2="$hdr2":"Default" fi done rm2=`sissasraidmgr -S -l $1 -o1` /bin/echo "$hdr$hdr2:$rm2" } xx logicnamelogicname_cookedname:type:subclass:loc:state:desc:max_devs:max_cmds:max_dma:op_mode:pref_op_mode:pref_ha_access:dual_cfg:cache_control:ioa_sn:ww_id:link_op:remote_sn:remote_wid:awlink_op:awremote_sn:awremote_widsas_mgrt_raid_level_selectsas_mgrt_list_sisarraysMigrate an Existing SAS Disk Array to a New RAID Levelsissasraidmgr.catmgrt_ary_namesas_mgrt_stripe_size_selsas_mgrt_raid_level_optCreate a SAS Disk Arraysissasraidmgr.catmgrt_raid_levelsas_mgrt_select_diskssas_mgrt_list_stripe_sizesCreate a SAS Disk Arraysissasraidmgr.catfunction get_mgrt_requirements { ary_name=$1 raid_level=$2 min_drives=`sissasraidmgr -B -b8 -r $raid_level -l $ary_name` max_drives=`sissasraidmgr -B -b9 -r $raid_level -l $ary_name` mult_drives=`sissasraidmgr -B -b10 -r $raid_level -l $ary_name` /bin/echo "$ary_name:\c" /bin/echo "$raid_level:\c" /bin/echo "$min_drives:\c" /bin/echo "$max_drives:\c" /bin/echo "$mult_drives:\c" /bin/echo "$3:\c" } get_mgrt_requirements mgrt_ary_name mgrt_raid_level mgrt_stripe_sizemgrt_stripe_sizemgrt_ary_name:mgrt_raid_level:min_drives:max_drives:mult_drives:mgrt_stripe_sizesas_mgrt_array_dialogsas_mgrt_list_inc_disksInclude Disks during an SAS Disk Array Migrationsissasraidmgr.catmgrt_disk_listsas_ha_access_vsetsas_list_avail_adaptersManage HA Access Characteristics of a SAS Disk Arraysissasraidmgr.catadaptersas_ha_access_dialogsas_ha_access_listManage HA Access Characteristics of a SAS Disk Arraysissasraidmgr.catfunction get_ha_access_state { # drop spaces in Non Optimized before passing to awk # /bin/echo $1 | sed 's/Non Optimized/NonOptimized/g'| awk -F'[ =]+' '{ printf("%s:%s:%s",$1,$3,$5)}' | sed 's/NonOptimized/Non Optimized/g' } get_ha_access_state vdev:curr_access:pref_accesschgscsi_hdr_scsi_ln_optChange/Show Characteristics of a SCSI Adaptersmit.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descmksball_cmdmksball_sel_opt xx() { if [ "$1" = "" ] then echo " " else echo "$1" | sed 's/tty//' fi } xx tty_numrmiscsiswlsrmiscsiswRemove iSCSI Protocol Deviceiscsi.cat logicname logicnamechgiscsisw1__lsiscsiswChange / Show Characteristics of an iSCSI Protocol Deviceiscsi.catxx () { lsdev -C -l $1 -F "type:subclass:status:location:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/'; }; xx logicname logicname_cookedname:type:subclass:stat:loc:descchgiscsiadap_lsiscsiadapChange / Show Characteristics of an iSCSI Adapteriscsi.catlsdev -C -F type:subclass:status:location:description -l logicnamelogicnametype:subclass:stat:loc:descdelete_target_iscsi__lsiscsitargDelete an iSCSI Target Device in ODMiscsi.catxx () { integer count=1 integer stop=$1 lsiscsi -F "group name target_name port address" | while read line do if (( $count == $stop )) then break fi let count=$count+1 done echo $line | sed 's/:/#!:/g' | sed 's/ /:/g' } xx _firstPart _secondPart _firstPart:_secondPartgroup:name:targetname:port:addresschange_target_iscsi__lsiscsitargChange an iSCSI Target Device in ODMiscsi.catxx () { integer count=1 integer stop=$1 lsiscsi -F "group name target_name port address" | while read line do if (( $count == $stop )) then break fi let count=$count+1 done echo $line | sed 's/:/#!:/g' | sed 's/ /:/g' } xx _firstPart _secondPart _firstPart:_secondPartgroup:name:targetname:port:addressstatic_target_iscsi_lsiscsitargparentAdd a Statically Discovered iSCSI Target Device in ODMiscsi.catnamefile_target_iscsi_lsiscsitargparentAdd iSCSI Target Device(s) into ODM from a Fileiscsi.catnameauth_target_iscsi_lsiscsitargparentAdd Authentication Data for an Automatically Discovered iSCSI Target Deviceiscsi.catnamechgisnsconf_lsiscsiswChange / Show iSNS Configurationiscsi.catlsdev -C -F type:subclass:status:location:description -l logicnamelogicnametype:subclass:stat:loc:descchgidea_hdr_idea_ln_optChange/Show Characteristics of an IDE Adapteride.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description:parent" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:desc:parentrmi1_rmatRemove a Network Interfacesmit.cat_rawnamechifdriver1_chifdriveribNetwork Interface Driverssmit.cat_rawnamecmdhdr_mk_icmcmdopt_mk_icmAdd an Infiniband Communication Managericm.cat_rawnamecmd_chg_icmrm_list_optChange / Show an Infiniband Connection Managericm.cat_rawnamehdr_Icmrmrm_list_optRemove an Infiniband Communications Managericm.cat_rawnamecfg_Icmhdrls_cfg_list_optConfigure a Defined Infiniband Communication Managericm.cat_rawnamemk_sdlcscie_ddln_sdlcscie_opt3Add a Device Driverhdlc_device.catnddnamech_sdlcscie_ddln_sdlcscie_optChange/Show Characteristics of an SDLC Device Driverhdlc_device.catlogicnamerm_sdlcscie_ddln_sdlcscie_optRemove a Device Driversmit.catlogicnamecfg_sdlcscie_ddln_sdlcscie_opt2Configure a Defined Device Driversmit.catlogicnamechgdskt_hdrdskt_ln_optChange/Show Characteristics of a Diskette Drivesmit.catlsdev -C -F "parent:connwhere:location:status" -l logicname logicnameparent:port:loc:statermvdskt_hdrdskt_ln_optRemove a Diskette Drivesmit.catlogicnamecfgdskt_hdrdskt_ln_optConfigure a Defined Diskette Drivesmit.catlogicnamechgfcs_hdr_fcs_ln_optChange/Show Characteristics of a FC Adapterfcs.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descenfscsi_hdr_fscsi_ln_optEnable a FC SCSI Protocol Devicefcp.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descchgfscsi_hdr_fscsi_ln_optChange/Show Characteristics of a FC SCSI Protocol Devicefcp.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descdisfscsi_hdr_fscsi_ln_optDisable a FC SCSI Protocol Devicefcp.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descenfcnvme_hdr_fcnvme_ln_optEnable a FC-NVMe Protocol Devicefcnvme.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descdisfcnvme_hdr_fcnvme_ln_optDisable a FC-NVMe Protocol Devicefcnvme.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descchgfcnvme_hdr_fcnvme_ln_optChange/Show Characteristics of a FC-NVMe Protocol Devicefcnvme.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descenablefcnd_cmdenablefcnd_selEnable a FC Network Deviceefcndd.cat fcsadapter fcsadapterdisablefcnd_cmddisablefcnd_selDisable a FC Network Deviceefcndd.cat fcsadapter fcsadapterfcndcsc_hdrfcndcsc_optChange/Show Characteristics of FC Network Driverefcndd.cat logicname logicnamemkinetfc_mkinet1fcAdd a Fibre Channel Network Interfacefcs.cat_rawnamechinetfc_chfcChange / Show a Fibre Channel Network Interfacefcs.cat_rawnamermi1_rmfcRemove a Network Interfacesmit.catfunction cmd_cl { echo $* | awk '{ print $1 }' } cmd_cl_rwnm_rwnm_if_namechgenet_hdr_enet_ln_optChange/Show Characteristics of an Ethernet Adaptersmit.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descaddethch_addethch1Add An EtherChannel / Link Aggregationsmit.cat_rawnamechgethch1_chgethchChange / Show Characteristics of an EtherChannel / Link Aggregationsmit.cat_rawnamedelethch1_delethchRemove An EtherChannel / Link Aggregationsmit.catfrcflvrethch1_frcflvrethchForce A Failover In An EtherChannel / Link Aggregationsmit.cataddvlan1_addvlanAdd A VLANvlan_ent.catbase_adapterrmvlan1_lsvlanRemove A VLANvlan_ent.catlogicnamechvlan1_lsvlanChange / Show Characteristics of a VLANvlan_ent.catlogicnamemakdsk_disk_predef_optAdd a Disksmit.catclass () # str1 str2 str3 { echo $1 | sed 's/^\([^ ]*\)[ ]*\([^ ]*\)[ ]*/\2:\1:\2:/' |sed s/scsi:osdisk/osdisk_scsi:osdisk/g } class _rawname_cookedname:type:subclass:descmakdsk_scsi_hdrmakdsk_parent_optAdd a Disksmit.catparentmakdsk_osdisk_scsi_hdrmakdsk_parent_optAdd a Disksmit.catparentchgdsk_disk_ln_optChange/Show Characteristics of a Disksmit.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description:physloc" | sed 's/^\([^:]*\):\([^:]*\):/\2:&/'\ |sed s/^sas:osdisk/osdisk_sas:osdisk/g \ |sed s/^ide:oidisk/oidisk_ide:oidisk/g \ |sed s/^fcp:osdisk/osdisk_fcp:osdisk/g \ |sed s/^fcp:mpioapdisk/mpioapdisk_fcp:mpioapdisk/g \ |sed s/^fcp:mpioosdisk/mpioosdisk_fcp:mpioosdisk/g \ |sed s/^fcp:aixmpiods8k/aixmpiods8k_fcp:aixmpiods8k/g \ |sed s/^capidev:extflash/extflash_capidev:extflash/g \ |sed s/^capidev:intflash/intflash_capidev:intflash/g \ |sed s/^iscsi:osdisk/osdisk_iscsi:osdisk/g \ |sed s/^scsi:osdisk/osdisk_scsi:osdisk/g \ |sed s/^vrtscsi:mpioosdisk/mpioosdisk_vrtscsi:mpioosdisk/g \ |sed s/^nvme:nvmdisk/nvmdisk_nvme:nvmdisk/g \ |sed s/^vscsi:mstor/mstor_vscsi:mstor/g } xx logicname logicname_cookedname:type:subclass:parent:port:loc:state:desc:physlocrmvdsk_hdrdisk_ln_optRemove a Disksmit.catlogicnamecfgdsk_hdrdisk_ln_optConfigure a Defined Disksmit.catlogicnamemakdsk_disk_predef_opt_scsiAdd a Disksmit.catclass () # str1 str2 str3 { echo $1 | sed 's/^\([^ ]*\)[ ]*\([^ ]*\)[ ]*/\2:\1:\2:/' |sed s/scsi:osdisk/osdisk_scsi:osdisk/g } class _rawname_cookedname:type:subclass:descCryptChange_hdr_Crypt_ln_optChange/Show Characteristics of a Cryptographic Adaptersmit.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descchgcflash_hdr_cflash_ln_optChange / Show Characteristics of a CAPI Flash Adaptercflash.catxx () { lsdev -C -l $1 -F "type:subclass:location:status:description" | sed 's/^\([^:]*\):\([^:]*\):/\1_\2:&/' } xx logicname logicname_cookedname:type:subclass:loc:state:descmk_ddricphx_ddln_ddricphx_opt3Add a Device Driverddricio.catparentrm_ddricphx_ddln_ddricphx_optRemove a Device Driverddricio.catlogicnamecfg_ddricphx_ddln_ddricphx_opt2Configure a Defined Device Driverddricio.catlogicname_cache_setup_cache_lscacheChange / Show Characteristics of SSD Cache virtual devicecache_ssd.catcachename_cache_rmpool_cache_listpoolRemove a cache poolcache_ssd.cat_poolname_cache_chpool_cache_listpoolExtend a cache poolcache_ssd.cat_poolname_cache_mkpart_cache_listpoolCreate a cache partitioncache_ssd.cat_poolname_cache_rmpart_cache_listpartRemove a cache partitioncache_ssd.cat_partname_cache_extpart_cache_listpartExtend a cache partitioncache_ssd.cat_partname_cache_start_cache_listdevSet and start caching a target devicecache_ssd.cat_devnamesimplewpar_wpar_choiceget_wpar_choice () { if [[ $1 = "1" ]] then echo "sys" else echo "app" fi } get_wpar_choice_ctc_wpar_type_ctc_wpar_type_ctc_wpar_typeadvancedwpar_wpar_choiceSelect the type of Workload Partition to createget_wpar_choice () { if [[ $1 = "1" ]] then echo "sys" else echo "app" fi } get_wpar_choice_ctc_wpar_type_ctc_wpar_type_ctc_wpar_typefrmspecwpar_wpar_choiceSelect the type of Workload Partition to createget_wpar_choice () { if [[ $1 = "1" ]] then echo "sys" else echo "app" fi } get_wpar_choice_ctc_wpar_type_ctc_wpar_type_ctc_wpar_typeadvanced_sys_rvg_choicedummyCreate a System Workload Partitionsmwpar.catnullnullcorralhelp.catadvancedwpar_appdummyCreate an Application Workload Partitionnullnulladvanced_sys_rvg_wpar_choiceCreate a RootVG Workload Partition?get_rvg_choice () { if [[ $1 = "1" ]] then echo "choice" else echo "rvg_pop" fi } get_rvg_choiceadvanced_sys_populate_choiceUse and preserve data from existing file systems when creating the workload partition?get_populate_choice () { if [[ $1 = "1" ]] then echo "pop_with_default_mnts" else if [[ $1 = "2" ]] then echo "mnts_frm_efs" else if [[ $1 = "3" ]] then echo "specify_mnts" fi fi fi } get_populate_choiceadvanced_sys_pop_with_default_mntsdummyCreate a System Workload Partition (Advanced)nullnulladvanced_sys_rvg_popdummyCreate a RootVG System Workload Partition (Advanced)nullnulladvanced_sys_specify_mntsdummyCreate a System Workload Partition (Advanced)advanced_sys_mnts_frm_efsefs_choiceSelect Available Mount Groupfrmspecwpar__frmspecwparCreate a System Workload Partition from a Specification Filesmwpar.catget_wpar_choice () { OUT=`/usr/lib/corrals/sm_par -f $1 -t system | /usr/bin/tail +2l | /usr/bin/awk -F: '{print $9}'` if [[ $OUT = "yes" ]] then echo "rvg_sys_cmd_hdr" else echo "sys_cmd_hdr" fi } get_wpar_choicecorralhelp.catstartwpar_sys_startwpar_sysstartmwpar_sys_startwpar_syschgwpar_sys_chgwpar_syschgwpar_app_chgwpar_appnetlswpar_netlswparnetrmwpar_netrmwparfslswpar_fslswparmntlswpar_mntlswparumntwpar_umntwparfrmspecwpar_app_frmspecwparCreate an Application Workload Partition from a Specification Filesmwpar.catcorralhelp.catsimplewpar_sysdummyCreate a System Workload Partitionsmwpar.catnullnullcorralhelp.catsavewparcd_savewparcd_selectsavewpardvd_savewpardvd_selectsavewpardvdYes_savewpardvd_select1savewpardvdNo_savewpardvd_select2trcgroup_add.hdrtrcgroup_add.group_selectSelect a template Event Groupsmit.catgrp_ch.hdrgrp_ch.grp_selectSelect an Event Groupsmit.cattrcrpt_trcrpt_selmkcd_mkcd_selectmkdvd_mkdvd_selectmkdvdYes_mkdvd_select1mkdvdNo_mkdvd_select2verify_tape_hdrverify_tape_selectlogicnamesavevgcd_savevgcd_selectsavevgdvd_savevgdvd_selectsavevgdvdYes_savevgdvd_select1savevgdvdNo_savevgdvd_select2install_latestget_deviceInstall Softwaresmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_deviceupdate_allget_deviceUpdate Installed Software to Latest Level (Update All)smit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_devicelu_update_allget_deviceUpdate Installed Software to Latest Level (Live Update)smit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_devicealt_update_allget_deviceUpdate Installed Software to Latest Level (Update All)smit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_deviceinstall_bundle.get_bundleget_deviceInstall Software Bundlesmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_deviceinstall_bundleget_bundleInstall Software Bundlesmit.cat_bundlenameupdate_by_fixget_deviceUpdate Software by Fix (APAR)smit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_deviceinstall_allget_deviceInstall and Update from ALL Available Softwaresmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_devicelist_bundle.select_bundleget_deviceList Filesets in a Bundlesmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_devicelist_bundle.cmd_hdrlist_bundle.get_bundleSelect a Fileset Bundlesmit.cat_bundlelist_media_swget_deviceList Software on Installation Mediasmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_devicelist_media_fixesget_deviceList Software Fixes (APARs) on Installation Mediasmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_devicelist_media_infoget_deviceList Supplemental Fileset Information on Installation Mediasmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_devicebffcreateget_device.bffcreateCopy Software to Hard Disk for Future Installationsmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_devicecopy_bundle.get_bundleget_device.bffcreateCopy Software Bundle to Hard Disk for Future Installationsmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_devicecopy_bundleget_bundleCopy Software Bundle to Hard Disk for Future Installationsmit.cat_bundlenamedevinstget_deviceInstall Additional Device Softwaresmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_deviceprinterinstget_deviceInstall Additional Printer/Plotter Softwaresmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_deviceinstall_latest_r.get_location_optget_deviceInstall Softwaresmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_deviceinstall_latest_rget_location_optInstall Softwaresmit.cat_locationcommit_rget_locationCommit Applied Software Updates (Remove Saved Files)smit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_locationreject_rget_locationReject Applied Software Updates (Use Previous Version)smit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_locationremove_rget_locationRemove Installed Softwaresmit.catx() { if [ $2 ]; then echo "${1}#!:${2}" # If it has a colon, insert #! in front of it else echo $1 fi } xfirst_part second_partfirst_part:second_part_locationdump_copy_file_dump_copy_filesysdumpdev -L >/dev/null 2>&1 exit_status=$? if [ $exit_status = '2' ] then echo 'exit_2' exit 0 fi if [ $exit_status = '127' ] || [ $exit_status = '1' ] then dspmsg smit.cat -s 53 75 'Error: You must be logged in as root to run this command. ' exit $exit_status else echo 'not_2' exit $exit_status fi #dump_checkrdump_checkrdumpctrl_change_1_dialoguedumpctrl_c1_attrChange/Show Dump Attributes for a Componentsmit.cat foo() { echo $1 } foocomp_alias_selectordumpctrl_change_multidumpctrl_change_multi_chooseChange Dump Attributes for multiple Componentssmit.catdumpctrl_qpersist_do_dumpctrl_qp_optDisplay Persistent Customizationssmit.caterrpt.dial_2_1errpt_ghost2Generate an Error Reportsmit.caterrpt.dial_1_errpt_ghost1Generate an Error Reportsmit.caterrpt_sel_errpt_sel.1stsmit.catoutput_deviceamepat_report_dummy_id x() { /usr/bin/lparstat -i | /usr/bin/grep "Memory Mode" | /usr/bin/grep Expanded 2>/dev/null 1>&2 rc=$? if [[ ${rc} -eq 0 ]] then echo enabled else echo disabled fi } xUpdateCustomerInfoUpdateCustomerInfoDummyChange/Show Customer Information Is_Wpar() { val=`uname -W` if [[ ${val} -ne 0 ]] then echo WPAR fi } Is_WparDisablePmRecDisablePmRecWarn_optDisable Data Transmission Is_Wpar() { val=`uname -W` if [[ ${val} -ne 0 ]] then echo WPAR fi } Is_WparrmtapcmdtapselRemove A Tap Adaptersmit.catlogicnamechtapcmdtapselChange / Show Characteristics of a Tap Adaptersmit.catlogicnameconfigdhcp_usedhcpUse DHCP for TCPIP Configuration & Startupsmit.catfunction cmd_cl { IF=`echo $* | awk '{ print $1 }'` if [ "any" = "$IF" ] then echo "any:any" else lsdev -C -l $IF -F "type:name" fi } cmd_cl_rwnm_rwnmdevice_code:_rawnamemktcpip_mktcpip1Minimum Configuration & Startupsmit.catfunction cmd_cl { IF=`echo $* | awk '{ print $1 }'` lsdev -C -l $IF -F type:name } cmd_cl_rwnm_rwnmdevice_code:_rawnamechif1_chifNetwork Interface Driverssmit.cat_rawnamemkineten_mkinet1enAdd a Standard Ethernet Network Interfacesmit.cat_rawnamemkinetet_mkinet1etAdd an IEEE 802.3 Network Interfacesmit.cat_rawnamemkinettr_mkinet1trAdd a Token-Ring Network Interfacesmit.cat_rawnamemkinetsl_mkinet1slAdd a Serial Line INTERNET Network Interfacesmit.cat_rawnamemkinetso_mkinet1soAdd a Serial Optical Network Interfacesmit.cat_rawnamechinet_chinetChange / Show Characteristics of a Network Interfacesmit.catfunction cmd_to_classify { IF=`echo $* | awk '{ print $1 }'` lsdev -C -l $IF -F type:name } cmd_to_classify_rawnm_rawnmdevice_code:_rawnamermi1_rminetRemove a Network Interfacesmit.catfunction cmd_cl { echo $* | awk '{ print $1 }' } cmd_cl_rwnm_rwnm_if_namechhostent1_chhostentChange / Show Characteristics of a Hostsmit.catrmhostent1_chhostentRemove a Hostsmit.catfunction cmd_to_classify { IP=`echo $1 | awk '{ print $1 }'` HOSTE=`/usr/sbin/hostent -s $IP` if [ $? != 0 ] then exit 1 fi echo $HOSTE | awk '{ print $1 }' | sed "s/:/#!:/g" } cmd_to_classify_rawname_rawnameip_addrchservices1_chservicesChange / Show Characteristics of a Servicesmit.catfunction cmd_to_cl { echo $* | awk '{ print $1 ":" $2 }' } cmd_to_cl_rawnameoldname:oldprotrmservices1_rmservicesRemove a Servicesmit.catfunction cmd_to_cl { echo $* | awk '{ print $1 ":" $2 }' } cmd_to_cl_rawnameoldname:oldprotmkinetdconf1_mkinetdconfAdd an inetd Subserver Please refer to help for information concerning subserver dependenciessmit.catfunction cmd_conf { echo $* | awk '{ print $1 ":" $2 }' } cmd_conf_rawnameservname:protocolchinetdconf1_chinetdconfChange / Show Characteristics of an inetd Subserversmit.catfunction cmd_conf { echo $* | awk '{ print $1 ":" $2 }' } cmd_conf_rawnameservname:protocolrminetdconf1_rminetdconfRemove an inetd Subserversmit.catfunction cmd_to_classify { echo $1 | awk '{ print $1 ":" $2 }' } cmd_to_classify _rawnameoldname:oldprotchineten_chenChange / Show Characteristics of a Standard Ethernet Network Interfacesmit.cat_rawnamechinettr_chtrChange / Show Characteristics of a Token-Ring Network Interfacesmit.cat_rawnamermi1_rmenRemove a Network Interfacesmit.catfunction cmd_cl { echo $* | awk '{ print $1 }' } cmd_cl_rawname_rawname_if_namermi1_rmtrRemove a Network Interfacesmit.catfunction cmd_cl { echo $* | awk '{ print $1 }' } cmd_cl_rawname_rawname_if_namermi1_rmenRemove a Network Interfacesmit.catfunction cmd_cl { echo $* | awk '{ print $1 }' } cmd_cl_rawname_rawname_if_namechifdriver1_chifdriverenNetwork Interface Driverssmit.cat_rawnamechifdriver1_chifdrivertrNetwork Interface Driverssmit.cat_rawnamemkinetfi_mkinet1fiAdd a FDDI Network Interfacesmit.cat_rawnamechinetfi_chfiChange / Show Characteristics of a FDDI Network Interfacesmit.cat_rawnamermi1_rmfiRemove a Network Interfacesmit.catfunction cmd_cl { echo $* | awk '{ print $1 }' } cmd_cl_rawname_rawname_if_namechifdriver1_chifdriverfiNetwork Interface Driverssmit.cat_rawnameconfigauto6_chauto6Change / Show Restart Characteristics of Autoconf6 Processsmit.catfunction cmd_cl { IF=`echo $* | awk '{ print $1 }'` if [ "all" = "$IF" ] then echo "all:all" else lsdev -C -l $IF -F "type:name" fi } cmd_cl_rwnm_rwnmdevice_code:_rawnamemk6alias_mkinet6alAdd an IPV6 Network Aliassmit.catfunction cmd_cl { IF=`echo $* | awk '{ print $1 }'` lsdev -C -l $IF -F type:name } cmd_cl_rwnm_rwnmdevice_code:_rawnamerm6alias_rminet6alRemove an IPV6 Network Aliassmit.catfunction cmd_cl { IF=`echo $* | awk '{ print $1 }'` lsdev -C -l $IF -F type:name } cmd_cl_rwnm_rwnmdevice_code:_rawnamemkineten6_mkinet1en6Add an IPV6 Standard Ethernet Network Interfacesmit.cat_rawnamemkinetet6_mkinet1et6Add an IPV6 IEEE 802.3 Network Interfacesmit.cat_rawnamemkinettr6_mkinet1tr6Add an IPV6 Token-Ring Network Interfacesmit.cat_rawnamemkinetfi6_mkinet1fi6Add an IPV6 FDDI Network Interfacesmit.cat_rawnamechinet6_chinet6Change / Show Characteristics of an IPV6 Network Interfacesmit.catfunction cmd_to_classify { IF=`echo $* | awk '{ print $1 }'` lsdev -C -l $IF -F type:name } cmd_to_classify_rawnm_rawnmdevice_code:_rawnamemk4alias_mkinet4alAdd an IPV4 Network Aliassmit.catfunction cmd_cl { IF=`echo $* | awk '{ print $1 }'` lsdev -C -l $IF -F type:name } cmd_cl_rwnm_rwnmdevice_code:_rawnamerm4alias_rminet4alRemove an IPV4 Network Aliassmit.catfunction cmd_cl { IF=`echo $* | awk '{ print $1 }'` lsdev -C -l $IF -F type:name } cmd_cl_rwnm_rwnmdevice_code:_rawnamechinetvi_chviChange / Show a Virtual IP Address Interfacesmit.cat_rawnamecdat_no_initcdat_any_optNo initializationexit 0cdat_cdat_any_optDiscover Nodescdat.cat/usr/lib/cdat/smit/cdat_is_init discover_nodes no_initcdat_cdat_any_optList the Remote Nodescdat.cat/usr/lib/cdat/smit/cdat_is_init list_nodes no_initcdat_cdat_any_optAdd a Remote Nodecdat.cat/usr/lib/cdat/smit/cdat_is_init add_node no_initcdat_cdat_any_optAdd a Remote Node and Initialize Accesscdat.cat/usr/lib/cdat/smit/cdat_is_init addinit_node no_initcdat_cdat_any_optInitialize Access to Remote Nodescdat.cat/usr/lib/cdat/smit/cdat_is_init access_nodes no_initcdat_access_nodescdat_access_optInitialize Access to Remote Nodescdat.cat_nodefilecdat.catcdat_cdat_any_optChange/Show Characteristics of a Remote Nodecdat.cat/usr/lib/cdat/smit/cdat_is_init change_node no_initcdat_change_node2cdat_change_optChange/Show Characteristics of a Remote Nodecdat.cat_nodefilecdat.catcdat_change_nodecdat_get_hostnameChange/Show Characteristics of a Remote Nodecdat.catx() { # FIELD1=user@hostname, FIELD3=comment # : and @ supported in hostname (not in user) FIELD1=`echo "$1" | /usr/bin/sed -e 's/:/#!:/g' | \ /usr/bin/awk '{print $1}'` # : and @ supported in comment FIELD3=`echo "$1" | /usr/bin/sed -n -e 's/#/%#%/g' \ -e 's/%#%/ #/' -e 's/^.* #\(.*\)$/\1/p' | \ /usr/bin/sed -e 's/%#%/#/g' -e 's/:/#!:/g' \ -e 's/^ //'` # FIELDS=user:hostname, FIELD3=comment FIELDS=`echo "$FIELD1" | /usr/bin/sed -n -e 's/@/:/p'` if [ -z "$FIELDS" ] then FIELDS=":$FIELD1" fi echo "$FIELDS:$FIELD3" } xuser_hostname_cmntnode_type:user_hostname_cmntuser:hostname:commentcdat_cdat_any_optRemove a Remote Nodecdat.cat/usr/lib/cdat/smit/cdat_is_init remove_node no_initcdat_remove_node2cdat_remove_optRemove a Remote Nodecdat.cat_nodefilecdat.catcdat_remove_nodecdat_get_hostnameRemove a Remote Nodecdat.catnode_type:user_hostnamecdat.catcdat_cdat_any_optRemove a Remote Node and Suppress Accesscdat.cat/usr/lib/cdat/smit/cdat_is_init remsupp_node no_initcdat_remsupp_node2cdat_remove_optRemove a Remote Node and Suppress Accesscdat.cat_nodefilecdat.catcdat_remsupp_nodecdat_get_hostnameRemove a Remote Node and Suppress Accesscdat.catnode_type:user_hostnamecdat.catcdat_cdat_any_optSuppress Access to Remote Nodescdat.cat/usr/lib/cdat/smit/cdat_is_init supp_auth2 no_initcdat_supp_auth2cdat_supp_auth_optSuppress Access to Remote Nodescdat.cat_nodefilecdat.catcdat_cdat_any_optCollect Data from Remote Nodescdat.cat/usr/lib/cdat/smit/cdat_is_init collect_data no_initcdat_collect_datacdat_collect_optCollect Data from Remote Nodescdat.cat_nodefilecdat.catcdat_cdat_any_optDisplay Repository Contentscdat.cat/usr/lib/cdat/smit/cdat_is_init display_collect no_initcdat_cdat_any_optDelete Collects from the Repositorycdat.cat/usr/lib/cdat/smit/cdat_is_init delete_collect no_initcdat_cdat_any_optCheck Consistency of the Repositorycdat.cat/usr/lib/cdat/smit/cdat_is_init check_repos no_initcdat_cdat_any_optArchive Collectscdat.cat/usr/lib/cdat/smit/cdat_is_init archive_collect no_initcdat_cdat_any_optList All Collects Scheduledcdat.cat/usr/lib/cdat/smit/cdat_is_init list_sched no_initcdat_cdat_any_optSchedule a Collectcdat.cat/usr/lib/cdat/smit/cdat_is_init add_sched no_initcdat_add_schedcdat_add_sched_optSchedule a Collectcdat.cat_nodefilecdat.catcdat_cdat_any_optChange/Show Characteristics of a Scheduled Collectcdat.cat/usr/lib/cdat/smit/cdat_is_init change_sched no_initcdat_change_schedcdat_change_sched_optChange/Show Characteristics of a Scheduled Collectcdat.cat_collectcdat.catcdat_cdat_any_optRemove a Collect from the Schedulecdat.cat/usr/lib/cdat/smit/cdat_is_init remove_sched no_initcdat_remove_schedcdat_remove_sched_optRemove a Collect from the Schedulecdat.cat_collectcdat.cathandle_kern_transenabled_ker_trans_optEnable/Disable Transactionsprojctl.catchg_proj_hdrshow_proj_listShow/Change Project Definitionsprojctl.catchg_admin_rule_nextchg_admin_rule_optShow/Change Ruleprojctl.catchg_usr_alias_nextchg_usr_alias_optShow/Change Aliasprojctl.catchg_grp_alias_nextchg_grp_alias_optShow/Change Aliasprojctl.catshow_chg_adm_proj_nextshow_chg_adm_proj_optShow/Change Project Definitionsprojctl.catcr_usr_nextcr_usr_optCreate Project list for a userprojctl.catchg_usr_nextchg_usr_optShow/Change Project list for a userprojctl.catcr_grp_nextcr_grp_optCreate Project list for a groupprojctl.catchg_grp_nextchg_grp_optShow/Change Project list for a groupprojctl.catsar_sar_selvmstat_dummy_id_vmstat wpar_check() { RC=`uname -W` if [[ $RC = 0 ]] then echo global else echo wpar fi } wpar_checkiostatdummy_id_iostat wpar_check() { RC=`uname -W` if [[ $RC != 0 ]] then echo wpar fi } wpar_checkartexbackupartexbackup_dummy_optRevert to backup profileartex.cattest -f /etc/security/artex/latest_rollback.xml; echo $?chgcxpasync_hdrcxpasync_ln_optChange/Show Characteristics of a IBM 128-Port Async, EIA-232 (PCI) Adapterdevices.catxx () { lsdev -C -l $1 -F "type:subclass:parent:connwhere:location:status:description" } xx logicname logicnametype:subclass:parent:port:loc:state:descchnfsexp_1_nfs.chnfsexp.selectChange / Show Attributes of an Exported Directorysmit.cat_rawexpnamechnfsexp.dialog_nfs.chnfsexp.select_1Change / Show Attributes of an Exported Directorysmit.catx () { echo $1 | sed 's/,/#!:/g' }; x_rawversions_rawversions_cookedversionrmnfsexp.dialog_nfs.rmnfsexp.selectRemove a Directory from Exports Listsmit.cat_rawexpnamechnfsmnt.dialog_nfs.chnfsmnt.selectChange / Show Attributes of an NFS File Systemsmit.catrmnfsmnt.dialog_nfs.rmnfsmnt.selectRemove an NFS File Systemsmit.catchnfs4cl.dialog_nfs.chnfs4cl.selectChange / Show NFSv4 File System FSID Optionssmit.catips4_chg_man_tunnel_hh_hdrips4_chg_man_tunnel_hh_selChange IP Security Filter Rulessm_ipsec.catips4_chg_man_tunnel_hfh_hdrips4_chg_man_tunnel_hfh_selChange IP Security Filter Rulessm_ipsec.catips4_import_man_tunnelips4_import_man_tunnel_opt0Import IP Security Filtersm_ipsec.catdirectoryips4_chg_filter_hdrips4_chg_filter_selChange IP Security Filter Rulessm_ipsec.catips4_move_filter_hdrips4_move_filter_opt0Select the entry to be movedsm_ipsec.catfil_tobemovedips4_move_filter_cmdhdrips4_move_filter_opt1Select the entry to be moved tosm_ipsec.catfil_movedafterips4_import_filter_cmdhdrips4_import_filter_opt0Import IP Security Filtersm_ipsec.catdirectoryips4_delete_filter_hdrips4_delete_filter_selDelete IP Security Filter Rulessm_ipsec.catdel_filters_entryips6_chg_man_tunnel_hh_hdrips6_chg_man_tunnel_hh_selChange IP Security Filter Rulessm_ipsec.catips6_chg_man_tunnel_hfh_hdrips6_chg_man_tunnel_hfh_selChange IP Security Filter Rulessm_ipsec.catips6_import_tunnelips6_import_tunnel_opt0Import IP Security Filtersm_ipsec.catdirectoryips6_chg_filter_hdrips6_chg_filter_selChange IP Security Filter Rulessm_ipsec.catips6_move_filter_hdrips6_move_filter_opt0Select the entry to be movedsm_ipsec.catfil_tobemovedips6_move_filter_cmdhdrips6_move_filter_opt1Select the entry to be moved tosm_ipsec.catfil_movedafterips6_import_filter_cmdhdrips6_import_filter_opt0Import IP Security Filtersm_ipsec.catdirectoryips6_delete_filter_hdrips6_delete_filter_selDelete IP Security Filter Rulessm_ipsec.catdel_filters_entrylistRECrecording_typeType of Recordingtopas.cat_rawtopas.catpersistent_dummy_id recording_check() { listtrec -l local_bin -P >/dev/null 2>&1 rc1=$? listtrec -l local_nmon -P >/dev/null 2>&1 rc2=$? if [[ ${rc1} -eq 0 && ${rc2} -eq 0 ]] then echo local_Already_Running else echo local_record fi } recording_checkAlready_Running_Messagedummy_idperLocal_gather_typeRECType of Persistent Recordingtopas.cat check_rec() { if [[ $1 = binary ]] then echo startBinary elif [[ $1 = nmon ]] then echo startNmon fi } check_rectypeRECtopas.catpersistent_Cec_Dummy_Id Check_Cec_Recording() { listtrec -l CEC -P >/dev/null 2>&1 rc=$? if [[ $rc -eq 0 ]] then echo Cec_Already_Running else echo cec_recording fi } Check_Cec_Recordingpersistent_Cluster_Dummy_Id Check_Cluster_Recording() { listtrec -l Cluster -P >/dev/null 2>&1 rc=$? if [[ $rc -eq 0 ]] then echo Cluster_Already_Running else echo cluster_recording fi } Check_Cluster_Recordingstart_local_collect_localDataType of Recordingtopas.cat_rec_typetopas.catstart_localBinary_gather_lengthRECLength of Recordingtopas.cat_rec_lengthtopas.catstart_cec_start_cecidLength of Recordingtopas.cat_rec_lengthtopas.catstart_cluster_start_clusteridLength of Recordingtopas.cat_rec_lengthtopas.catstart_localNmon_start_local_nmonidLength of Recordingtopas.cat_rec_lengthtopas.catkillRECrecording_bin_killSelect the Recording to Killtopas.cat_selected_valuetopas.catkillRECrecording_nmon_killSelect the Recording to Killtopas.cat_selected_valuetopas.catkillRECrecording_cec_killSelect the Recording to Killtopas.cat_selected_valuetopas.catkillRECrecording_cluster_killSelect the Recording to Killtopas.cat_selected_valuetopas.catkill_dummy_id y() { /usr/bin/listtrec -l local_bin -P >/dev/null 2>&1 rc=$? if [[ ${rc} -eq 0 ]] then echo 1 else echo 2 fi } ykill_dummy_id y() { listtrec -l local_nmon -P >/dev/null 2>&1 rc=$? if [[ $rc -eq 0 ]] then echo 3 else echo 21 fi } ykill_dummy_id y() { listtrec -l CEC -P>/dev/null 2>&1 rc=$? if [[ $rc -eq 0 ]] then echo 4 else echo 22 fi } ykill_dummy_id y() { listtrec -l Cluster -P>/dev/null 2>&1 rc=$? if [[ $rc -eq 0 ]] then echo 6 else echo 24 fi } yrecording_info_file_printer_selectList_Recording_FilenameRecordingPathPath to locate the recording Filetopas.cat_RecordingPathList_Recording_PrinterRecordingPathPath to locate the recording Filetopas.cat_RecordingPathreportfmt1_List_Recording_FilenameidSelect the Recordingtopas.cat classify_rec() { echo $* | /usr/bin/grep "^local">/dev/null 2>&1 rc1=$? echo $* | /usr/bin/grep "^cec">/dev/null 2>&1 rc2=$? echo $* | /usr/bin/grep "^xmtopas">/dev/null 2>&1 rc3=$? echo $* | /usr/bin/grep "^cluster">/dev/null 2>&1 rc4=$? if [[ $rc1 -eq 0 ]] then echo local elif [[ $rc2 -eq 0 ]] then echo CEC elif [[ $rc3 -eq 0 ]] then echo XMT elif [[ $rc4 -eq 0 ]] then echo cluster fi } classify_rec_RecordingTypereportfmt2_List_Recording_FilenameidSelect the Recordingtopas.cat classify_rec() { echo $* | /usr/bin/grep "^local">/dev/null 2>&1 rc1=$? echo $* | /usr/bin/grep "^cec">/dev/null 2>&1 rc2=$? echo $* | /usr/bin/grep "^xmtopas">/dev/null 2>&1 rc3=$? echo $* | /usr/bin/grep "^cluster">/dev/null 2>&1 rc4=$? if [[ $rc1 -eq 0 ]] then echo local elif [[ $rc2 -eq 0 ]] then echo CEC elif [[ $rc3 -eq 0 ]] then echo XMT elif [[ $rc4 -eq 0 ]] then echo cluster fi } classify_rec_RecordingTypereport_gen11_report_format_CECReporting Formattopas.catf1() { case $1 in comma_separated|spreadsheet) echo 1 ;; detailed|summary|pool_detail|mempool|VIO_Server/Client|VIO_Server/Client_disk) echo 2 ;; esac } f1_report_format_report_formatreport_gen21_report_format_CECReporting Formattopas.catf1() { case $1 in comma_separated|spreadsheet) echo 1 ;; detailed|summary|pool_detail|mempool|VIO_Server/Client|VIO_Server/Client_disk) echo 2 ;; esac } f1_report_format_report_formatreport_gen12_report_format_localReporting Formattopas.catf1() { case $1 in comma_separated|spreadsheet) echo 1 ;; detailed|summary|disk_summary|network_summary|Adapter|Virtual_Adapter) echo 2 ;; nmon) echo 3 ;; esac } f1_report_format_report_formatreport_gen22_report_format_localReporting Formattopas.catf1() { case $1 in comma_separated|spreadsheet) echo 1 ;; detailed|summary|disk_summary|network_summary|Adapter|Virtual_Adapter) echo 2 ;; nmon) echo 3 ;; esac } f1_report_format_report_formatreport_gen33_report_format_XMTReporting Formattopas.catf1() { case $1 in comma_separated|spreadsheet) echo 1 ;; esac } f1_report_format_report_formatreport_gen44_report_format_XMTReporting Formattopas.catf1() { case $1 in comma_separated|spreadsheet) echo 1 ;; esac } f1_report_format_report_formatreport_gen11_report_format_clusterReporting Formattopas.catf1() { case $1 in comma_separated|spreadsheet) echo 1 ;; detailed) echo 2 ;; esac } f1_report_format_report_formatreport_gen21_report_format_clusterReporting Formattopas.catf1() { case $1 in comma_separated|spreadsheet) echo 1 ;; detailed) echo 2 ;; esac } f1_report_format_report_formatsuma_task_new_suma_task_new_selectSelect an Action to Performsuma.cat/usr/suma/bin/sm_suma cmd_to_classify_task_actionssuma_task_edit.select_actionsuma_task_select_taskidView/Change an Existing SUMA Tasksuma.catecho _taskidsuma_task_edit_suma_task_edit_selectSelect an Action to Performsuma.cat/usr/suma/bin/sm_suma cmd_to_classify_task_actionsRestAllSaveddchRestAllSaveddcoList of All Saved ValuesmyfilenameRestAllNBSaveddchRestAllNBSaveddcoList of All Saved Valuesmyfilenamemkinetcl_mkinet1clAdd a Cluster Pseudo Network Interfacesmit.cat_rawnameeznim_master_panelEasy NIM - NIM Master panelcmdnim.cateznim_client_panelEasy NIM - NIM Client panelcmdnim.catnim_c_inst_latest_cmdnim_c_inst_latest_get_lpp_sourceInstall Softwaresmit.cat_lppnim_c_update_all_cmdnim_c_update_all_get_lpp_sourceUpdate Installed Software to Latest Level (Update All)cmdnim.cat_lppnim_c_inst_bundle_get_bundlenim_c_inst_bundle_get_lpp_sourceInstall Software Bundlesmit.cat_lppnim_c_inst_bundle_cmdnim_c_inst_bundle_get_bundle_optInstall Software Bundlesmit.cat_bundlenim_c_updt_by_fix_cmdnim_c_updt_by_fix_get_lpp_sourceUpdate Software by Fix (APAR)smit.cat_lppnim_c_inst_all_cmdnim_c_inst_all_get_lpp_sourceInstall and Update from ALL Available Softwaresmit.cat_lppnim_c_bosinst_name_nim_c_bosinst_name_type_optReinstall the Base Operating Systemcmdnim.cat get_type () { if [[ $1 = "mksysb" ]] then echo "mksysb" elif [[ $1 = "spot" ]] then echo "spot" else echo "lpp" fi } get_type _inst_type_inst_typenim_c_bosinst_name_spotnim_c_bosinst_name_mksysb_optReinstall the Base Operating Systemcmdnim.cat_mksysbnim_c_bosinst_name_spotnim_c_bosinst_name_lpp_optReinstall the Base Operating Systemcmdnim.cat_lppnim_c_bosinst_cmdnim_c_bosinst_name_spot_optReinstall the Base Operating Systemcmdnim.cat_spotnim_c_list_infonim_c_get_lpp_optList Supplemental Fileset Information on Installation Mediasmit.cat_lppnim_c_nim_client_op_optPerform a NIM Client Operationcmdnim.catmultiplex() { . /etc/niminfo OP=$1 BUN= [[ "$OP" != update_all ]] && BUN=$( nimclient -l -c resources ${NIM_NAME} | awk ' (($2=="installp_bundle") || ($2=="fix_bundle")){print}') [[ -n "$BUN" ]] && echo "$OP"_bundle || echo $OP } multiplexopopnim_c_alloc_hdrnim_c_alloc_selectAllocate Network Install Resourcescmdnim.catresnim_c_dealloc_hdrnim_c_dealloc_res_select_optAllocated Network Install Resourcescmdnim.catresUpdateHmcInfoUpdateHmcInfoWarn_optUpdateHmcInfoUpdateHmcInfoDummyChange/Show HMC Information Is_Wpar() { val=`uname -W` if [[ ${val} -ne 0 ]] then echo WPAR fi } Is_Wpar Is_P8() { val=`/usr/sbin/getsystype -i | awk '{print $2}'` if [[ ${val} -gt 7 ]] then echo P8 fi } Is_P8assist_backupdummy_optBack Up the Systemsmit.catx() { # Check to see if the backup command is installed. lslpp -l bos.sysmgt.sysbr 2>/dev/null 1>/dev/null if [[ $? != 0 ]] then echo 2 else echo 1 fi } xmksysbdummy_optmksysbcmd_backupBack Up the Systemsmit.catinstall_sysbr () { # Set variables for message numbers. These must match the values # in the include file cmdassist_msg.h which is generated from the # cmdassist.msg file. # MF_CMDASSIST=cmdassist.cat # Message file ASSIST_ERR_SET=1 # Message set number ASSIST_INSTL_SYSBR_E=6 # Install error, sysbr package ASSIST_INSTL_FAIL_I=9 # Install failure, possible causes # Install the system backup package. /usr/lib/assist/install_pkg bos.sysmgt.sysbr if [[ $? != 0 ]] then # Display specific error message for backup. dspmsg -s $ASSIST_ERR_SET $MF_CMDASSIST $ASSIST_INSTL_SYSBR_E '0851-002 install_assist: The system cannot be backed up until the bos.sysmgt.sysbr package is installed. An attempt to install this package failed. ' # Display information about possible causes for install error. dspmsg -s $ASSIST_ERR_SET $MF_CMDASSIST $ASSIST_INSTL_FAIL_I 'The installation failure may have been caused by one of the following: - The input device/directory is not correct. The device may be changed through the Set Installation Device menu. - The input device does not contain a valid installation medium. - There is a valid installation medium, but it does not contain the necessary packages. If you are able to correct this problem, you may wish to try this function again. ' exit 1 else exit 0 fi } install_sysbr assist_printerassist_printer_dummy_optAdd a Print Queuesmit.catx() { # Check to see if the printer file is installed. lslpp -l printers.rte 2>/dev/null 1>/dev/null if [[ $? != 0 ]] then echo 2 else echo 1 fi } xmkpqassist_printer_dummy_optgui_check() { if [ $SMIT = "m" ]; then echo gui fi } gui_checkinvoke_guiassist_printer_dummy_optassist_printer1assist_print_optAdd a Print Queuesmit.catinstall_printers () { # Set variables for message numbers. These must match the values # in the include file cmdassist_msg.h which is generated from the # cmdassist.msg file. # MF_CMDASSIST=cmdassist.cat # Message file ASSIST_ERR_SET=1 # Message set number ASSIST_INSTL_PRINTER_E=20 # Install error, printer.rte package ASSIST_INSTL_FAIL_I=9 # Install failure, possible causes # Install the printer package. /usr/lib/assist/install_pkg "printers.rte" 2>&1 >/dev/null if [[ $? != 0 ]] then # Display specific error message for printers.rte. dspmsg -s $ASSIST_ERR_SET $MF_CMDASSIST $ASSIST_INSTL_PRINTER_E '0851-013 install_assist: These commands cannot be run until the printers.rte package is installed. An attempt to install this package failed. ' # Display information about possible causes for install error. dspmsg -s $ASSIST_ERR_SET $MF_CMDASSIST $ASSIST_INSTL_FAIL_I 'The installation failure may have been caused by one of the following: - The input device/directory is not correct. The device may be changed through the Set Installation Device menu. - The input device does not contain a valid installation medium. - There is a valid installation medium, but it does not contain the necessary packages. If you are able to correct this problem, you may wish to try this function again. ' exit 1 else exit 0 fi } install_printers mktcpipcmd_tcpipinstall_tcp () { # Set variables for message numbers. These must match the values # in the include file cmdassist_msg.h which is generated from the # cmdassist.msg file. # MF_CMDASSIST=cmdassist.cat # Message file ASSIST_ERR_SET=1 # Message set number ASSIST_INSTL_TCP_E=7 # Install error, tcp package ASSIST_INSTL_FAIL_I=9 # Install failure, possible causes # Install the needed tcp packages. /usr/lib/assist/install_pkg "bos.net.tcp.smit bos.net.tcp.client" if [[ $? != 0 ]] then # Give specific error message about tcpip. dspmsg -s $ASSIST_ERR_SET $MF_CMDASSIST $ASSIST_INSTL_TCP_E '0851-003 install_assist: TCP/IP cannot be started until the bos.net.tcp.client package is installed. An attempt to install this package failed. ' # Display information about possible causes for install error. dspmsg -s $ASSIST_ERR_SET $MF_CMDASSIST $ASSIST_INSTL_FAIL_I 'The installation failure may have been caused by one of the following: - The input device/directory is not correct. The device may be changed through the Set Installation Device menu. - The input device does not contain a valid installation medium. - There is a valid installation medium, but it does not contain the necessary packages. If you are able to correct this problem, you may wish to try this function again. ' exit 1 else exit 0 fi } install_tcp assist_nfsassist_nfs_dummy_optx() { # Check to see if the nfs is installed lslpp -l bos.net.nfs.client 2>/dev/null 1>/dev/null if [[ $? != 0 ]] then echo 2 else echo 1 fi } xmknfsassist_nfs_dummy_optmknfscmd_nfsStart NFSsmit.catinstall_nfs () { # Set variables for message numbers. These must match the values # in the include file cmdassist_msg.h which is generated from the # cmdassist.msg file. # MF_CMDASSIST=cmdassist.cat # Message file ASSIST_ERR_SET=1 # Message set number ASSIST_INSTL_NFS_E=8 # Install error, nfs package ASSIST_INSTL_FAIL_I=9 # Install failure, possible causes /usr/lib/assist/install_pkg "bos.net.nfs.client" 2>&1 >/dev/null if [[ $? != 0 ]] then # Give specific error message about nfs. dspmsg -s $ASSIST_ERR_SET $MF_CMDASSIST $ASSIST_INSTL_NFS_E '0851-004 install_assist: NFS cannot be started until the bos.net.nfs.client package is installed. An attempt to install this package failed. ' # Display information about possible causes for install error. dspmsg -s $ASSIST_ERR_SET $MF_CMDASSIST $ASSIST_INSTL_FAIL_I 'The installation failure may have been caused by one of the following: - The input device/directory is not correct. The device may be changed through the Set Installation Device menu. - The input device does not contain a valid installation medium. - There is a valid installation medium, but it does not contain the necessary packages. If you are able to correct this problem, you may wish to try this function again. ' exit 1 else exit 0 fi } install_nfs lang_msg_ascii.cmdlang_msg.ghost_optcm_tree._cm_tree.optcluster.catmain() { next=$(echo $1 | cut -f2 -d"(" | sed 's/)//') echo $next >/tmp/smit_tree_next [[ -n $(ODMDIR=/usr/lib/objrepos odmget -q"id = $next" sm_name_hdr 2>/dev/null) ]] && { echo n; exit 0; } [[ -n $(ODMDIR=/usr/lib/objrepos odmget -q"id = $next" sm_cmd_hdr 2>/dev/null) ]] && echo d exit 0 } main_rawname_cm_tree.opt.dcluster.catmain() { cat /tmp/smit_tree_next } main_cm_tree.opt.ncluster.catmain() { cat /tmp/smit_tree_next } maincm_discover_nw_interfaces_and_disks_dialogcm_discover_nw_interfaces_and_disks_frontendDiscover Network Interfaces and Diskscluster.catcm_add_communication.discovery.select.interfaces.2_cm_add_communication.select.discovery.interfacescluster.catmain() { echo $1 } main_rawnameNetworkNamecm_add_communication.interfaces.discovery.dialog_cm_add_communication.select.discovery.interfaces.2cluster.catcm_verify_and_synchronize_hacmp_config_menu_dmncm_verify_and_synchronize_hacmp_config_menu_dmn_frontend_optVerify and Synchronize Cluster Configurationcluster.cat_cm_setup_cluster_nodes_networkscluster.catcmd_to_classify() { if /usr/lib/cluster/incluster then # CAA cluster exists - see if there is a SM cluster if [[ -z $(odmget HACMPcluster) ]] then # this is an error case - shows some diagnostic information echo "cm_show_cluster_error" exit 0 fi # caa cluster exists - cant change anything echo "cm_show_cluster" exit 0 fi if [[ -n $(odmget HACMPcluster) ]] then # SM cluster exists but not caa cluster - allow basic changes ctype=$(/usr/es/sbin/cluster/utilities/clodmget -f multi_site_lc -n HACMPcluster) if (( $ctype < 0 )) then echo "cm_setup_cluster_nodes_networks_dialog" # change a flat cluster else echo "cm_setup_cluster_sites_nodes_networks_dialog" # change a site'd cluster fi exit 0 fi echo "cm_setup_cluster_nodes_networks_dialog" # create a flat cluster from scratch } cmd_to_classifycm_define_repos_ip_addr_dialog_cm_define_repos_ip_addrcmd_to_classify() { if /usr/es/sbin/cluster/sbin/cl_check_capability -i unicast >/dev/null 2>&1 then heartbeat=_hbc else heartbeat="" fi if [[ $(/usr/es/sbin/cluster/utilities/clodmget -n -f multi_site_lc HACMPcluster) == 1 ]] then sites=_sites else sites="" fi if /usr/lib/cluster/incluster then exists=_exists else exists="" fi if [[ -z $(/usr/es/sbin/cluster/utilities/clodmget -q "object = COMMUNICATION_PATH" -f value -n HACMPnode) ]] then print _nonodes else print ${exists}${sites}${heartbeat} fi } cmd_to_classifycm_show_snap.dialogcm_show_snap.optCluster Snapshot to Change/Showcluster.catcm_rm_snap.dialogcm_rm_snap.optCluster Snapshot to Removecluster.catcm_apply_snap.dialogcm_apply_snap.optCluster Snapshot to Restorecluster.catclsnapshot_custom_dialog_cha_clsnapshot_custom_dialog_cha.selectSelect a Custom Snapshot Methodcluster.catclsnapshot_custom_dialog_rem_clsnapshot_custom_dialog_rem.selectSelect a Custom Snapshot Methodcluster.catcllsnode.name.dialog_clm.cllsnode.selectSelect node to showcluster.catcm_change_show_node_cm_change_show_a_node_in_the_hacmp_cluster_selectcluster.catcm_remove_node_dialog_cm_delete_a_node_in_the_hacmp_cluster_selectcluster.catcm_add_a_persistent_node_ip_label_address_dialog_cm_add_a_persistent_node_ip_label_address_selectcluster.catcm_change_show_a_persistent_node_ip_label_address_dialog_cm_change_show_a_persistent_node_ip_label_address_selectcluster.catcm_delete_a_persistent_node_ip_label_address_dialog_cm_delete_a_persistent_node_ip_label_address_selectcluster.catcm_add_network_dialog_cm_add_a_network_to_the_hacmp_cluster_selectcluster.cat/usr/es/sbin/cluster/utilities/cl_harvestIP_scripts-e _rawnamecm_change_show_network_dialog_cm_change_show_a_network_in_the_hacmp_cluster_selectcluster.cat/usr/es/sbin/cluster/utilities/cl_harvestIP_scripts -d_rawnamecm_remove_network_dialog_cm_delete_a_network_in_the_hacmp_cluster_selectcluster.catcm_add_interfaces_dialog_cm_add_communication.select.discovery.interfacescluster.catmain() { echo $1 } main_rawnameNetworkNamecm_change_show_interface_dialog._cm_change_show_communication_interfaces_devices.selectcluster.catmain() { /usr/es/sbin/cluster/utilities/cl_harvestIP_scripts -h $1 } main_rawnamecm_remove_interfaces_dialog_cm_delete_communication_interfaces_devices.selectcluster.catcllsnw.name.dialog_clm.cllsnw.selectSelect network to showcluster.catcllsif.name.dialog_clm.cllsif.selectSelect network interface to showcluster.catcm_change_show_app_scripts_dialog_clchserv.selectSelect Application Controllercluster.catcmd_to_classify() { if [[ $1 == clas_nfsv4 ]]; then echo .custom1 fi } cmd_to_classify_rawnamecm_remove_app_scripts_dialogcm_config_server.del.selectApplication Controller to Removecluster.catcm_change_show_process_appmon_dialogcm_change_process_appmon.optSelect a Process Application Monitorcluster.catcm_remove_process_appmon_dialogcm_remove_process_appmon.optProcess Application Monitor to Removecluster.catcm_change_show_custom_appmon_dialogcm_change_custom_appmon.optSelect a Process Application Monitorcluster.catcmd_to_classify() { if [[ $1 == clam_nfsv4 ]]; then echo .custom1 fi } cmd_to_classify_rawnamecm_remove_custom_appmon_dialogcm_remove_custom_appmon.optApplication Monitor to Removecluster.catcm_cfg_add_hmc_dialogcm_hmc_dummy_optmain () { connection_type=$(/usr/es/sbin/cluster/utilities/clodmget -n -f connection_type HACMPhmcparam) if (( $connection_type == 1 )); then print ".rest" fi } maincm_cfg_ch_hmc_cmdcm_cfg_ch_hmc_sel_optChange/Show HMC Definitioncluster.cat_hmcnamecluster_hlp.catcm_cfg_rm_hmc_cmdcm_cfg_rm_hmc_sel_optRemove HMC Definitioncluster.cat_hmcnamecluster_hlp.catcm_cfg_hmcs_node_cmdcm_cfg_hmcs_node_sel_optChange/Show HMC List for a Nodecluster.cat_nodenamecluster_hlp.catcm_cfg_hmcs_site_cmdcm_cfg_hmcs_site_sel_optChange/Show HMC List for a Sitecluster.cat_sitenamecluster_hlp.catcm_cfg_hmc_pass_cm_hmc_dummy_optmain () { connection_type=$(/usr/es/sbin/cluster/utilities/clodmget -n -f connection_type HACMPhmcparam) if (( $connection_type == 1 )); then print "rest" else print "ssh" fi } maincm_cfg_hmc_pass_sshcm_hmc_dummy_optChange/Show HMC Credentialscluster.cat_hmcnamecluster_hlp.catcm_cfg_hmc_pass_cmdcm_cfg_hmc_pass_sel_optChange/Show HMC Credentialscluster.cat_hmcnamecluster_hlp.catcm_cfg_cm_repository_ghost_optOn/Off CoD Agreement or Addis_first_path () { PATH='/usr/bin:/usr/es/sbin/cluster/utilities' DIR=/var/hacmp/log # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) # For a non root user, append the user name to the output file. [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then FILE=$DIR/cm_cfg_roha_smit_pid_$user_name else FILE=$DIR/cm_cfg_roha_smit_pid fi PPID=`ps -oppid,pid | awk \ -v PID=$$ '$2 == PID {print $1}'` [ -e $FILE ] && OLDPPID=`cat $FILE` if [ "$PPID" -eq "$OLDPPID" ] then # It is not the first passage => Add echo add_hrp_sel else # It is the first passage => Agreement ? QUERY=`LC_ALL=C clmgr query cluster roha` RET=$? [ $RET -ne 0 ] && exit $RET AGREE=`echo "$QUERY" \ | grep 'AGREE_TO_COD_COSTS' \ | awk -F= '{print $2}'` if [ "$AGREE" == '"false"' ] then # No agreement => Ask agreement mkdir -p $DIR echo $PPID > $FILE echo add_hrp_agree else # Agreement => Add echo add_hrp_sel fi fi } is_first_pathcm_cfg_add_hrp_cm_cfg_roha_agree_optOn/Off CoD Agreementcluster.catcm_cfg_add_hrp_cmdcm_cfg_add_hrp_sel_optSelect an Application Controller_controllercluster.catcm_cfg_add_hrp_yes_cmdcm_cfg_add_hrp_sel_optSelect an Application Controller_controllercluster.catcm_cfg_cm_repository_ghost_optOn/Off CoD Agreement or Addis_first_path () { PATH='/usr/bin:/usr/es/sbin/cluster/utilities' DIR=/var/hacmp/log # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) # For a non root user, append the user name to the output file. [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then FILE=$DIR/cm_cfg_roha_smit_pid_$user_name else FILE=$DIR/cm_cfg_roha_smit_pid fi PPID=`ps -oppid,pid | awk \ -v PID=$$ '$2 == PID {print $1}'` [ -e $FILE ] && OLDPPID=`cat $FILE` if [ "$PPID" -eq "$OLDPPID" ] then # It is not the first passage => Change/Show echo get_hrp_sel else # It is the first passage => Agreement ? QUERY=`LC_ALL=C clmgr query cluster roha` RET=$? [ $RET -ne 0 ] && exit $RET AGREE=`echo "$QUERY" \ | grep 'AGREE_TO_COD_COSTS' \ | awk -F= '{print $2}'` if [ "$AGREE" == '"false"' ] then # No agreement => Ask agreement mkdir -p $DIR echo $PPID > $FILE echo get_hrp_agree else # Agreement => Change/Show echo get_hrp_sel fi fi } is_first_pathcm_cfg_get_hrp_cm_cfg_roha_agree_optOn/Off CoD Agreementcluster.catcluster_hlp.catcm_cfg_get_hrp_cmdcm_cfg_get_hrp_sel_optSelect an Application Controller_controllercluster.catcm_cfg_get_hrp_yes_cmdcm_cfg_get_hrp_sel_optSelect an Application Controller_controllercluster.catcm_cfg_rm_hrp_cmdcm_cfg_rm_hrp_sel_optSelect an Application Controller_controllercluster.catcm_add_a_service_ip_label_address.select.multiple.sites_cm_add_a_service_ip_label_address.select.multipleSelect the Networkcluster.cat_rawnetworknamecm_add_a_service_ip_label_address.dialog.multiple._cm_add_a_service_ip_label_address.select.multiple.sitescluster.catmain () { COUNT=`odmget HACMPsite | wc -l` if [[ $COUNT -eq 0 ]]; then echo nosites exit 0 else echo sites exit 0 fi } maincm_change_service_ip.dialog_cm_change_service_ip.selectcluster.catmain () { [[ -n $(odmget HACMPsite) ]] && echo ".sites" exit 0 } maincm_delete_service_ip.dialog_cm_delete_service_ip.selectcluster.catcm_change_show_service_ip_distribution_preference_cm_change_show_service_ip_distribution_preference_selectcluster_hlp.catcm_change_tape_dialog_clchtape.selectSelect Tape Resourcecluster.catcm_remove_tape_dialogcm_config_tape.del.selectTape Resource to Removecluster.catcm_add_resource_group_dialog_cm_add_custom_resource_group_dialog.selectcluster.catmain () { COUNT=`odmget HACMPsite | wc -l` if [[ $COUNT -gt 0 ]]; then echo .sites exit 0 fi } maincm_change_show_rg_nodes_policies_dialogcm_change_a_resource_group_select.optcluster.catmain () { COUNT=`/bin/odmget HACMPsite | wc -l` if [[ $COUNT -gt 0 ]]; then echo .sites exit 0 fi } maincm_change_show_rg_resources_dialog._cm_change_a_resource_group_selectcluster.cat/usr/es/sbin/cluster/utilities/cl_rgtype_rawnamecm_remove_resource_group_dialog_clm.cm_del_grp.selectSelect a Resource Groupcluster.catcm_rg_dependencies.add.select.2_cm_rg_dependencies.add.selectSelect the Parent Resource Groupcluster.catmain () { echo $1 } mainParentcm_rg_dependencies.add.dialog_cm_rg_dependencies.add.select.2Select the Child Resource Groupcluster.cat_rawnamecm_rg_dependencies.ch.dialog_cm_rg_dependencies.ch.selectSelect a Parent/Child Resource Group Dependency to Change/Showmain() { echo $1 | read A B echo $A:$B } mainParent:Childcm_rg_dependencies.rm.dialog_cm_rg_dependencies.rm.selectSelect a Parent/Child Resource Group Dependency to Deletemain() { echo $1 | read A B echo $A:$B } mainParent:Childcm_rg_dependencies.display.dialog._cm_rg_dependencies.display.selectSelect a Base for Displayingcluster.catmain() { dspmsg -s 46 cluster.cat 11 "Display per Parent " |read STRING1 dspmsg -s 46 cluster.cat 12 "Display per Child " |read STRING2 if [ "$1" = "$STRING1" ]; then echo "parent" exit 0 fi if [ "$1" = "$STRING2" ]; then echo "child" exit 0 fi exit 0 } main_rawnamecm_rg_dependencies_startafter.add.select.2cm_rg_dependencies.add.select.startafter.optSelect the Source Resource Groupcluster.catmain () { echo $1 } mainSourcecm_rg_dependencies_startafter.add.dialog_cm_rg_dependencies_startafter.add.select.2Select the Target Resource Groupcluster.cat_rawnamecm_rg_dependencies_startafter.ch.dialogcm_rg_dependencies.ch.select.startafter.optSelect a Start After Resource Group Dependency to Change/Showmain() { echo $1 | read A B echo $A:$B } mainSource:Targetcm_rg_dependencies_startafter.rm.dialogcm_rg_dependencies.rm.select.startafter.optSelect a Start After Resource Group Dependency to Removemain() { echo $1 | read A B echo $A:$B } mainSource:Targetcm_rg_dependencies_startafter.display.dialog.cm_rg_dependencies.display.select.startafter.optSelect a Base for Displayingcluster.catmain() { dspmsg -s 46 cluster.cat 53 "Display per Source " |read STRING1 dspmsg -s 46 cluster.cat 54 "Display per Target " |read STRING2 if [ "$1" = "$STRING1" ]; then echo "source" exit 0 fi if [ "$1" = "$STRING2" ]; then echo "target" exit 0 fi exit 0 } main_rawnamecm_rg_dependencies.add.select.stopafter.2cm_rg_dependencies.add.select.stopafter.optSelect the Source Resource Groupcluster.catmain () { echo $1 } mainSourcecm_rg_dependencies_stopafter.add.dialogcm_rg_dependencies.add.select.stopafter.2.optSelect the Target Resource Groupcluster.cat_rawnamecm_rg_dependencies_stopafter.ch.dialogcm_rg_dependencies.ch.select.stopafter.optSelect a Stop After Resource Group Dependency to Change/Showmain() { echo $1 | read A B echo $A:$B } mainSource:Targetcm_rg_dependencies_stopafter.rm.dialogcm_rg_dependencies.rm.select.stopafter.optSelect a Stop After Resource Group Dependency to Deletemain() { echo $1 | read A B echo $A:$B } mainSource:Targetcm_rg_dependencies_stopafter.display.dialog.cm_rg_dependencies.display.select.stopafter.optSelect a Base for Displayingcluster.catmain() { dspmsg -s 46 cluster.cat 53 "Display per Source " |read STRING1 dspmsg -s 46 cluster.cat 54 "Display per Target " |read STRING2 if [ "$1" = "$STRING1" ]; then echo "source" exit 0 fi if [ "$1" = "$STRING2" ]; then echo "target" exit 0 fi exit 0 } main_rawnamecm_rg_osn_dependencies.ch.dialog_cm_rg_osn_dependencies.ch.selectSelect a Resource Group Dependency to Change/Showcluster.catrg_listcm_rg_osn_dependencies.rm.dialog_cm_rg_osn_dependencies.rm.selectSelect a Resource Group Dependency to Deletecluster.catrg_listcm_rg_odn_dependencies.ch.dialog_cm_rg_odn_dependencies.ch.selectSelect a Resource Group Dependency to Change/Showcluster.catrg_listcm_rg_odn_dependencies.rm.dialog_cm_rg_odn_dependencies.rm.selectSelect a Resource Group Dependency to Deletecluster.catrg_listcm_timer_add.dialog.cm_timer_add.select_optSelect a Recurrence for Fallback Timer Policycluster.catcmd() { DAILY=`dspmsg -s 36 cluster.cat 25 'Daily'` ; WEEKLY=`dspmsg -s 36 cluster.cat 26 'Weekly'` ; MONTHLY=`dspmsg -s 36 cluster.cat 27 'Monthly'` ; YEARLY=`dspmsg -s 36 cluster.cat 28 'Yearly'` ; ONCE=`dspmsg -s 36 cluster.cat 29 'Specific Date'` ; case $1 in $DAILY) echo daily; return 0 ;; $WEEKLY) echo weekly; return 0 ;; $MONTHLY) echo monthly; return 0 ;; $YEARLY) echo yearly; return 0 ;; $ONCE) echo once; return 0 ;; *) echo Unknown Recurrence Type; return 1;; esac } cmd _rawnamecluster_hlp.catcm_timer_update.dialog.cm_timer.select_optSelect Fallback Timer Policy to Changecluster.catcmd() { /usr/es/sbin/cluster/utilities/cltimerpolicy -a list -f script -n $1 | cut -d : -f 2 } cmd _rawnamecluster_hlp.catcm_timer_remove.dialogcm_timer.select_optSelect Fallback Timer Policy to Removecluster.catcluster_hlp.catcllsres.dialog_cllsres.selectSelect Node Namecluster.catclshowres.dialog_clshowres.selectSelect Resource Group Namecluster.catconfig_pha_loglen_config_pha_loglen.selectSelect the Log File to change, or ALL to change all logscluster.catclrecover.dialog_clm.clrecover.selectNode Adapter Labelcluster.catcm_open_a_smit_session_dialog_cm_open_a_smit_session_selectcluster.catmain() { print $1 } mainNODENAMEclverify_custom_dialog_cha_clverify_custom_dialog_cha.selectSelect a Custom Verification Methodcluster.catclverify_custom_dialog_rem_clverify_custom_dialog_rem.selectSelect a Custom Verification Methodcluster.catcm_change_notifymeth.dialog_clm.cm_change_notifymeth.selectSelect Notification Object Namecluster.catcm_del_notifymeth.dialog_clm.cm_del_notifymeth.selectSelect Notification Object Namecluster.caterr_emulate.dialogshow_err_emulate.optError Label to Emulatecluster.catmain() { print $* | read LABEL ENAME print $LABEL:$ENAME } main_rawnameelabel:enamecluster_hlp.catcm_trc_enable.cm_trc_enable.group_select main () { version_aix6=`oslevel | cut -f 1 -d .` if [[ $version_aix6 -ge 6 ]] then echo aix6 fi } maincm_trc_add.dialogcm_trc_add.group_selectSelect a Template Command Group for AIX Tracing for Cluster Resourcescluster.catcm_trc_change.dialogcm_trc_change.group_selectSelect a Command Group for AIX Tracing for Cluster Resourcescluster.catcm_adv_ver_and_sync_dialog._cm_ver_and_sync.selectcluster.cat main() { NODES=$(/usr/es/sbin/cluster/utilities/clnodename) if (( $? != 0 ));then exit 1 fi for i in $NODES do /usr/es/sbin/cluster/utilities/clgetactivenodes -n $i >> /dev/null 2>&1 if [ $? -eq 255 -o $? -eq 0 ] then continue else ACTIVE=local break fi done print "$ACTIVE" } maincm_add_change_show_cluster_dialog_cm_setup_cluster_nodes_networks_selectcluster.catcmd_to_classify() { /usr/lib/cluster/incluster if [ $? -eq 0 ]; then print "_exists" fi } cmd_to_classify_cm_change_show_resource_action_select_dialog_cm_change_show_resource_action_select.optSelect Resource to Customizecluster.catcluster_hlp.catcldisktype_custom_dialog_cha_cldisktype_custom_dialog_cha.selectSelect Custom Disk Methodscluster.catcldisktype_custom_dialog_rem_cldisktype_custom_dialog_rem.selectSelect Custom Disk Methodscluster.catcm_dialog_change_custom_volume_methodscm_selector_opt_change_custom_volume_methodsChange/Show Custom Volume Methodscluster.catcm_dialog_change_custom_filesystem_methodscm_selector_opt_change_custom_filesystem_methodsChange/Show Custom Filesystem Methodscluster.catcm_cfg_udres_type_change_dialogue_clm.cm_ch_udres_type.selectSelect a User Defined Resource Typecluster.catcm_cfg_udres_type_rm_dialogue_clm.cm_rm_udres_type.selectSelect a User Defined Resource Typecluster.catcm_cludres_add.dialogue_clm.cm_add_udres.selectSelect a User Defined Resource Typecluster.catcm_cfg_udres_change_dialogue_clm.cm_ch_udres.selectSelect a User Defined Resourcecluster.catcm_cfg_udres_rm_dialogue_clm.cm_rm_udres.selectSelect a User Defined Resourcecluster.catcm_cludres_chmonitor.dialogcm_cludres_chmonitor.select.optionsSelect a User Defined Resource Monitorcluster.cat_rawnameclcsclev.dialogclcsclev.dialog_nameSelect Event Name to Changecluster.cat_rawnameclcs_event.dialogclcs_event.dialog_nameSelect a Custom Cluster Eventcluster.cat_rawnameclrm_event.dialogclrm_event.dialog_nameCustom Event Name to Removecluster.catclude_custom_dialog_cha_clude_custom_dialog_cha.selectSelect Custom User-Defined Eventscluster.catclude_custom_dialog_rem_clude_custom_dialog_rem.selectSelect Custom User-Defined Eventscluster.catdefine_node_port.dialog_define_node_portcluster.catremove_node_port.dialog_remove_node_portcluster.catclch_pager_notify.dialog_clch_pager_notifycluster.catcldel_pager_notify.dialog_cldel_pager_notifycluster.catcltest_pager_notify.dialog_cltest_pager_notifycluster.catcm_change_show_sys_event_dialog_cm_change_show_sys_event_select_optSelect a Monitored System Eventcluster.cateventcluster_hlp.catcm_learn_about_cluster_events_dialogcm_learn_about_cluster_events.select_optSelect an event to learn more aboutcluster_hlp.cat_rawnamecm_chng_tunables.dialogcm_chng_tunables.dialog.optcluster.catmain () { multi_site=$(/usr/es/sbin/cluster/utilities/clodmget -n -f multi_site_lc HACMPcluster) if [[ $multi_site -eq 1 ]]; then print ".sites" fi } maincm_add_repository_disk.select.dialogcm_repository_ghost_optcluster.cat function main { multi_site=$(/usr/es/sbin/cluster/utilities/clodmget -n -f multi_site_lc HACMPcluster) #In RBAC with ha_view role clodmget utility do not have permission to execute. #Here is the check for clodmget fail. (( $? != 0 )) && return 1 if (( $multi_site == 1 )); then print ".sites" fi } maincm_add_repository_disk.dialogcm_repository_ghost_optcluster.catcm_rem_repository_disk.select.dialogcm_repository_ghost_optcluster.cat function main { PATH=$PATH:/usr/es/sbin/cluster/utilities typeset repositories='' if /usr/lib/cluster/incluster then # # The CAA cluster has been formed, and the primary repository # is in active use. So only consider the backup repositories. # repositories=$(clodmget -n -f backup_repository HACMPsircol) #In RBAC with ha_view role clodmget utility do not have permission to execute. #Here is the check for clodmget fail. (( $? != 0 )) && return 1 else # # Not in a CAA cluster, so primary repos can be removed, too # repositories=$(clodmget -d' ' -n -f repository,backup_repository HACMPsircol) #In RBAC with ha_view role clodmget utility do not have permission to execute. #Here is the check for clodmget fail. (( $? != 0 )) && return 1 fi if [[ $repositories != *([[:space:]]) ]]; then integer multi_site=$(clodmget -n -f multi_site_lc HACMPcluster) if (( $multi_site == 1 )); then print ".sites" fi else print ".nonedef" fi } maincm_rem_repository_disk.dialogcm_repository_ghost_optcluster.catcm_rem_repository_disk.dialog.nonedefcm_repository_ghost_optcluster.catcm_cluster_split_policy_cm_sm_dummy_optConfigure Cluster Split and Merge Policycluster.catmain() { PATH=$PATH:/usr/es/sbin/cluster/utilities cl_exist=$(clodmget -f multi_site_lc -n HACMPcluster) if [[ -n $cl_exist ]] then if [[ $cl_exist == 1 ]] then print 'lnk' exit 0 fi capability=0 if /usr/lib/cluster/incluster then caa_sm_capability=$(LC_ALL=C cl_get_capabilities -i 6 2>&1) if [[ -n $caa_sm_capability ]] then # If Sub Cluster Split Merge capability is defined # and globally available, then capability is set to 1 capability=${caa_sm_capability#*flag: } fi fi if (( $capability == 0 )) then # Streched Cluster with older AIX release if [[ $cl_exist == 0 ]] then print 'str' exit 0 fi # Standard Cluster with older AIX release print 'aixerr' exit 0 fi print 'sel' exit 0 fi # Cluster is not configured print 'err' } maincm_cluster_split_policy_aixerr_dialog_cm_sm_dummy_optConfigure Cluster Split and Merge Policycluster.catcm_cluster_split_policy_err_dialog_cm_sm_dummy_optConfigure Cluster Split and Merge Policycluster.catcm_cluster_split_policy_sel_cm_cluster_sm_policy_str_optSplit Management Policycluster.catmain() { if [[ $1 == $(dspmsg -s 58 cluster.cat 50 'None') ]];then print 'none' elif [[ $1 == $(dspmsg -s 58 cluster.cat 105 'TieBreaker') ]];then print 'tiebreaker' fi } maincm_cluster_split_policy_sel_cm_cluster_sm_policy_optSplit Management Policycluster.catmain() { if [[ $1 == $(dspmsg -s 58 cluster.cat 50 'None') ]];then print 'none' elif [[ $1 == $(dspmsg -s 58 cluster.cat 105 'TieBreaker') ]];then print 'tiebreaker' elif [[ $1 == $(dspmsg -s 58 cluster.cat 104 'Manual') ]];then print 'manual' elif [[ $1 == $(dspmsg -s 68 cluster.cat 21 'Cloud') ]];then print 'cloud' fi } maincm_cluster_split_policy_lnk_cm_cluster_sm_policy_optSplit Management Policycluster.catmain() { if [[ $1 == $(dspmsg -s 58 cluster.cat 50 'None') ]];then print 'none' elif [[ $1 == $(dspmsg -s 58 cluster.cat 105 'TieBreaker') ]];then print 'tiebreaker' elif [[ $1 == $(dspmsg -s 58 cluster.cat 104 'Manual') ]];then print 'manual' elif [[ $1 == $(dspmsg -s 68 cluster.cat 21 'Cloud') ]];then print 'cloud' fi } maincm_cluster_split_policy_cm_sm_dummy_optSplit Handling Policycluster.catcm_cluster_split_policy_cm_sm_dummy_optSplit Handling Policycluster.catcm_cluster_split_policy_cm_sm_dummy_optSplit Handling Policycluster.catcm_cluster_split_policy_cm_sm_dummy_optSplit Handling Policycluster.catcm_cluster_split_policy_sel_cm_sm_dummy_optSplit Handling Policycluster.catcm_cluster_split_policy_lnk_cm_sm_dummy_optSplit Handling Policycluster.catcm_cluster_split_policy_tiebreaker_dialog_cm_cluster_split_policy_tiebreaker_optSelect Tie Breaker Typecluster.catmain() { if [[ $1 == $(dspmsg -s 58 cluster.cat 106 'Disk') ]];then print 'disk' elif [[ $1 == $(dspmsg -s 58 cluster.cat 107 'NFS') ]];then print 'nfs' fi } maincm_cluster_split_policy_cm_sm_dummy_optSplit Handling Policycluster.catcm_cluster_split_policy_cm_sm_dummy_optSplit Handling Policycluster.catcm_replace_repos.select.dialogcm_replace_repos_ghost_optcluster.catmain () { multi_site=$(/usr/es/sbin/cluster/utilities/clodmget -n -f multi_site_lc HACMPcluster 2>/dev/null) if [[ $multi_site -eq 1 ]]; then print ".sites" fi } maincm_replace_repos.dialogcm_replace_repos_ghost_optcluster.catcm_add_nodecm_sm_dummy_optManage Nodescluster.cat main() { LC=$(/usr/es/sbin/cluster/utilities/clodmget -f multi_site_lc -n HACMPcluster) if (( $? != 0 )) then exit 1 fi if [[ $LC == 1 ]] then print '_lc' elif [[ $LC == 0 ]] then print '_sc' else print '' fi } maincluster_hlp.catcm_cfg_ch_nova_cmdcm_cfg_ch_nova_sel_optChange/Show NovaLink Definitioncluster.cat_novanamecluster_hlp.catAdd Cloud Instancecluster.catcluster_hlp.catcm_cfg_add_bmc_Add Cloud Instancecluster.catcluster_hlp.catcm_cfg_add_bmc_dialog_cm_cfg_ch_powervs_sel_optcluster.catcluster_hlp.catcm_cfg_rm_nova_cmdcm_cfg_rm_nova_sel_optcluster.catcluster_hlp.catRemove Cloud Instancecluster.catmain() { backuptype=$(/usr/es/sbin/cluster/utilities/clmgr -a BACKUP_METHOD -cS query backup_profile $1 2>/dev/null) if [[ $backuptype == 'cloud' ]];then print 'cloud' elif [[ $backuptype == 'remote_storage' ]];then print 'remote' fi } maincluster_hlp.catcm_cfg_add_bmc_Add Backup Profilecluster.cat_rgnamecluster_hlp.catAdd Backup Profilecluster.catmain() { if [[ $1 == 'SVC' ]];then print 'svc' fi } maincluster_hlp.catAdd Backup Profilecluster.catmain() { storagetype=$(/usr/es/sbin/cluster/utilities/clmgr -a TYPE -cS query storage_system $1 BACKUP=1 2>/dev/null) if [[ $storagetype == 'svc' ]];then print 'svc' fi } maincluster_hlp.catcm_cfg_ch_bmc_sel_optChange/Show Backup Profilecluster.cat_storagenamecluster_hlp.catcm_cfg_rm_bmc_cmdcm_cfg_rm_bmc_sel_optRemove Backup Profilecluster.cat/usr/es/sbin/cluster/utilities/clRGmove-t group_name_rgnamecm_cfg_add_stg_cm_cfg_add_stg_sel_optAdd Storage Configurationcluster.catmain() { if [[ $1 == 'SVC' ]];then print 'svc' fi } maingroup_namenode_namecm_cfg_ch_stg_cm_cfg_ch_stg_sel_optcluster.catmain() { storagetype=$(/usr/es/sbin/cluster/utilities/clmgr -a TYPE -cS query storage_system $1 BACKUP=1 2>/dev/null) if [[ $storagetype == 'svc' ]];then print 'svc' fi } maingroup_namenode_namecm_cfg_rm_stg_cmdcm_cfg_rm_stg_sel_optcluster.cat_clm.cl_resgrp_start.selectcluster.cat/usr/es/sbin/cluster/utilities/clRGmovecluster.catnode_nameSelect a Destination Nodecluster.catgroup_namenode_namecl_resgrp_stop.select_node_clm.cl_resgrp_stop.selectSelect a Resource Groupcluster.catgroup_namecl_resgrp_stop.dialog._clm.cl_resgrp_stop.select_nodeSelect an Online Nodecluster.catcmd_to_classify() { echo "$1" | read GROUP_NAME P1 P2 P3 P4 P5 if [[ "$P2" = "SECONDARY" ]]; then echo "secondary" exit 0 else echo "primary" exit 0 fi } cmd_to_classifygroup_namenode_nameSelect Resource Group(s)cluster.catcl_resgrp_move.dialog.Select a Destination Nodecluster.catcluster.catmain() { CMDLINE=$1 CMDLINE=$(print $CMDLINE | sed -e 's/ */ /g') IP_LABEL=${CMDLINE%%[ ]*} IP_ADDRESS=${CMDLINE##*[ ]} REMAINDER=${CMDLINE%[ ]*} NETWORK=${REMAINDER#*[ ]} print $NETWORK:$IP_LABEL } mainADnetwork:ADsvcIPSelect a Destination Sitecluster.catADstbyIPSuspend Application Monitor(s) for Application Controllercluster.catmain() { CMDLINE=$1 SLOT=$(print $CMDLINE | awk '{print $1}') #if [ $SLOT = PCI Slot ]; then return;fi ADAPTER=$(print $CMDLINE | awk '{print $2}') INTERFACE=$(print $CMDLINE | awk '{print $3}') IPLABEL=$(print $CMDLINE | awk '{print $4}') print $SLOT:$ADAPTER:$INTERFACE:$IPLABEL } mainPCIHPslot:PCIHPadapter:PCIHPinterface:PCIHPiplabelcm_resume_appmon.dialogcm_resume_appmon.optcluster.catmain() { print $1 } mainNODENAMEcl_swap_adapter2swap_adapter_service.nscluster.catSwap onto Communication Interfacemain() { CMDLINE=$1 CMDLINE=$(print $CMDLINE | sed -e 's/ */ /g') IP_ADDRESS=${CMDLINE%%[ ]*} print $IP_ADDRESS } main_rawnameADstbyIPcluster_hlp.cat_rawnameRemove a Volume from a Volume Groupmain() { print $1 } main_rawnameNODENAMERemove a Volume from a Volume Group/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl_lslvncl__cmdlvmlvnscspoc.catmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } main_rawnameVG_name:RG_name:Nodelistcl_rmlv11cl__rmlv.vgcspoc.cat_rawnamecl_reducevg1cspoc.cat_rawnamecl_reducevgdcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl_importvg1cl__cmdlvmvgnsiImport a Volume Groupcspoc.catmain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read vg_name rest vg_type=${rest##* } rest=${rest% *} node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}:${vg_type} } main_rawnameVGName:RGName:Nodelist:VGtypecl_importvgdcl__cmdlvmpvnsiImport a Volume Groupcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescluster_hlp.catcl_cmdlvmvgumUnmirror a Volume Groupcspoc.catcluster_hlp.catcl__cmdlvmpvnuUnmirror a Volume Groupcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl_syncvg_vgdcspoc.cat_rawnamecspoc.cat_rawnamecl_syncvg_lvdcspoc.catmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } mainLV_NameLV_Namecl_renamelvnRename a Logical Volumecspoc.cat_rawnamecl_extendlv11cl__extendlv.vgIncrease the Size of a Logical Volumecspoc.cat_rawnamecl_extendlvdcl__extendlv.pvIncrease the Size of a Logical Volumecspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl_rmlvcopy11cl__rmlvcopy.vgRemove a Copy from a Logical Volumecspoc.cat_rawnamecl_rmlvcopydcl__rmlvcopy.pvRemove a Copy from a Logical Volumecspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl_extendconvg1cl__cmdlvmconvgnsAdd a Volume to a Concurrent Volume Groupcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnameRGName:VGNamecl_extendconvgdcl__cmdlvmampvnscspoc.cat_rawnameNode:PVNamescl_reduceconvg1cl__cmdlvmconvgnscspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnamecl_reduceconvgdcl__cmdlvmpvns1cspoc.cat_rawnameNode:PVNamescspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnamecl_importconvg1cl__cmdlvmconvgnsImport a Concurrent Volume Groupcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnameRGName:VGNamecl_importconvgdImport a Concurrent Volume Groupcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamecl_mirrorconvg1cl__cmdlvmconvgnsMirror a Concurrent Volume Groupcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnameRGName:VGNamecl_mirrorconvgdcl__cmdlvmpvnsMirror a Concurrent Volume Groupcspoc.cat_rawnameNode:PVNamescl__cmdlvmconvgnsUnmirror a Concurrent Volume Groupcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5RGName:VGNamecl__cmdlvmpvnsUnmirror a Concurrent Volume Groupcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22Node:PVNamescl__cmdlvmconvgnscspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5RGName:VGNamecl__cmdlvmconlv.nscspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5cl_mkconlvcopy1cl__cmdlvmconlv.nsAdd a Copy to a Concurrent Logical Volume/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnameRGName:LVNamecl_mkconlvcopydcl__cmdlvmlvpvnsAdd a Copy to a Concurrent Logical Volume/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnameRGName:LVNamecspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl__cmdlvmconlv.nscspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -3_rawnamecl__cmdlvmlvpvnsIncrease the Size of a Concurrent Logical Volumecspoc.cat_rawnameNode:PVNamescl_mkconlv1cspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnameRGName:VGNamecl_mkconlvdcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl_rmconlvd/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnamecl_lsconlvcdcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnameRGName:LVNamecl_createvg1cl__cmdlsnodeCreate a Volume Groupcspoc.catmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $CMDLINE:$NEWNODE } main_rawnamecl_createvg2cl__cmdlspvCreate a Volume Group_rawnamecl_createvg3cl__cmdlsvgtypeCreate a Volume Groupcspoc.catcluster_hlp.catcl_con_createvg1cl__con_cmdlsnodecspoc.catcluster_hlp.catcl__con_cmdlspvCreate a Concurrent Volume Groupcspoc.cat_rawnamecluster_hlp.catcl_con_createvg3cl__cmdlsvgtypeADNVGTypecl_disk_man.rem.pvidcl_disk_man.rem.nodesmain() { OUTPUT=`echo $1 | sed 's/ /,/g'` echo $OUTPUT } mainnodesSelect A Disk To Removecspoc.catmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $NEWNODE } main_rawnameADNodename:ADNodenameNewclmakdskcspoc.catmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $NEWNODE } mainADNodename:ADNodenameNewDisplay Data Path Device Adapter Statuscspoc.cat_rawnameDefine and Configure all Data Path Devicescspoc.cat_rawnamecl_dpls_cfgcl__cmdlsnodeDisplay Data Path Device Configurationcspoc.catmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $NEWNODE } main_rawnameADNodename:ADNodenameNewcl_dp_statcl__cmdlsnodeDisplay Data Path Device Statuscspoc.catcluster_hlp.catcl_dpdadapter_statcl__cmdlsnodecspoc.catcluster_hlp.catcl_dpdefcfg_allcl__cmdlsnodeDefine and Configure all Data Path Devicescspoc.catcluster_hlp.catcl_dpaddpathscl__cmdlsnodecspoc.catcluster_hlp.catcspoc.cat_pvidpvidcluster_hlp.catSelect a PVID to configure VPathcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_pvidRGName:VGNamecspoc.cat_rawnamenodesKEEP definition in databasecspoc.catmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $CMDLINE:$NEWNODE } mainkeepdbADNodename:ADNodenameNewcl_dprmvp.dialogSelect A Disk To Removecspoc.catmain() { print $1 | read ADPVName print $ADPVName:`/usr/es/sbin/cluster/cspoc/cl_getvpathmajor` } mainpvidcl_dphd2vp.dialogcl_dpvgselectSelect a volume group to convert to vpath/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnamecl_dpvp2hd.dialogcl_dpvgselectSelect a Volume Group to convert to hdiskscspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -5_rawnameRGName:VGNamecl_createvpathvg1cl__cmdlsnodevpathCreate a Volume Group with Data Path Devicescspoc.cat_rawnamecl_createvpathvg2cl__cmdlsvpathCreate a Volume Group with Data Path Devicesmain() { print $1 | read ADPVName print $ADPVName:`/usr/es/sbin/cluster/cspoc/cl_getvpathmajor` } main_rawnamecl_createvpathvg3cl__cmdlsvgtypecluster.catcl__con_cmdlsnodevpathcspoc.catcl__con_cmdlsvpathcspoc.catcl__cmdlsvgtypecspoc.cat_raw_rgname_rawnamecluster_hlp.catSelect Scripts Log File Name_raw_rgname_raw_rgname_rgname2,138cluster_hlp.catSelect a Cluster Log Directory_rawname_rawname_cookednamecluster_hlp.catcm_run_time_raw_rgname_raw_rgname_rgnamecluster_hlp.catcl_mkuser.hdrcl_mkuser.rg_selectAdd a User to the Clustercspoc.cat_raw_rgname_raw_rgname_rgnamecl_chuser_bcl_chuser.rg_selectChange / Show Characteristics of a User in the Clustercspoc.cat_raw_rgname_raw_rgname_rgnamecl_chuser.hdrcl_chuser.name_selectChange / Show Characteristics of a User in the Clustercspoc.cat_rawname_rawname_cookednamecluster_hlp.catcl_rmuser.hdrcl_rmuser.rg_selectRemove a User from the Clustercspoc.cat_raw_rgname_raw_rgname_rgnamecl_mkgroup.hdrAdd a Group to the Clustercspoc.cat_raw_rgname_raw_rgname_rgnamecluster_hlp.catcl_chgroup_bcl_chgroup.rg_selectcspoc.catcl_chgroup.hdrcl_chgroup.name_selectcspoc.catcl_rmgroup.hdrcl_rmgroup.rg_selectcspoc.catcl_chpasswd.hdrcl_chpasswd.rg_selcspoc.cat_raw_rgnamecm_filecollection_chSelect a File Collectioncluster.catcmd_to_classify() { echo $1 "$2" } cmd_to_classifyfilecollectionname _rawnameparamscm_filecollection_rmcm_filecollection_selectSelect a File Collectioncluster.catfilecollectionnamecluster.cat main() { /usr/es/sbin/cluster/utilities/cl_migcheck ANY 2>/dev/null if [ $? -eq 1 ] then echo mig else echo nor fi } maincluster.cat main() { /usr/es/sbin/cluster/cspoc/cl_checknfs 2>/dev/null if [ $? -eq 0 ] then echo nfs else echo nonfs fi } maincluster.catSelect a File Collectionmain() { print $* | read vg_name rg_name node_list print ${vg_name}:${rg_name}:${node_list} } mainVG_name:RG_name:Nodelistclstart__clstartChange/Show Characteristics of a File System in the Cluster main() { /usr/es/sbin/cluster/utilities/cl_migcheck ANY 2>/dev/null if [ $? -eq 1 ] then echo mig else echo nor fi } main_rawnameFS_name:VG_name:RG_name:Nodelist_clstartChange/Show Characteristics of a File System in the Cluster main() { /usr/es/sbin/cluster/cspoc/cl_checknfs 2>/dev/null if [ $? -eq 0 ] then echo nfs else echo nonfs fi } mainFS_nameclstart_mig__clstartIncrease the Size of a Logical Volume main() { echo nonfs } mainNodelist _rawname_rawname::LV_name:LVType:Position:Range:Upbound:Strict:Reloc:Label:MaxLPs:Sched:Permissions:BadBlk:Verify:MirrWC:OverlapIO:chlv_Mirpool_copy1:chlv_Mirpool_copy2:chlv_Mirpool_copy3cspoc.cat_rawnamecl_chfsNameOptcspoc.catcluster_hlp.catcl_jchfscspoc.catmain() { fs_name=$1 fs_type=$(/usr/bin/awk -F':' '{ if ($3 == myFS) print $5 }' myFS=$fs_name /var/hacmp/tmp/chocls.try_out | tail -1) print ${fs_type##jfs}CmdHdr } main_rawnameVG_name:RG_name:Nodelist:LV_namecl_extendlv1cl__extendlv.lvcspoc.catmain() { print $* | read node_list lv_name export _CSPOC_CALLED_FROM_SMIT=true export _CSPOC_MODE=both /usr/es/sbin/cluster/sbin/cl_lslvsmit -cspoc -n${node_list} $lv_name } main_rawnamecl_lslvdcl_lslvOptcspoc.catmain() { # # Check to see if the user specified volume group has any logical volumes # of the required type - jfs or jfs2 - that do not currently hold file # systems. # # If so, the user will be presented a list of those file systems to chose # from (including the option to create a new logical volume) # # However, if there are no logical volumes available to hold the file system, # do not bother asking the question - a new one must be created # print $* | read vg_name fs_type nodelist # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(/usr/es/sbin/cluster/utilities/clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) # For a non root user, append username to the output file [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then hold_file="/var/hacmp/tmp/choclv.out"_$user_name else hold_file="/var/hacmp/tmp/choclv.out" fi export _CSPOC_CALLED_FROM_SMIT=true export _CSPOC_MODE=both if [[ $fs_type == 'E' ]] then lookfor='jfs2' else lookfor='jfs' fi # # The lsvg -l output is saved in /var/hacmp/tmp/choclv.out, to be used for a pick list # Check to see if there are any free logical volumes of the required type. This # determines the next name header to run. # if [[ -n $(/usr/es/sbin/cluster/sbin/cl_lsvg -cspoc -n${nodelist} -l ${vg_name} 2>/dev/null | tee ${hold_file} | grep -w ${lookfor} | grep -v ' /') ]] then print lv_which else print d_which fi } mainVG_name FS_type Nodelistcl_lslvndcl__cmdlvmlvnncspoc.catmain() { # # The sm_cmd_opt entry named in option_id has returned either a line starting with the name # of a logical volume to use, or an indication to create a new one # string=$* create_new_msg=$(dspmsg -s 101 cspoc.cat 86 "Create a new Logical Volume for this File System") if [[ "$string" != "$create_new_msg" ]] then # # Didn't find the create a new one message, so pick up and pass back the selected logical # volume # print $string | read LV_name rest print $LV_name else print '' fi } mainLV_nameLV_namecl__mkfs.vgAdd a File Systemcspoc.catFS_type LV_nameAdd a File Systemcspoc.catFS_typecl_mkfs.Add a File Systemcspoc.catLV_nameLV_nameAdd a File Systemcspoc.cat_rawnameLV_namecl_Add a File Systemcspoc.catLV_nameLV_namecl_mklvcopy1cl__mklvcopy.lvAdd a Copy to a Logical Volumecspoc.catLV_nameLV_namecl_renamelvdcl__cmdlvmrnlvRename a Logical Volumecspoc.catmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } mainLV_nameLV_namecl_rmfsdcl__cmdlvmrmfsRemove a File Systemmain() { print $* | read fs_name vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${fs_name}:${vg_name}:${rg_name}:${node_list} } main_rawnamecl_rmlvcl__rmlv.lvmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } mainLV_nameLV_namecl_rmlvcopy1cl__rmlvcopy.lvRemove a Copy from a Logical Volumecspoc.catmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } main_rawnameVG_name:RG_name:Nodelistcspoc.cat_rawnameVG_name:RG_name:Nodelistcspoc.catmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } main_rawnameVG_name:RG_name:Nodelistcspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl_rmvgOptcspoc.catVGTypeChange/Show a Mirror Poolcspoc.catmain() { print $* | read mp_name vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${mp_name}:${vg_name}:${rg_name}:${node_list} } main_rawnamecl_mklv1cl__cmdlvmvgnsAdd a Logical Volumecspoc.catmain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read vg_name rest vg_type=${rest##* } rest=${rest% *} node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}:${vg_type} } main_rawnamecl_mklv2cl__cmdlvmpvnlAdd a Logical Volumecspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22VGTypecl_mklvdAdd a Logical Volumecspoc.catmain() { vg_type=$1 if [[ $vg_type == '2mp' ]] then print 'mp' fi } main_rawnameNodelist:PVName:PVIDcl_extendvg1Add a Volume to a Volume Groupcspoc.cat_rawnameVGName:RGName:Nodelist:VGTypecl_extendvg2Add a Volume to a Volume Groupcspoc.catVGTypeAdd a Volume to a Volume Groupcspoc.catmain() { vg_type=$1 if [[ $vg_type == '2mp' ]] then print 'mp' fi } main_rawnameVG_name:RG_name:Node_list:VGTypeRename a Physical Volumecspoc.catNode_list LV_nameNodelist:PVName:PVIDcl_chshdiskoptcspoc.catVGTypecl_chshdiskdcl_mp_dummy_optcspoc.catmain() { VGType=$1 if [[ $VGType == '2mp' ]] then print 'mp' fi } main_rawnameVG_name:RG_name:Nodelistcl_chlv2cl__chlv.vgcspoc.catmain() { # # Used to parse lines from the pick list of the form: # vg02 rgt543 r3r6m21,r3r6m22 2mp # Or, alternatively, # vg02 r3r6m21,r3r6m22 2mp print $* | read vg_name rest vg_type=${rest##* } rest=${rest% *} node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}:${vg_type} } main_rawnamecl_chlv3cl__chlv.lvcspoc.catLV_namecl_chlvdcl_mp_dummy_optcspoc.cat_rawnameNode:PVNamescspoc.catmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } main_rawnameVG_name:RG_name:Nodelistcspoc.cat_rawnamecl_mklvcopydcl_mp_dummy_optcspoc.catmain() { vg_type=$1 if [[ $vg_type == '2mp' ]] then print 'mp' fi } mainVGType_rawnameAdd a Copy to a Logical Volumecspoc.cat/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl_cmdlvmvgmMirror a Volume Groupcspoc.catVGType_rawnamecl_mirrorvg2/usr/es/sbin/cluster/cspoc/smitlvm -22_rawnameNode:PVNamescl_mirrorvgdmain() { vg_type=$1 if [[ $vg_type == '2mp' ]] then print 'mp' fi } main_rawnameMP_name:VG_name:RG_name:Nodelist_rawnameVG_name:RG_name:Nodelist:VGTypecl_chshsvgdmain() { vg_type=$1 if [[ $vg_type == '2mp' ]] then print 'mp' fi } main_rawnamePVID:Disk_name:Node_namecl_mpadopt_rawnamecl_mprmoptSelect an Authentication and registry modecspoc.cat_rawtname_rawnamecl_rmpooldAdd a User to the LDAPcspoc.catSelect an Authentication and registry modecspoc.cat_rawtname_rawnamecl_ren_mpdcl_ren_mp_optChange / Show Characteristics of a User in the LDAPcspoc.cat_rawname_rawnamecluster_hlp.catcl_mkuserldap_mode_optSelect an Authentication and registry modecspoc.catmain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP" | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameADNVGTypecl_mkuser_ldapcl_ldap_tcspoc.catcl_chuserldap_mode_optSelect an Authentication and registry modecspoc.catmain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP " | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameADNVGTypecspoc.catmain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP" | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawname_rawnamecl_rmusercspoc.catcl_ldap_tRemove a LDAP Usercspoc.catmain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP " | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameADNVGTypecl_lsuser.hdrldap_mode_optSelect an Authentication and registry modecspoc.catADNVGTypecl_mkgroupldap_mode_optSelect an Authentication and registry modecspoc.catmain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP" | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameADNVGTypecl_mkgroup_ldapcl_ldap_tcspoc.catcl_chgroupldap_mode_optSelect an Authentication and registry modecspoc.catmain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP " | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameADNVGTypecspoc.catmain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP " | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawname_rawnamecl_rmgroupcspoc.catcl_rmgroup_ldapcl_ldap_tRemove a LDAP Groupcspoc.catcl_lsgroup.hdrldap_mode_optcspoc.catcluster_hlp.catcl_chpasswdldap_mode_optcspoc.catcluster_hlp.catcl_chpasswd_ldapcl_ldap_tChange a LDAP User's Passwordcspoc.catrg_listcllssite.name.dialog_clm.cllssite.selectSelect site to showcluster.catrg_listChange/Show a Sitecluster.catsitecluster.catcmd_to_classify() { echo "$1" | read GROUP_NAME P1 P2 P3 P4 P5 if [[ -z $(ODMDIR=/etc/es/objrepos odmget -q"name = GMVG_REP_RESOURCE" HACMPresource) ]] then DIVERGENCE="" else DIVERGENCE=".divergence" fi if [[ "$P1" = "OFFLINE_SECONDARY" || "$P1" = "UNMANAGED_SECONDARY" ]]; then echo "secondary$DIVERGENCE" exit 0 else echo "primary$DIVERGENCE" exit 0 fi } cmd_to_classifygroup_namesite_namecluster.catcmd_to_classify() { if /usr/lib/cluster/incluster then # CAA cluster exists - see if there is a SM cluster if [[ -z $(odmget HACMPcluster) ]] then # this is an error case - shows some diagnostic information echo cm_show_cluster_error exit 0 fi # caa cluster exists - cant change anything echo cm_show_cluster exit 0 fi if [[ -n $(odmget HACMPcluster) ]] then # SM cluster exists but not caa cluster - allow basic changes ctype=$(/usr/es/sbin/cluster/utilities/clodmget -f multi_site_lc -n HACMPcluster) if (( $ctype < 0 )) then echo cm_setup_cluster_nodes_networks_dialog # change a flat cluster else echo cm_setup_cluster_sites_nodes_networks_dialog # change a site'd cluster fi exit 0 fi echo cm_setup_cluster_sites_nodes_networks_dialog # no cluster - create a sited one from scratch exit 0 } cmd_to_classifycluster.catcmd_to_classify() { if /usr/es/sbin/cluster/sbin/cl_check_capability -i unicast >/dev/null 2>&1 then heartbeat=_hbc else heartbeat="" fi if [[ $(/usr/es/sbin/cluster/utilities/clodmget -n -f multi_site_lc HACMPcluster) == 1 ]] then sites=_sites else sites="" fi if /usr/lib/cluster/incluster then exists=_exists else exists="" fi if [[ -z $(/usr/es/sbin/cluster/utilities/clodmget -q "object = COMMUNICATION_PATH" -f value -n HACMPnode) ]] then print _nonodes else print ${exists}${sites}${heartbeat} fi } cmd_to_classifycl_resgrp_move.select_sitecluster.catcl_resgrp_move.dialog.site.cluster.catcm_replace_repos.dialog.sitesSelect a Sitecluster.catclca_nfs_addclca_nfs_add_frontend_optclca_nfs_del.dialogclca_nfs_del.selectclca_nfs_mod.dialogclca_nfs_mod.selectclsa_add.clsa_dummy_optcluster.cat cmd_to_classify() { if [[ $(/usr/es/sbin/cluster/utilities/cl_get_role) == "ha_view" ]];then dspmsg -s 2 command.cat 1411 " ERROR: This action can not be performed by the user with the role %1$s. " "ha_view" 1>&2 return 1 fi /usr/es/sbin/cluster/utilities/cllsclstr > /dev/null 2>&1 if [[ $? != 0 ]] then echo configure_cluster else echo discover_cluster fi } cmd_to_classifyclsa_add.clsa_add_configure_cluster_optConfigure PowerHA SystemMirror Cluster and Nodescluster.cat cmd_to_classify() { /usr/es/sbin/cluster/sa/sbin/clsapre -n "$*" if [[ $? != 0 ]]; then exit 1 fi echo discover_cluster } cmd_to_classifycluster_hlp.catclsa_add.discover_saclsa_dummy_optcluster.cat cmd_to_classify() { /usr/es/sbin/cluster/utilities/cllsclstr -Sc | IFS=':' read cluster_id cluster_name dummy echo $cluster_name } cmd_to_classifycluster_nameclsa_add.config_modeclsa_add_discover_optcluster.cat cmd_to_classify() { localnode=$(/usr/es/sbin/cluster/utilities/get_local_nodename 2>/dev/null) NODELIST=$( /usr/es/sbin/cluster/utilities/cllsclstr -cwng 2>/dev/null | tail -1 | awk -F: '{print $5 }' ) # For a non root user, append the user name to the output file. [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(/usr/es/sbin/cluster/utilities/clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then CL_DATFILE="/var/hacmp/tmp/sa_config"_$user_name CL_SAFILE="/var/hacmp/tmp/installed_smartassists"_$user_name else CL_DATFILE="/var/hacmp/tmp/sa_config" CL_SAFILE="/var/hacmp/tmp/installed_smartassists" fi sa_id=$(/usr/es/sbin/cluster/sa/sbin/clquerysa -t map -S "$1" < $CL_SAFILE ) /usr/es/sbin/cluster/sa/sbin/clquerysa -t discover -s "$sa_id" > $CL_DATFILE # Change the ownership of output file, for a non root user. [[ $user_name != "root" ]] && chown $user_name $CL_DATFILE echo $sa_id } cmd_to_classifysa_idclsa_add.config_mode_optSelect Configuration Modecluster.cat cmd_to_classify() { mode1=$(dspmsg -s 51 cluster.cat 20 "Automatic Discovery And Configuration") mode2=$(dspmsg -s 51 cluster.cat 21 "Manual Configuration") if [[ $mode1 == $1 ]]; then echo clsa_add.discover_comp else echo clsa_add.manual_mode_dummy fi } cmd_to_classifyclsa_add.manual_modeclsa_dummy_optclsa_add.save_nodesclsa_add_discover_comp_optcluster.cat cmd_to_classify() { # Check if RBAC is enabled. typeset is_rbac_enabled="" is_rbac_enabled=$(/usr/es/sbin/cluster/utilities/clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) # For a non root user, append the user name to the output file. [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then CL_DATFILE="/var/hacmp/tmp/sa_config"_$user_name else CL_DATFILE="/var/hacmp/tmp/sa_config" fi /usr/es/sbin/cluster/sa/sbin/clquerysa -t map -s "$1" -C "$2" \ < $CL_DATFILE } cmd_to_classifysa_id compcompcomponent_idclsa_add.save_sidclsa_dummy_optcluster.cat cmd_to_classify() { # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(/usr/es/sbin/cluster/utilities/clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) # For a non root user, append the user name to the output file. [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then CL_DATFILE="/var/hacmp/tmp/sa_config"_$user_name else CL_DATFILE="/var/hacmp/tmp/sa_config" fi /usr/es/sbin/cluster/sa/sbin/clquerysa -t filter -s "$1" -c "$2" \ < $CL_DATFILE } cmd_to_classifysa_id component_id nodesclsa_add.check_sitesclsa_dummy_optcluster.cat cmd_to_classify() { typeset compnent_name="$1" typeset sid="" typeset SAPNW_GFS=$(dspmsg -s 21 sapsa 2 "SAP NetWeaver Global Filesystem") if [[ $selected_comp == *${SAPNW_GFS}* ]]; then print -- ${selected_comp##*@} fi } cmd_to_classifycompsidclsa_add.clsa_dummy_optcluster.cat cmd_to_classify() { typeset SA_ID="$1" typeset COMPONENT_ID="$2" REQUIRE_SITES=$( /usr/es/sbin/cluster/sa/sbin/clquerysa -s "$SA_ID" -c "$COMPONENT_ID" -q REQUIRE_SITES ) if [[ true == $REQUIRE_SITES || yes == $REQUIRE_SITES ]]; then /usr/es/sbin/cluster/utilities/cllssite > /dev/null 2>&1 if [[ $? != 0 ]]; then echo configure_sites return fi fi echo register } cmd_to_classifysa_id component_id clsa_add.configure_sites_secondaryclsa_add_configure_primary_site_optDefine SitessiteAnodesclsa_add.clsa_add_configure_secondary_site_optDefine Sitescmd_to_classify() { /usr/es/sbin/cluster/sa/sbin/clsa_createsites $* echo register } cmd_to_classify-a siteAnodes -b siteBnodessiteBnodesclsa_add.clsa_dummy_optcluster.cat cmd_to_classify() { typeset SA_ID="$1" typeset COMPONENT_ID="$2" # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(/usr/es/sbin/cluster/utilities/clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) # For a non root user, append the user name to the output file. [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then CL_DATFILE="/var/hacmp/tmp/sa_config"_$user_name else CL_DATFILE="/var/hacmp/tmp/sa_config" fi # get the registration script REGISTRATION_COMMAND=$(/usr/es/sbin/cluster/sa/sbin/clquerysa -s "$SA_ID" -c "$COMPONENT_ID" -q REGISTRATION_COMMAND ) if [[ -n $REGISTRATION_COMMAND ]]; then # run the registration script LOG=$( /usr/es/sbin/cluster/sa/sbin/get_log_name sa.log /var/hacmp/log/sa.log ) NODES=$(/usr/es/sbin/cluster/sa/sbin/clquerysa -t filter -s "$SA_ID" -c "$COMPONENT_ID" < $CL_DATFILE ) $( $REGISTRATION_COMMAND $NODES > $LOG 2>&1 ) if (( $? != 0 )); then dspmsg -s 11 assist.cat 2 "Running registration command failed. please check %s for errors." $LOG 1>&2 exit fi fi echo redirect_n } cmd_to_classifysa_id component_idclsa_dummy_optcluster.cat cmd_to_classify() { typeset SA_ID="$1" typeset COMPONENT_ID="$2" SMIT_ADD_TYPE=$(/usr/es/sbin/cluster/sa/sbin/clquerysa -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_ADD_TYPE ) if [[ n == $SMIT_ADD_TYPE ]]; then /usr/es/sbin/cluster/sa/sbin/clquerysa -t query -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_ADD else echo clsa_add_redirect_d fi } cmd_to_classifysa_id component_idclsa_dummy_optcluster.cat cmd_to_classify() { typeset SA_ID="$1" typeset COMPONENT_ID="$2" if [ $COMPONENT_ID = TIVOLI_LDAP_SERVER ]; then if [ -f /usr/es/sbin/cluster/sa/tds/tds_config_type ]; then TDS_CONFIG_TYPE=`cat /usr/es/sbin/cluster/sa/tds/tds_config_type` if [[ $TDS_CONFIG_TYPE = DISTRIBUTED || $TDS_CONFIG_TYPE = PEERTOPEER ]]; then echo cl_tdssaadd_dialog1 else /usr/es/sbin/cluster/sa/sbin/clquerysa -t query -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_ADD fi fi else /usr/es/sbin/cluster/sa/sbin/clquerysa -t query -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_ADD fi } cmd_to_classifysa_id component_idclsa_getapp_set_sa_idclsa_list_app_optcluster.cat cmd_to_classify() { /usr/es/sbin/cluster/sa/sbin/clquerysaapp -q APPLICATION_NAME=$1 } cmd_to_classify_rawnameapplication_idclsa_getapp_set_component_idclsa_dummy_optcluster.cat cmd_to_classify() { OUTPUT=$(/usr/es/sbin/cluster/sa/sbin/clquerysaapp -a "$1" SMARTASSIST_ID ) eval $OUTPUT echo $SMARTASSIST_ID } cmd_to_classifyapplication_idsa_idclsa_getapp_set_cluster_nameclsa_dummy_optcluster.cat cmd_to_classify() { OUTPUT=$( /usr/es/sbin/cluster/sa/sbin/clquerysaapp -a "$1" COMPONENT_ID ) eval $OUTPUT echo $COMPONENT_ID } cmd_to_classifyapplication_idcomponent_idclsa_getapp_redirectclsa_dummy_optcluster.cat cmd_to_classify() { /usr/es/sbin/cluster/utilities/cllsclstr -Sc | IFS=':' read cluster_id cluster_name dummy echo $cluster_name } cmd_to_classifycluster_nameclsa_dummy_optcluster.cat cmd_to_classify() { echo $1 } cmd_to_classifyredirectclsa_getappclsa_dummy_optcluster.catecho clsa_modify_redirect_nredirectclsa_dummy_optcluster.cat cmd_to_classify() { typeset SA_ID="$1" typeset COMPONENT_ID="$2" SMIT_ADD_TYPE=$(/usr/es/sbin/cluster/sa/sbin/clquerysa -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_MODIFY_TYPE ) if [[ n == $SMIT_ADD_TYPE ]]; then /usr/es/sbin/cluster/sa/sbin/clquerysa -t query -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_MODIFY else echo clsa_modify_redirect_d fi } cmd_to_classifysa_id component_idclsa_dummy_optRun the registration scriptcluster.cat cmd_to_classify() { typeset SA_ID="$1" typeset COMPONENT_ID="$2" if [ -f /usr/es/sbin/cluster/sa/tds/tds_config_type ]; then TDS_CONFIG_TYPE=$(cat /usr/es/sbin/cluster/sa/tds/tds_config_type 2>/dev/null) if [[ "$TDS_CONFIG_TYPE" = DISTRIBUTED || "$TDS_CONFIG_TYPE" = PEERTOPEER ]]; then echo cl_tdssamod_dialog1 else /usr/es/sbin/cluster/sa/sbin/clquerysa -t query -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_MODIFY fi else /usr/es/sbin/cluster/sa/sbin/clquerysa -t query -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_MODIFY fi } cmd_to_classifysa_id component_idclsa_getappclsa_dummy_optcluster.cat cmd_to_classify() { state=$(lssrc -ls clstrmgrES | grep state | awk -F " " '{print $3}') if [[ "$state" != ST_INIT && "$state" != NOT_CONFIGURED ]]; then dspmsg -s 51 cluster.cat 32 "Cluster Services are Active, cannot remove an application" exit 1 else echo clsa_remove_app fi } cmd_to_classifyredirectclsa_remove_app_dclsa_dummy_optcluster.catclsa_getappclsa_dummy_optcluster.catecho clsa_test_appredirectclsa_test_app_dclsa_dummy_optcluster.catredirectclsa_getappclsa_dummy_optcluster.catecho clsa_modify_resources_list_rgredirectcm_change_show_rg_resources_dialog.clsa_modify_resources_list_rg_optcluster.cat/usr/es/sbin/cluster/utilities/cl_rgtype_rawnameclsa_getapp_attrclsa_dummy_optcluster.catecho clsa_modify_attr_redirect_nredirectclsa_getapp_set_sa_id_attrclsa_list_app_opt_attrcluster.cat cmd_to_classify() { /usr/es/sbin/cluster/sa/sbin/clquerysaapp -q APPLICATION_NAME=$1 } cmd_to_classify_rawnameapplication_idclsa_getapp_set_component_id_attrclsa_dummy_optcluster.cat cmd_to_classify() { OUTPUT=$(/usr/es/sbin/cluster/sa/sbin/clquerysaapp -a "$1" SMARTASSIST_ID ) eval $OUTPUT echo $SMARTASSIST_ID } cmd_to_classifyapplication_idsa_idclsa_getapp_set_cluster_name_attrclsa_dummy_optcluster.cat cmd_to_classify() { OUTPUT=$( /usr/es/sbin/cluster/sa/sbin/clquerysaapp -a "$1" COMPONENT_ID ) eval $OUTPUT echo $COMPONENT_ID } cmd_to_classifyapplication_idcomponent_idclsa_getapp_redirect_attrclsa_dummy_optcluster.cat cmd_to_classify() { /usr/es/sbin/cluster/utilities/cllsclstr -Sc | IFS=':' read cluster_id cluster_name dummy echo $cluster_name } cmd_to_classifycluster_nameclsa_dummy_optcluster.cat cmd_to_classify() { echo $1 } cmd_to_classifyredirectclsa_dummy_optcluster.cat cmd_to_classify() { typeset SA_ID="$1" typeset COMPONENT_ID="$2" SMIT_ADD_TYPE=$(/usr/es/sbin/cluster/sa/sbin/clquerysa -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_MODIFY_TYPE ) if [[ n == $SMIT_ADD_TYPE ]]; then /usr/es/sbin/cluster/sa/sbin/clquerysa -t query -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_MODIFY else echo clsa_modify_attr_redirect_d fi } cmd_to_classifysa_id component_idclsa_dummy_optRun the registration scriptcluster.cat cmd_to_classify() { typeset SA_ID="$1" typeset COMPONENT_ID="$2" if [ -f /usr/es/sbin/cluster/sa/tds/tds_config_type ]; then TDS_CONFIG_TYPE=$(cat /usr/es/sbin/cluster/sa/tds/tds_config_type 2>/dev/null) if [[ "$TDS_CONFIG_TYPE" = DISTRIBUTED || "$TDS_CONFIG_TYPE" = PEERTOPEER ]]; then echo cl_tdssamod_dialog1 else SMIT_ATTR=$(/usr/es/sbin/cluster/sa/sbin/clquerysa -t query -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_MODIFY) SMIT_ATTR=${SMIT_ATTR}_attr echo $SMIT_ATTR fi else SMIT_ATTR=$(/usr/es/sbin/cluster/sa/sbin/clquerysa -t query -s "$SA_ID" -c "$COMPONENT_ID" -q SMIT_MODIFY) SMIT_ATTR=${SMIT_ATTR}_attr echo $SMIT_ATTR fi } cmd_to_classifysa_id component_idcl_wmq_add_dialogcl_wmq_add_select.optSelect a WebSphere MQ Managerwmq_sa.catwmq_sa.catcl_wassaaddnode_dialogcl_wassaaddnode_select.optSelect WebSphere Application Server Nodewassa.catmain() { echo $1 | read A B echo $A:$B } mainCell:Nodewassa.catcl_wassarmnode_dialogcl_wassarmnode_select.optSelect Existing WebSphere Application Server Nodewassa.catmain() { echo $1 | read A B echo $A:$B } mainCell:Nodewassa.catcl_wassaaddclus_dialogcl_wassaaddclus_select.optSelect a WebSphere Clusterwassa.catmain() { echo $1 | read A B echo $A:$B } mainCell:Clusterwassa.catcl_wassarmclus_dialogcl_wassarmclus_select.optSelect Existing WebSphere Clusterwassa.catmain() { echo $1 | read A B echo $A:$B } mainCell:Clusterwassa.catcl_wassaadddm_dialogcl_wassaadddm_select.optSelect a Deployment Managerwassa.catmain() { echo $1 | read A B echo $A:$B } mainCell:Dmwassa.catcl_wassarmdm_dialogcl_wassarmdm_select.optSelect Existing Deployment Managerwassa.catmain() { echo $1 | read A B echo $A:$B } mainCell:Dmwassa.catcl_wassaaddihs_dialogcl_wassaaddihs_select.optSelect an IBM HTTP Serverwassa.catwassa.catcl_wassarmihs_dialogcl_wassarmihs_select.optSelect Existing IBM HTTP Serverwassa.catwassa.catcl_tsm_add_server_instance_cmdcl_tsmserversa_instance_selectorSelect the TSM server instance to make highly availabletsmserversa.cat cmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancetsmserversa.catcl_tsm_add_client_instance_cmdcl_tsmclientsa_client_selectorEnter the TSM client configuration file Directorytsmclientsa.cat cmd_to_classify() { echo $1 } cmd_to_classify_rawnameconfigdirtsmclientsa.catcl_sapsa_add_appinstance_cmdcl_sapsa_add_appinstance.selectorSelect Specific Configuration You Wish To Createsapsa.catcmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancecl_sapsa_add_scsinstance_cmdcl_sapsa_add_scsinstance.selectorSelect Specific Configuration You Wish To Createsapsa.catcmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancecl_sapsa_add_ersinstance_cmdcl_sapsa_add_ersinstance.selectorSelect Specific Configuration You Wish To Createsapsa.catcmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancecl_db2sa_add_single_instance_cmdcl_sapsa_add_db.selectorSelect Specific Configuration You Wish To Createsapsa.catcmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancecl_oraclesa_add_as_cmdCFCcl_oraclesa_as_selector_cfcSelect Specific Configuration You Wish To Createoraclesa.catcmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancecl_oraclesa_add_as_afc_cmdcl_oraclesa_as_selector_afcSelect Specific Configuration You Wish To Createoraclesa.cat cmd_to_classify() { echo $1 } cmd_to_classify_rawnamecl_oraclesa_add_db_instance_cmdcl_oraclesa_db_selectorSelect Specific Configuration You Wish To Createoraclesa.catcmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancecl_oraappsa_add_as_cfc_cmdcl_oraappsa_as_selector_cfcSelect Specific Configuration You Wish To Createoraappsa.catcmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancecl_oraappsa_add_as_afc_cmdcl_oraappsa_as_selector_afcSelect Specific Configuration You Wish To Createoraappsa.cat cmd_to_classify() { echo $1 } cmd_to_classify_rawnamecl_ls_storageclsa_listnodesList PowerHA System Mirror Nodeslc_hs_wizard.catmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $CMDLINE:$NEWNODE } main_rawnameADNodename:ADNodenameNewcl_ls_storagesStorage Systems Foundlc_hs_wizard.catcmd_to_classify() { if [[ $1 == SVC ]]; then echo clsa_hot_standby_svc_wizard elif [[ $1 == DS8000 ]]; then echo clsa_hot_standby_ds_wizard else echo clsa_hot_standby_mc_wizard fi } cmd_to_classifyhmc_typehmc_typescreen_typeclsa_cmdlspv_allList Non-shared PVIDslc_hs_wizard.catcmd_to_classify() { if [[ $1 == SVC ]]; then echo clsa_hot_standby_svc_wizard else echo clsa_hot_standby_ds_wizard fi } cmd_to_classifyhmc_type_nsrawnameADNSPVNamecl_maxdbsa_add_db_instance_cmdcl_maxdbsa_db_selectorSelect the SAP MaxDB instance to make highly availablemaxdbsa.catmain() { LABEL=`echo $* | awk -F@ '{print $1}'` ENAME=`echo $* | awk -F@ '{print $2}'` print $LABEL:$ENAME } main_rawnameinstance:owning_nodecl_maxdbsa_hot_standby_add_db_instance_cmdcl_maxdbsa_hot_standby_db_selectorSelect the SAP MaxDB Hot Standby instance to make highly availablemaxdbsa.catinstancemaxdbsa.catcl_addihs_dialogcl_addihs_select.optSelect an IBM HTTP Serverihssa.catihssa.catcl_db2sa_select_discovery_modecl_db2sa_instance_selectorSelect the DB2 instance to make highly availabledb2sa.cat cmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancedb2sa.catcl_db2sa_add_single_instance_cmdcl_db2sa_discovery_mode_selectorSelect a discovery modedb2sa.cat cmd_to_classify() { mode1=$(dspmsg -s 10 db2sa.cat 48 "Quick Discovery") mode2=$(dspmsg -s 10 db2sa.cat 49 "Normal Discovery") if [[ $mode1 == $1 ]]; then echo -m else echo fi } cmd_to_classify_rawnameoptdb2sa.catcl_filenet_ce_db2sa_add_single_instance_cmdcl_db2sa_instance_selectorSelect the DB2 instance to make highly availabledb2sa.cat cmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancedb2sa.catcl_filenetsa_add_process_engine_cmdcl_filenetsa_add_process_engine_selectorSelect the process engine user to make highly availablefilenetsa.cat cmd_to_classify() { echo $1 } cmd_to_classify_rawnameuser_namefilenetsa.catcl_filenet_pe_db2sa_add_single_instance_cmdcl_db2sa_instance_selectorSelect the DB2 instance to make highly availabledb2sa.cat cmd_to_classify() { echo $1 } cmd_to_classify_rawnameinstancedb2sa.catcl_filenet_ce_addnode_dialogcl_filenet_ce_addnode_select.optSelect WebSphere Application Server Nodewassa.catmain() { echo $1 | read A B echo $A:$B } mainCell:Nodewassa.catcl_filenet_ae_addnode_dialogcl_filenet_ae_addnode_select.optSelect WebSphere Application Server Nodewassa.catmain() { echo $1 | read A B echo $A:$B } mainCell:Nodewassa.catcm_cfg_add_powervs_cloudselcm_cfg_add_powervs_sel_opt_cloudinstancenamecm_cfg_add_powervs_sel_cloudcmd_to_classify() { cl_type=$(/usr/es/sbin/cluster/utilities/clodmget -f multi_site_lc -n HACMPcluster) if [[ $cl_type == 1 ]]; then echo "cm_cfg_add_powervs_site" else echo "cm_cfg_add_powervs_standard" fi } cmd_to_classify_rawnameChange/Show Cloud Instancecmd_to_classify() { cl_type=$(/usr/es/sbin/cluster/utilities/clodmget -f multi_site_lc -n HACMPcluster) if [[ $cl_type == 1 ]]; then echo "cm_cfg_ch_powervs_cmd" else echo "cm_cfg_ch_powervs_cluster_cmd" fi } cmd_to_classify_rawnameRemove NovaLink Definition_novanamecm_cfg_rm_powervs_cmdcm_cfg_ch_powervs_sel_opt_rawnamecm_cfg_add_bmc_sel_optmain() { if [[ $1 == $(dspmsg -s 68 cluster.cat 21 'Cloud') ]];then print 'cloud' elif [[ $1 == $(dspmsg -s 68 cluster.cat 22 'Remote Storage') ]];then print 'remote' fi } maincm_cfg_add_bmc_dialog_cm_cfg_add_bmc_remote_rg_sel_opt_rgcm_cfg_add_bmc_dialog_cm_cfg_add_bmc_cloud_rg_sel_opt_rgcm_cfg_ch_bmc_cmd_main() { backuptype=$(/usr/es/sbin/cluster/utilities/clmgr -a BACKUP_METHOD -cS query backup_profile $1 2>/dev/null) if [[ $backuptype == 'cloud' ]];then print 'cloud' elif [[ $backuptype == 'remote_storage' ]];then print 'remote' fi } maincluster_hlp.catcluster_hlp.catChange/Show Storage Configurationcluster_hlp.catRemove Storage Configuration_storagenamecluster_hlp.catcl_resgrp_start.select_node_Select a Resource Group-t group_namegroup_namecl_resgrp_start.dialog_non_concurrent._clm.cl_resgrp_start.select_node_non_concurrentSelect a Destination Nodecmd_to_classify() { echo "$1" | read GROUP_NAME P1 P2 P3 P4 P5 if [[ -z $(ODMDIR=/etc/es/objrepos odmget -q"name = GMVG_REP_RESOURCE" HACMPresource) ]] then DIVERGENCE="" else DIVERGENCE=".divergence" fi if [[ "$P1" = "OFFLINE_SECONDARY" || "$P1" = "UNMANAGED_SECONDARY" ]]; then echo "secondary$DIVERGENCE" exit 0 else echo "primary$DIVERGENCE" exit 0 fi } cmd_to_classifygroup_namecl_resgrp_start.dialog_concurrent._clm.cl_resgrp_start.select_node_concurrentcmd_to_classify() { echo "$1" | read GROUP_NAME P1 P2 P3 P4 P5 if [[ "$P1" = "OFFLINE_SECONDARY" || "$P1" = "UNMANAGED_SECONDARY" ]]; then echo "secondary" exit 0 else echo "primary" exit 0 fi } cmd_to_classifycl_resgrp_move.select_node_clm.cl_resgrp_move_node.selectgroup_name_clm.cl_resgrp_move.select_nodecmd_to_classify() { echo "$1" | read GROUP_NAME P1 P2 P3 P4 P5 if [[ "$P2" = "SECONDARY" ]]; then echo "secondary" exit 0 else echo "primary" exit 0 fi } cmd_to_classifygroup_namenode_namecl_resgrp_move.select_site_clm.cl_resgrp_move_site.selectSelect Resource Group(s) to Move To Another Sitegroup_namecl_resgrp_move.dialog.site._clm.cl_resgrp_move.select_sitecmd_to_classify() { echo "$1" | read GROUP_NAME P1 P2 P3 P4 P5 if [[ -z $(ODMDIR=/etc/es/objrepos odmget -q"name = GMVG_REP_RESOURCE" HACMPresource) ]] then DIVERGENCE="" else DIVERGENCE=".divergence" fi if [[ "$P1" = "OFFLINE_SECONDARY" || "$P1" = "UNMANAGED_SECONDARY" ]]; then echo "secondary$DIVERGENCE" exit 0 else echo "primary$DIVERGENCE" exit 0 fi } cmd_to_classifygroup_namesite_namecm_suspend_appmon.dialogcm_suspend_appmon.optResume Application Monitor(s) for Application ControllerAvailable Service/Communication Interfacesmain() { CMDLINE=$1 CMDLINE=$(print $CMDLINE | sed -e 's/ */ /g') IP_LABEL=${CMDLINE%%[ ]*} IP_ADDRESS=${CMDLINE##*[ ]} REMAINDER=${CMDLINE%[ ]*} NETWORK=${REMAINDER#*[ ]} print $NETWORK:$IP_LABEL } mainADnetwork:ADsvcIPcl_swap_adapter.dialogswap_adapter_standby.nscluster.catcl_pcihp.dialogcl_pcihp.selectAvailable PCI Hot Plug Network Adapters Managed by PowerHA SystemMirrorcluster.catmain() { CMDLINE=$1 SLOT=$(print $CMDLINE | awk '{print $1}') #if [ $SLOT = PCI Slot ]; then return;fi ADAPTER=$(print $CMDLINE | awk '{print $2}') INTERFACE=$(print $CMDLINE | awk '{print $3}') IPLABEL=$(print $CMDLINE | awk '{print $4}') print $SLOT:$ADAPTER:$INTERFACE:$IPLABEL } mainPCIHPslot:PCIHPadapter:PCIHPinterface:PCIHPiplabelcm_config_comm_dev_node.select.type_cm_config_comm_dev_node.selectcluster.catcm_config_comm_dev_node.dialog_cm_config_comm_dev_node.select.typecluster.catShow Characteristics of a Logical Volume in the Clustercluster_hlp.catRemove a Logical Volume from the Clustermain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } mainVG_name:RG_name:Nodelistcl__cmdlvmvgnsrRemove a Volume from a Volume Groupmain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read vg_name rest vg_type=${rest##* } rest=${rest% *} node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}:${vg_type} } mainVGName:RGName:Nodelist:VGtypecl__cmdlvmpvns1rRemove a Volume from a Volume Groupcl_unmirrorvg1main() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } main_rawnameVGName:RGName:Nodelistcl_unmirrorvgdcl__cmdlvmvg_syncSynchronize LVM Mirrors by Volume Groupmain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read vg_name rest vg_type=${rest##* } rest=${rest% *} node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}:${vg_type} } mainVGName:RGName:Nodelist:VGTypecl_syncvg_lvncl__cmdlvmlv_syncSynchronize LVM Mirrors by Logical Volumemain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } mainVG_name:RG_Name:Nodelistcluster_hlp.catcl__cmdlvmlvnslvSynchronize LVM Mirrors by Logical Volumecluster_hlp.catcl__cmdlvmrnlvvgmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } mainVG_name:RG_name:Nodelistmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } mainVG_name:RG_name:Nodelistmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } mainVG_name:RG_name:NodelistAdd a Volume to a Concurrent Volume Group/usr/es/sbin/cluster/cspoc/smitlvm -22Remove a Volume from a Concurrent Volume GroupRGName:VGNameRemove a Volume from a Concurrent Volume Group/usr/es/sbin/cluster/cspoc/smitlvm -22cl_convertconvgdcl__cmdlvmconvgnsConvert a Concurrent Volume Group to Enhanced Concurrent ModeRGName:VGNamecl__cmdlvmconvgns1/usr/es/sbin/cluster/cspoc/smitlvm -22cl_unmirrorconvg1_rawnamecl_unmirrorconvgd_rawnamecl_syncconvg_vgdSynchronize Concurrent LVM Mirrors by Volume Group_rawnamecl_syncconvg_lvdSynchronize Concurrent LVM Mirrors by Logical Volume_rawnameRGName:LVNamecspoc.catcspoc.catcl_rmconlvcopy1cl__cmdlvmconlv.nsRemove a Copy from a Concurrent Logical Volumecl_rmconlvcopydcl__cmdlvmlvcopypvnsRemove a Copy from a Concurrent Logical Volumecl_con_extendlv1Increase the Size of a Concurrent Logical VolumeRGName:LVName:::::Strictcl_con_extendlvd/usr/es/sbin/cluster/cspoc/smitlvm -22cl__cmdlvmconvgnsAdd a Concurrent Logical Volumecl__cmdlvmpvnsAdd a Concurrent Logical Volumecl__cmdlvmconlv.nsRemove a Concurrent Logical Volumecspoc.catRGName:LVNamecl__cmdlvmconlv.nsShow Characteristics of a Concurrent Logical VolumeADNodename:ADNodenameNewcspoc.catmain() { CMDLINE1=$1 # # If configuration has a site defined and Cross-Site LVM Mirroring # is configured remove site names from disk list. # SITES=$(ODMDIR=/etc/objrepos odmget HACMPsite | sed -n '/name =/s/.*"(.*)".*/1/p') if [[ -n $SITES ]] then for SITE in $SITES do CMDLINE1=$(print $CMDLINE1 | sed -e 's/$SITE//g') done fi # # Remove any duplicates from the PVID list # CMDLINE1=$(print $CMDLINE1 | tr ' ' ' ' | sort -u | paste -s -) # # Generate list of unique PVIDs sans sites, followed by a free major number # print $CMDLINE1:$(/usr/es/sbin/cluster/cspoc/cl_getmajor) } mainADPVName:MajorNummain() { dspmsg -s 43 cspoc.cat 40 "Legacy Original Big Scalable" | read Legacy Original Big Scalable if [[ $1 == $Scalable ]] then print S elif [[ $1 == $Big ]] then print B elif [[ $1 == $Original ]] then print O elif [[ $1 == $Legacy ]] then print L fi } main_rawnameADNVGTypeCreate a Concurrent Volume Groupmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $CMDLINE:$NEWNODE } main_rawnameADNodename:ADNodenameNewcl_con_createvg2main() { CMDLINE1=$1 # # If configuration has a site defined and Cross-Site LVM Mirroring # is configured remove site names from disk list. # SITES=$(ODMDIR=/etc/objrepos odmget HACMPsite | sed -n '/name =/s/.*"(.*)".*/1/p') if [[ -n $SITES ]] then for SITE in $SITES do CMDLINE1=$(print $CMDLINE1 | sed -e 's/$SITE//g') done fi # # Remove any duplicates from the PVID list # CMDLINE1=$(print $CMDLINE1 | tr ' ' ' ' | sort -u | paste -s -) # # Generate list of unique PVIDs sans sites, followed by a free major number # print $CMDLINE1:$(/usr/es/sbin/cluster/cspoc/cl_getmajor) } mainADPVName:MajorNumCreate a Concurrent Volume Groupmain() { dspmsg -s 43 cspoc.cat 40 "Legacy Original Big Scalable" | read Legacy Original Big Scalable if [[ $1 == $Scalable ]] then print S elif [[ $1 == $Big ]] then print B elif [[ $1 == $Original ]] then print O elif [[ $1 == $Legacy ]] then print L fi } main_rawnameSelect Node(s) to Remove Disk Fromcspoc.catcluster_hlp.catcl_disk_man.rem.dialogcl_disk_man.rem.pvidcluster_hlp.catcl_disk_man.add.nodesNode Name(s) to which disk is attached_nodelistcluster_hlp.catcl_disk_man.replace_dest_cl_disk_man.replacemain() { print $1 | read _dr_vg _dr_hdisk _dr_pvid _dr_node _dr_node_list _dr_rg print $_dr_vg:$_dr_hdisk:$_dr_pvid:$_dr_node:$_dr_node_list:$_dr_rg } main_dr_vg:_dr_hdisk:_dr_pvid:_dr_node:_dr_node_list:_dr_rgcl_disk_man.replace.dialog_cl_disk_man.replace_destmain() { print $1 | read _dr_hdisk_dst _dr_pvid_dst junknodename print $_dr_hdisk_dst:$_dr_pvid_dst } main_dr_hdisk_dst:_dr_pvid_dstmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $NEWNODE } main_rawnameADNodename:ADNodenameNewDisplay Data Path Device Adapter Statusmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $NEWNODE } main_rawnameADNodename:ADNodenameNewmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $NEWNODE } main_rawnameADNodename:ADNodenameNewAdd Paths to Available Data Path Devicesmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $NEWNODE } main_rawnameADNodename:ADNodenameNewcl_dpconfdef.select.pvidcl_dpdevmgr.select.nodesSelect Node(s) to look for Defined VPathsmain() { OUTPUT=`echo $1 | sed 's/ /,/g'` echo $OUTPUT } mainnodescl_dpconfdef.dialogcl_dpconfdef.select.pvidcluster_hlp.catcl_dprmvp.select.keepdbcl_dpdevmgr.select.nodesSelect Node(s) to Remove Data Path Device Frommain() { OUTPUT=`echo $1 | sed 's/ /,/g'` echo $OUTPUT } maincluster_hlp.catcl_dprmvp.select.pvidcl_dprmvp.select.keepdbcluster_hlp.catcl_dprmvp.select.pvid_pvidpvidcluster_hlp.catcspoc.catRGName:VGNamemain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $CMDLINE:$NEWNODE } mainADNodename:ADNodenameNewcspoc.catADPVName:MajorNumCreate a Volume Group with Data Path Devicesmain() { dspmsg -s 43 cspoc.cat 40 "Legacy Original Big Scalable" | read Legacy Original Big Scalable if [[ $1 == $Scalable ]] then print S elif [[ $1 == $Big ]] then print B elif [[ $1 == $Original ]] then print O elif [[ $1 == $Legacy ]] then print L fi } main_rawnameADNVGTypecl_con_createvpathvg1Create a Concurrent Volume Group with Data Path Devicesmain() { CMDLINE=$1 NEWNODE=`echo $CMDLINE | sed 's/ /,/g' ` print $CMDLINE:$NEWNODE } main_rawnameADNodename:ADNodenameNewcl_con_createvpathvg2Create a Concurrent Volume Group with Data Path Devicesmain() { CMDLINE1=$1 print $CMDLINE1:`/usr/es/sbin/cluster/cspoc/cl_getvpathmajor` } main_rawnameADPVName:MajorNumcl_con_createvpathvg3Create a Concurrent Volume Group with Data Path Devicesmain() { dspmsg -s 43 cspoc.cat 40 "Legacy Original Big Scalable" | read Legacy Original Big Scalable if [[ $1 == $Scalable ]] then print S elif [[ $1 == $Big ]] then print B elif [[ $1 == $Original ]] then print O elif [[ $1 == $Legacy ]] then print L fi } mainADNVGTypecm_scan_scripts_log.dialog_clm.cm_scan_scripts_log.selectcluster.catclusterlog_redir_cha_clusterlog_redir.selectcluster.cat_clm.cm_run_time.selectSelect a Node Name to Configurecluster.catcluster_hlp.cat2,138cluster_hlp.catcluster_hlp.catcl_mkgroup.rg_selectChange / Show Characteristics of a Group in the Cluster_raw_rgname_raw_rgname_rgnameChange / Show Characteristics of a Group in the Cluster_rawname_rawname_cookednamecluster_hlp.catRemove a Group from the Cluster_raw_rgname_raw_rgname_rgnameChange a User's Password in the Cluster_raw_rgname_rgnamecluster_hlp.catcm_filecollection_selectcm_filesinfilecollection_addcm_filecollection_selectSelect a File Collectioncm_filesfromfilecollection_selectfilescm_filecollection_selectSelect a File Collectionfilecollectionnamecm_filesfromfilecollection_rmcm_fcfiles_selectSelect a File Collectioncmd_to_classify() { echo $1 "$2" } cmd_to_classifyfilecollectionname _rawnameparamscm_filecollection_propcm_filecollection_multiselectcluster.catfilecollectionnamecluster.catclstart_nor_cluster.catcluster.catcl_chshconvgdcl_chshconvgOptChange/Show characteristics of a Concurrent Volume Groupmain() { print $* | read vg_name rg_name node_list print ${vg_name}:${rg_name}:${node_list} } mainVG_name:RG_name:Nodelistcl_chfs_type_selectChange/Show Characteristics of a File System in the Clustermain() { print $* | read fs_name vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${fs_name}:${vg_name}:${rg_name}:${node_list} } main_rawnameFS_name:VG_name:RG_name:Nodelistcl_chfs_type_select.OptChange/Show Characteristics of a File System in the ClusterFS_nameIncrease the Size of a Logical VolumeNodelist _rawname::LV_name:LVType:Position:Range:Upbound:Strict:Reloc:Label:MaxLPs:Sched:Permissions:BadBlk:Verify:MirrWC:OverlapIO:chlv_Mirpool_copy1:chlv_Mirpool_copy2:chlv_Mirpool_copy3List all Logical Volumes by Volume Group_rawnameShow Characteristics of a Logical Volume in the Clustercluster_hlp.catcl_mkfs.typemain() { # # Disambiguate volume group, resource group and node list # Processing below accounts for the fact that the resource # group could be 'not in a resource group' - embedded blanks # print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}: # # A null value of LV_name is set, initially # } main_rawnameVG_name:RG_name:Nodelist:LV_namecl_mkfs.lvchkcl__mkfs.type_optmain() { # # The user was presented with a list of file system types as NLS strings # Turn the selected string back into something easy to work with internally # string=$* Enhanced=$(dspmsg -s 56 cluster.cat 45 "Enhanced Journaled File System ") Standard=$(dspmsg -s 56 cluster.cat 46 "Standard Journaled File System ") Compressed=$(dspmsg -s 56 cluster.cat 47 "Compressed Journaled File System ") Large=$(dspmsg -s 56 cluster.cat 48 "Large File Enabled Journaled File System ") if [[ $string == $Enhanced ]] then print E elif [[ $string == $Large ]] then print L elif [[ $string == $Compressed ]] then print C else print S fi } main_rawnamecl__mkfs.lvchk_optmain() { # # Check to see if the user specified volume group has any logical volumes # of the required type - jfs or jfs2 - that do not currently hold file # systems. # # If so, the user will be presented a list of those file systems to chose # from (including the option to create a new logical volume) # # However, if there are no logical volumes available to hold the file system, # do not bother asking the question - a new one must be created # print $* | read vg_name fs_type nodelist # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(/usr/es/sbin/cluster/utilities/clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) # For a non root user, append username to the output file [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then hold_file="/var/hacmp/tmp/choclv.out"_$user_name else hold_file="/var/hacmp/tmp/choclv.out" fi export _CSPOC_CALLED_FROM_SMIT=true export _CSPOC_MODE=both if [[ $fs_type == 'E' ]] then lookfor='jfs2' else lookfor='jfs' fi # # The lsvg -l output is saved in /var/hacmp/tmp/choclv.out, to be used for a pick list # Check to see if there are any free logical volumes of the required type. This # determines the next name header to run. # if [[ -n $(/usr/es/sbin/cluster/sbin/cl_lsvg -cspoc -n${nodelist} -l ${vg_name} 2>/dev/null | tee ${hold_file} | grep -w ${lookfor} | grep -v ' /') ]] then print lv_which else print d_which fi } mainVG_name FS_type Nodelistcl_mkfs.d_whichcl__mkfs.lv_which_optmain() { # # The sm_cmd_opt entry named in option_id has returned either a line starting with the name # of a logical volume to use, or an indication to create a new one # string=$* create_new_msg=$(dspmsg -s 101 cspoc.cat 86 "Create a new Logical Volume for this File System") if [[ "$string" != "$create_new_msg" ]] then # # Didn't find the create a new one message, so pick up and pass back the selected logical # volume # print $string | read LV_name rest print $LV_name else print '' fi } maincl__mkfs.d_which_optmain() { print $* | read fs_type lv_name if [[ -z $lv_name ]] then lv=lv fi case $fs_type in E) print ${lv}createjfs2 ;; L) print ${lv}createfs_lf ;; C) print ${lv}createfs_comp ;; S) print ${lv}createfs ;; esac } mainFS_type LV_namecspoc.catFS_name:VG_name:RG_name:NodelistRemove a Logical Volume from the Clustercspoc.catcspoc.catLV_nameLV_namecl_updatevg.hdrcl_updatevgOptSynchronize a Volume Group Definitioncl_mark_noncritical_vg.dialogcl_mark_noncritical_vg.select.optSelect Volume Group to mark non-Criticalmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } maincl_mark_critical_vg.dialogcl_mark_critical_vg.select.optSelect Volume Group to mark Criticalcl_set_critical_vg_response_dialogcl_set_critical_vg_response_name_optConfigure failure action for CRITICAL Volume Groupscl_rmvg.hdrRemove a Volume Groupmain() { print $* | read vg_name rest node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list} } main_rawnameVG_name:RG_name:Nodelistcl_chshmp.dialogcl_chshmp.optionMP_name:VG_name:RG_name:NodelistVGName:RGName:Nodelist:VGType_rawnameNode:PVNamescl_mp_dummy_optVGTypecl__cmdlvmvgnsemain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read vg_name rest vg_type=${rest##* } rest=${rest% *} node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}:${vg_type} } maincl__cmdlvmampvnxmain() { disk_list="" pvid_list="" # # Input is lines in the form of: # ( [on node |on all cluster nodes] # SMIT does not separate these with new lines, so split them on # the closing ')'. Goal is to retrieve the PVIDs and disk names # print -- "$*" | tr ')' ' ' | while read line do pvid="" hdisk_name="" # # For each line, pick up the PVID, which is always first # print $line | read pvid rest_selected # # /var/hacmp/tmp/cllspvids.out was generated by cl_lspvids.cel. It has # a colon delimited list of free disks with PVIDS and disk names # per node. For a non root user, append username to the output file. # [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(/usr/es/sbin/cluster/utilities/clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then CL_DATFILE="/var/hacmp/tmp/cllspvids.out"_$user_name else CL_DATFILE="/var/hacmp/tmp/cllspvids.out" fi grep $pvid $CL_DATFILE | while IFS=: read node hdisk_name nodeline do if print -- $rest_selected | grep -qw $hdisk_name then # # A given PVID should occur once per node in /var/hacmp/tmp/cllspvids.out # It may have different hdisk names on different nodes. Pick up # the one that matches some part of the user-selected line. This # round about method is needed because NLS translation may not # leave the hdisk name in a constant location. # break fi done if [[ -n $hdisk_name ]] then pvid_list="${pvid_list} $pvid" disk_list="${disk_list} ${hdisk_name# }" fi done # # : # print ${disk_list# }:${pvid_list# } } main "$*"_rawnamePVNames:PVidscl_extendvgdcl_mp_dummy_optVGTypecl_rendiskdcl_rendiskoptmain() { # # Used to parse the line generated by cllspvids # ( on [node list|all cluster nodes] ) # Since the text may be in NLS, position and keyword # scanning is unreliable. For a non root user, append username # to the output file. # [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(/usr/es/sbin/cluster/utilities/clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then CL_DATFILE="/var/hacmp/tmp/cllspvids.out"_$user_name else CL_DATFILE="/var/hacmp/tmp/cllspvids.out" fi print $* | read PVID rest_line # Find the nodes on which the PVID appears on_nodes=$(grep $PVID $CL_DATFILE | cut -f1 -d: | paste -s -) # Find those nodes on which PVID appears which are # in the selected line generated by cllspvids Nodelist="" for node in $on_nodes do if print "$rest_line" | grep -qw $node then Nodelist=${Nodelist:+${Nodelist},}${node} fi done if [[ -z $Nodelist ]] then # No nodes were listed in the line, so all nodes Nodelist=$(IFS=, set -- $(/usr/es/sbin/cluster/utilities/clnodename) ; print "$*") fi # Since the process of retrieving the UUID need be run # on only one node, pick the first in the list print $Nodelist | IFS=, read first_name rest_names # Finally, get the name of the disk on that node PVName=$(grep "^${first_name}: " $CL_DATFILE | grep $PVID | head -1 | cut -f2 -d: ) PVName=${PVName## } # Trim blanks print ${Nodelist}:${PVName}:${PVID} # Display output rm $CL_DATFILE # Clean up work file } main_rawnamecl_chshdisk2Change/Show Characteristics of a Physical Volumemain() { print $* | read VGName Hdisk PVID RefNode Nodelist RGName VGType=$(/usr/es/sbin/cluster/sbin/cl_lsmpvgs -q $VGName) print ${VGName}:${Hdisk}:${PVID}:${RefNode}:${Nodelist}:${RGName}:${VGType} } main_rawnameVGName:Hdisk:PVID:RefNode:Nodelist:RGName:VGTypeChange/Show Characteristeics of a Physical VolumeVGTypeChange a Logical Volume on the ClusterVG_name:RG_name:Node_list:VGTypeChange a Logical Volume on the Clustermain() { print $* | read node_list lv_name export _CSPOC_CALLED_FROM_SMIT=true export _CSPOC_MODE=both /usr/es/sbin/cluster/sbin/cl_lslvsmit -cspoc -n${node_list} $lv_name } mainNode_list LV_name:::LVType:Position:Range:Upbound:Strict:Reloc:Label:MaxLPs:Sched:Permissions:BadBlk:Verify:MirrWC:OverlapIO:chlv_Mirpool_copy1:chlv_Mirpool_copy2:chlv_Mirpool_copy3:ENABLE_LV_ENCRYPTIONChange a Logical Volume on the Clustermain() { vg_type=$1 if [[ $vg_type == '2mp' ]] then print 'mp' fi } mainVGTypecl_show_vgmpsdcl_show_vgmpsoptShow all Mirror Pools for a Volume Groupcl_mklvcopy11cl__mklvcopy.vgAdd a Copy to a Logical Volumemain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read vg_name rest vg_type=${rest##* } rest=${rest% *} node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}:${vg_type} } mainVG_name:RG_name:Nodelist:VGTypeAdd a Copy to a Logical Volumecl_mklvcopy2cl__mklvcopy.pvcl_mirrorvg1main() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read vg_name rest vg_type=${rest##* } rest=${rest% *} node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}:${vg_type} } mainVGName:RGName:Nodelist:VGTypecl__cmdlvmpvnmMirror a Volume Groupcspoc.catcl_mp_dummy_optMirror a Volume Groupcspoc.catVGTypecl_chshsvg2cl_chshsvgOptChange/Show characteristics of a Volume Groupcspoc.catmain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read vg_name rest vg_type=${rest##* } rest=${rest% *} node_list=${rest##* } rg_name=${rest% *} print ${vg_name}:${rg_name}:${node_list}:${vg_type} } maincl_mp_dummy_optChange/Show characteristics of a Volume Groupcspoc.catVGTypecl_mp_add_disksdmain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read mirror_pool vg_name rest node_list=${rest##*[[:space:]]} rg_name=${rest%[[:space:]]*} storage_loc="" storage_loc=$(clodmget -n -f value -q "volume_group=$vg_name and object=$mirror_pool and name=STORAGE_LOCATION" HACMPvolumegroup 2>/dev/null) if [[ -z $storage_loc ]]; then storage_loc="default" fi print ${mirror_pool}:${vg_name}:${rg_name}:${node_list}:${storage_loc} } mainMP_name:VG_name:RG_name:Nodelist:MP_Locationcl_mp_rm_disksdmain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read mirror_pool vg_name rest node_list=${rest##*[[:space:]]} rg_name=${rest%[[:space:]]*} print ${mirror_pool}:${vg_name}:${rg_name}:${node_list} } mainMP_name:VG_name:RG_name:Nodelistcl_rmpooloptmain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read mirror_pool vg_name rest node_list=${rest##*[[:space:]]} rg_name=${rest%[[:space:]]*} print ${mirror_pool}:${vg_name}:${rg_name}:${node_list} } main_rawnameMP_name:VG_name:RG_name:Nodelistcl_getdiskdcl_showuuidoptmain() { # # Used to parse the line generated by cllspvids # ( on [node list|all cluster nodes] ) # Since the text may be in NLS, position and keyword # scanning is unreliable. # print $* | read PVID rest_line # For a non root user, append username to the output file [[ -z "$LOGIN" ]] && user_name=$(id -nu 2>/dev/null) || user_name="$LOGIN" # Check if RBAC is enabled typeset is_rbac_enabled="" is_rbac_enabled=$(/usr/es/sbin/cluster/utilities/clodmget -nq "group=LDAPClient and name=RBACConfig" -f value HACMPLDAP 2>/dev/null) if [[ $user_name != "root" && $is_rbac_enabled == "YES" ]];then CL_DATFILE="/var/hacmp/tmp/cllspvids.out"_$user_name else CL_DATFILE="/var/hacmp/tmp/cllspvids.out" fi # Find the nodes on which the PVID appears on_nodes=$(grep $PVID $CL_DATFILE | cut -f1 -d: | paste -s -) # Find those nodes on which PVID appears which are # in the selected line generated by cllspvids Nodelist="" for node in $on_nodes do if print "$rest_line" | grep -qw $node then Nodelist=${Nodelist:+${Nodelist},}${node} fi done if [[ -z $Nodelist ]] then # No nodes were listed in the line, so all nodes Nodelist=$(IFS=, set -- $(/usr/es/sbin/cluster/utilities/clnodename) ; print "$*") fi # Since the process of retrieving the UUID need be run # on only one node, pick the first in the list print $Nodelist | IFS=, read first_name rest_names # Finally, get the name of the disk on that node PVName=$(grep "^${first_name}: " $CL_DATFILE | grep $PVID | head -1 | cut -f2 -d: ) PVName=${PVName## } # Trim blanks print ${PVID}:${PVName}:${first_name} # Display output rm $CL_DATFILE # clean up work file } mainPVID:Disk_name:Node_namemain() { # # Convoluted code to break appart the selected line # because the resource group name could either be a # name or the phrase # print $* | read mirror_pool vg_name rest node_list=${rest##*[[:space:]]} rg_name=${rest%[[:space:]]*} print ${mirror_pool}:${vg_name}:${rg_name}:${node_list} } mainMP_name:VG_name:RG_name:NodelistAdd a User to the LDAPcl_chuser_ldapcl_chuser.name_select_ldapChange / Show Characteristics of a User in the LDAP_cookednamecluster_hlp.catldap_mode_optSelect an Authentication and registry modemain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP " | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameADNVGTypecl_rmuser_ldapmain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP " | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameAdd a Group to the LDAPcl_chgroup_ldapcl_chgroup.name_select_ldapChange / Show Characteristics of a Group in the LDAP_cookednameldap_mode_optSelect an Authentication and registry modemain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP " | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameADNVGTypeSelect an Authentication and registry modemain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP " | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameADNVGTypeSelect an Authentication and registry modemain() { dspmsg -s 129 cspoc.cat 1 "LOCAL(FILES) LDAP " | read LOCAL LDAP if [[ $1 == $LDAP ]] then print _ldap fi } main_rawtname_rawtnameADNVGType_cm_change_show_a_site_in_the_hacmp_cluster.dialog_cm_change_show_a_site_in_the_hacmp_cluster_selectcluster_hlp.cat_cm_delete_a_site_in_the_hacmp_cluster.dialog_cm_delete_a_site_in_the_hacmp_cluster_selectCluster Site Name to Removecluster_hlp.catcm_rg_oss_dependencies.ch.dialog_cm_rg_oss_dependencies.ch.selectSelect a Resource Group Dependency to Change/Showrg_listcm_rg_oss_dependencies.rm.dialog_cm_rg_oss_dependencies.rm.selectSelect a Resource Group Dependency to Deleterg_list_clm.cl_resgrp_move_site.selectSelect Resource Group(s) to Move To Another Sitegroup_name_clm.cl_resgrp_move.select_siteSelect a Destination Sitecmd_to_classify() { echo "$1" | read GROUP_NAME P1 P2 P3 P4 P5 if [[ -z $(ODMDIR=/etc/es/objrepos odmget -q"name = GMVG_REP_RESOURCE" HACMPresource) ]] then DIVERGENCE="" else DIVERGENCE=".divergence" fi if [[ "$P1" = "OFFLINE_SECONDARY" || "$P1" = "UNMANAGED_SECONDARY" ]]; then echo "secondary$DIVERGENCE" exit 0 else echo "primary$DIVERGENCE" exit 0 fi } cmd_to_classifygroup_namesite_name_cm_setup_cluster_nodes_networkscmd_to_classify() { if /usr/lib/cluster/incluster then # CAA cluster exists - see if there is a SM cluster if [[ -z $(odmget HACMPcluster) ]] then # this is an error case - shows some diagnostic information echo cm_show_cluster_error exit 0 fi # caa cluster exists - cant change anything echo cm_show_cluster exit 0 fi if [[ -n $(odmget HACMPcluster) ]] then # SM cluster exists but not caa cluster - allow basic changes ctype=$(/usr/es/sbin/cluster/utilities/clodmget -f multi_site_lc -n HACMPcluster) if (( $ctype < 0 )) then echo cm_setup_cluster_nodes_networks_dialog # change a flat cluster else echo cm_setup_cluster_sites_nodes_networks_dialog # change a site'd cluster fi exit 0 fi echo cm_setup_cluster_sites_nodes_networks_dialog # no cluster - create a sited one from scratch exit 0 } cmd_to_classifycm_define_repos_ip_addr_dialog_cm_define_repos_ip_addrcluster.catcmd_to_classify() { if /usr/es/sbin/cluster/sbin/cl_check_capability -i unicast >/dev/null 2>&1 then heartbeat=_hbc else heartbeat="" fi if [[ $(/usr/es/sbin/cluster/utilities/clodmget -n -f multi_site_lc HACMPcluster) == 1 ]] then sites=_sites else sites="" fi if /usr/lib/cluster/incluster then exists=_exists else exists="" fi if [[ -z $(/usr/es/sbin/cluster/utilities/clodmget -q "object = COMMUNICATION_PATH" -f value -n HACMPnode) ]] then print _nonodes else print ${exists}${sites}${heartbeat} fi } cmd_to_classifycm_rem_repository_disk.dialog.sitescm_repository_select_sitesSelect a Sitecluster.catcm_add_repository_disk.dialog.sitescm_repository_select_sitesSelect a Sitecluster.catcm_replace_repos.dialog.sitescm_repository_select_sitesSelect a Sitecluster.cat