#!/usr/bin/pbs_wish -f ############################################################################### # xpbsmon-gui: The GUI front end to the PBS user and operator commands. # # Written by Albeaus Bayucan # History # Initial Date: 2/26/98 ############################################################################### # OpenPBS (Portable Batch System) v2.3 Software License # # Copyright (c) 1999-2002 Veridian Information Solutions, Inc. # All rights reserved. # # --------------------------------------------------------------------------- # For a license to use or redistribute the OpenPBS software under conditions # other than those described below, or to purchase support for this software, # please contact Veridian Systems, PBS Products Department ("Licensor") at: # # www.OpenPBS.org +1 650 967-4675 sales@OpenPBS.org # 877 902-4PBS (US toll-free) # --------------------------------------------------------------------------- # # This license covers use of the OpenPBS v2.3 software (the "Software") at # your site or location, and, for certain users, redistribution of the # Software to other sites and locations. Use and redistribution of # OpenPBS v2.3 in source and binary forms, with or without modification, # are permitted provided that all of the following conditions are met. # After December 31, 2003, only conditions 3-6 must be met: # # 1. Commercial and/or non-commercial use of the Software is permitted # provided a current software registration is on file at www.OpenPBS.org. # If use of this software contributes to a publication, product, or # service, proper attribution must be given; see www.OpenPBS.org/credit.html # # 2. Redistribution in any form is only permitted for non-commercial, # non-profit purposes. There can be no charge for the Software or any # software incorporating the Software. Further, there can be no # expectation of revenue generated as a consequence of redistributing # the Software. # # 3. Any Redistribution of source code must retain the above copyright notice # and the acknowledgment contained in paragraph 6, this list of conditions # and the disclaimer contained in paragraph 7. # # 4. Any Redistribution in binary form must reproduce the above copyright # notice and the acknowledgment contained in paragraph 6, this list of # conditions and the disclaimer contained in paragraph 7 in the # documentation and/or other materials provided with the distribution. # # 5. Redistributions in any form must be accompanied by information on how to # obtain complete source code for the OpenPBS software and any # modifications and/or additions to the OpenPBS software. The source code # must either be included in the distribution or be available for no more # than the cost of distribution plus a nominal fee, and all modifications # and additions to the Software must be freely redistributable by any party # (including Licensor) without restriction. # # 6. All advertising materials mentioning features or use of the Software must # display the following acknowledgment: # # "This product includes software developed by NASA Ames Research Center, # Lawrence Livermore National Laboratory, and Veridian Information # Solutions, Inc. # Visit www.OpenPBS.org for OpenPBS software support, # products, and information." # # 7. DISCLAIMER OF WARRANTY # # THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ANY EXPRESS # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT # ARE EXPRESSLY DISCLAIMED. # # IN NO EVENT SHALL VERIDIAN CORPORATION, ITS AFFILIATED COMPANIES, OR THE # U.S. GOVERNMENT OR ANY OF ITS AGENCIES BE LIABLE FOR ANY DIRECT OR INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # This license will be governed by the laws of the Commonwealth of Virginia, # without reference to its choice of law rules. ################################################################################ global env if { ![info exists env(DISPLAY)] } { puts "DISPLAY variable not set." exit 1 } set XPBSMON_VERSION 2.2 set libdir /usr/lib/xpbsmon set appdefdir /usr/lib/xpbsmon set bitmap_dir $libdir/bitmaps set helpdir $libdir/help set bindir $libdir/bin set auto_path [linsert $auto_path 0 $libdir] set auto_path [linsert $auto_path 0 .] set appDefaultsFile $appdefdir/xpbsmonrc set appname1 "xpbsmon" set appname "${appname1}${XPBSMON_VERSION}" if { [string compare $env(HOME) "/"] == 0 } { set sysinfo(rcFile) "/.${appname1}rc" } else { set sysinfo(rcFile) "$env(HOME)/.${appname1}rc" } set sysinfo(appname) $appname set BADPARAM 7000 set errmsg(BADPARAM) "A procedure has encountered a bad parameter." set sysinfo(infoListBoxWidth) 73 set sysinfo(infoListBoxHeight) 3 set sysinfo(DATA_UPDATE_SEQ) 0 set sysinfo(systemFrame) "" set sysinfo(LCK) 0 set sysinfo(PREFLCK) 0 set canvas(nodeColorINUSE_index) -1 Pref_Init $sysinfo(rcFile) $appDefaultsFile ## For items that are configurable, please add an entry on this array set preferences { \ {canvas(smallFg) smallForeground #150567} {canvas(smallBg) smallBackground #ffefdb} {canvas(smallBd) smallBorderWidth 2} {canvas(smallRelief) smallRelief raised} {canvas(smallScrollBd) smallScrollBorderWidth 2} {canvas(smallScrollBg) smallScrollBackground #ffefdb} {canvas(smallScrollRelief) smallScrollRelief sunken} {canvas(smallCanvasBg) smallCanvasBackground #ffefdb} {canvas(smallCanvasBd) smallCanvasBorderWidth 1} {canvas(smallCanvasRelief) smallCanvasRelief flat} {canvas(smallLabelBd) smallLabelBorderWidth 0} {canvas(smallLabelBg) smallLabelBackground #ffefdb} {canvas(smallLabelRelief) smallLabelRelief flat} {canvas(smallLabelFg) smallLabelForeground #150567} {canvas(smallLabelFont) smallLabelFont "-misc-fixed-bold-r-normal--13-100-100-100-c-70-iso8859-1"} {canvas(smallLabelFontWidth) smallLabelFontWidth 7} {canvas(smallLabelFontHeight) smallLabelFontHeight 13} {canvas(smallTextFont) smallTextFont "-misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-1"} {canvas(smallTextFontWidth) smallTextFontWidth 6} {canvas(smallTextFontHeight) smallTextFontHeight 9} {canvas(nodeColorNOINFO) nodeColorNOINFO black} {canvas(nodeColorFREE) nodeColorFREE green} {canvas(nodeColorINUSEshared) nodeColorINUSEshared "#98f5ff"} {canvas(nodeColorINUSEexclusive) nodeColorINUSEexclusive "#a0522d #1e90ff #a9a9a9 #8470ff #a020f0"} {canvas(nodeColorDOWN) nodeColorDOWN red} {canvas(nodeColorRSVD) nodeColorRSVD yellow} {canvas(nodeColorOFFL) nodeColorOFFL orange} {canvas(nodeColorTrough) nodeColorTrough white} {canvas(nodeColorSlider) nodeColorSlider red} {canvas(nodeColorExtendedTrough) nodeColorExtendedTrough blue} {canvas(nodeScaleFactor) nodeScaleFactor 1} {canvas(nodeMaxWidth) nodeBoxFullMaxWidth 350} {canvas(nodeMaxHeight) nodeBoxFullMaxHeight 100} {canvas(iconMaxWidth) nodeBoxIconMaxWidth 56} {canvas(iconMaxHeight) nodeBoxIconMaxHeight 56} {canvas(mirrorMaxWidth) nodeBoxMirrorMaxWidth 700} {canvas(mirrorMaxHeight) nodeBoxMirrorMaxHeight 400} {canvas(mirrorScaleFactor) nodeBoxMirrorScaleFactor 3} {canvas(medLabelFg) mediumLabelForeground #150567} {canvas(medLabelBg) mediumLabelBackground #cdc0b0} {canvas(medLabelBd) mediumLabelBorderWidth 4 } {canvas(medLabelRelief) mediumLabelRelief ridge} {canvas(medLabelFont) mediumLabelFont "-misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-1"} {canvas(medLabelFontWidth) mediumLabelFontWidth 8} {canvas(medLabelFontHeight) mediumLabelFontHeight 13} {canvas(medCanvasBd) mediumCanvasBorderWidth 1} {canvas(medCanvasBg) mediumCanvasBackground #cdc0b0} {canvas(medCanvasRelief) mediumCanvasRelief flat} {canvas(medScrollBd) mediumScrollBorderWidth 2} {canvas(medScrollBg) mediumScrollBackground #eedfcc} {canvas(medScrollRelief) mediumScrollRelief sunken} {canvas(medFg) mediumForeground #150567} {canvas(medBg) mediumBackground #cdc0b0} {canvas(medBd) mediumBorderWidth 10} {canvas(medRelief) mediumRelief ridge} {canvas(medTextFont) mediumTextFont "-misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-1"} {canvas(medTextFontWidth) mediumTextFontWidth 8} {canvas(medTextFontHeight) mediumTextFontHeight 13} {canvas(clusterMaxWidth) serverBoxMaxWidth 710} {canvas(clusterMaxHeight) serverBoxMaxHeight 600} {canvas(clusterNumBoxesPerRow) serverBoxMaxNumNodeBoxesPerRow 17} {canvas(bigBg) bigBackground #c8b9a6} {canvas(bigFg) bigForeground #150567} {canvas(bigBd) bigBorderWidth 2} {canvas(bigRelief) bigRelief raised} {canvas(bigActiveColor) bigActiveColor #9db2ff} {canvas(bigShadingColor) bigShadingColor #c7af92} {canvas(bigSelectorColor) bigSelectorColor #980517} {canvas(bigDisabledColor) bigDisabledColor #8f8e8d} {canvas(bigLabelBg) bigLabelBackground #c8b9a6} {canvas(bigLabelBd) bigLabelBorderWidth 1} {canvas(bigLabelRelief) bigLabelRelief raised} {canvas(bigLabelFont) bigLabelFont "-misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1"} {canvas(bigLabelFontWidth) bigLabelFontWidth 9} {canvas(bigLabelFontHeight) bigLabelFontHeight 15} {canvas(bigLabelFg) bigLabelForeground #150567} {canvas(bigCanvasBg) bigCanvasBackground #c8b9a6} {canvas(bigCanvasRelief) bigCanvasRelief flat} {canvas(bigCanvasBd) bigCanvasBorderWidth 1} {canvas(bigScrollBd) bigScrollBorderWidth 2} {canvas(bigScrollBg) bigScrollBackground #c8b9a6} {canvas(bigScrollRelief) bigScrollRelief sunken} {canvas(bigTextFont) bigTextFont "-misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1"} {canvas(bigTextFontWidth) bigTextFontWidth 9} {canvas(bigTextFontHeight) bigTextFontHeight 15} {canvas(systemMaxWidth) siteBoxMaxWidth 710} {canvas(systemMaxHeight) siteBoxMaxHeight 500} {canvas(systemNumBoxesPerRow) siteBoxMaxNumServerBoxesPerRow 10} {sysinfo(autoUpdateMins) autoUpdateMins 1} {sysinfo(autoUpdate) autoUpdate {CHOICE true false}} {sysinfo(systemName) siteInView ""} {sysinfo(rcSiteInfoDelimeterChar) rcSiteInfoDelimeterChar ";"} {sitesinfo sitesInfo ""} } Pref_Add $preferences prefLoadSitesInfo option add *Plain*foreground $canvas(bigFg) option add *Plain*background $canvas(bigBg) option add *Plain*borderWidth 0 option add *Plain*relief flat #option add *Plain*troughColor $canvas(bigBg) option add *Plain*troughColor $canvas(bigShadingColor) option add *Plain*activeForeground $canvas(bigFg) option add *Plain*insertBackground $canvas(bigFg) option add *Plain*selectForeground $canvas(bigFg) option add *Plain*selectBackground $canvas(bigActiveColor) option add *Plain*activeBackground $canvas(bigActiveColor) option add *Plain*selector $canvas(bigSelectorColor) option add *Plain*selectColor $canvas(bigSelectorColor) ;# for 4.0 option add *Plain*disabledForeground $canvas(bigDisabledColor) #option add *Plain*Scrollbar*troughColor $canvas(bigBg) option add *Plain*Scrollbar*troughColor $canvas(bigShadingColor) option add *Plain*Scrollbar*foreground $canvas(bigScrollBg) option add *Plain*Scrollbar*background $canvas(bigScrollBg) ;# 4.0 option add *Plain*Scrollbar*activeForeground $canvas(bigActiveColor) option add *Plain*Scrollbar*activeBackground $canvas(bigActiveColor) ;# 4.0 option add *Plain*highlightColor $canvas(bigBg) option add *Plain*highlightThickness 0 option add *Plain*font $canvas(bigTextFont) option add *BigLabel*foreground $canvas(bigLabelFg) option add *Big*foreground $canvas(bigFg) option add *Big*background $canvas(bigBg) option add *Big*borderWidth $canvas(bigBd) option add *Big*relief $canvas(bigRelief) option add *Big*troughColor $canvas(bigBg) option add *Big*activeForeground $canvas(bigFg) option add *Big*insertBackground $canvas(bigFg) option add *Big*selectForeground $canvas(bigFg) option add *Big*selectBackground $canvas(bigActiveColor) option add *Big*activeBackground $canvas(bigActiveColor) option add *Big*selector $canvas(bigSelectorColor) option add *Big*selectColor $canvas(bigSelectorColor) ;# for 4.0 option add *Big*disabledForeground $canvas(bigDisabledColor) option add *Big*Scrollbar*troughColor $canvas(bigBg) option add *Big*Scrollbar*foreground $canvas(bigScrollBg) option add *Big*Scrollbar*background $canvas(bigScrollBg) ;# 4.0 option add *Big*Scrollbar*activeForeground $canvas(bigActiveColor) option add *Big*Scrollbar*activeBackground $canvas(bigActiveColor) ;# 4.0 option add *Big*highlightColor $canvas(bigBg) option add *Big*highlightThickness 0 option add *BigLabel*foreground $canvas(bigLabelFg) option add *BigLabel*background $canvas(bigLabelBg) option add *BigLabel*borderWidth $canvas(bigLabelBd) option add *BigLabel*relief $canvas(bigLabelRelief) option add *BigLabel*font $canvas(bigLabelFont) option add *BigLabel*background $canvas(bigShadingColor) option add *BigCanvas*background $canvas(bigCanvasBg) option add *BigCanvas*borderWidth $canvas(bigCanvasBd) option add *BigCanvas*relief $canvas(bigCanvasRelief) option add *BigScrollbar*borderWidth $canvas(bigScrollBd) option add *BigScrollbar*background $canvas(bigScrollBg) option add *BigScrollbar*relief $canvas(bigScrollRelief) option add *Big*Scrollbar*troughColor $canvas(bigBg) option add *Big*Scrollbar*foreground $canvas(bigScrollBg) option add *Big*Scrollbar*activeForeground $canvas(bigActiveColor) option add *Big*Scrollbar*activeBackground $canvas(bigActiveColor) ;# 4.0 option add *Big*font $canvas(bigTextFont) option add *Medium*foreground $canvas(medFg) option add *Medium*background $canvas(medBg) option add *Medium*borderWidth $canvas(medBd) option add *Medium*relief $canvas(medRelief) option add *Medium*font $canvas(medTextFont) option add *MediumLabel*foreground $canvas(medLabelFg) option add *MediumLabel*background $canvas(medLabelBg) option add *MediumLabel*borderWidth $canvas(medLabelBd) option add *MediumLabel*relief $canvas(medLabelRelief) option add *MediumLabel*font $canvas(medLabelFont) option add *MediumCanvas*background $canvas(medCanvasBg) option add *MediumCanvas*borderWidth $canvas(medCanvasBd) option add *MediumCanvas*relief $canvas(medCanvasRelief) option add *MediumScrollbar*borderWidth $canvas(medScrollBd) option add *MediumScrollbar*background $canvas(medScrollBg) option add *MediumScrollbar*relief $canvas(medScrollRelief) option add *Medium*Scrollbar*troughColor $canvas(medBg) option add *Medium*Scrollbar*foreground $canvas(medScrollBg) option add *Medium*Scrollbar*activeForeground $canvas(bigActiveColor) option add *Medium*Scrollbar*activeBackground $canvas(bigActiveColor) ;# 4.0 option add *Small*foreground $canvas(smallFg) option add *Small*background $canvas(smallBg) option add *Small*borderWidth $canvas(smallBd) option add *Small*relief $canvas(smallRelief) option add *Small*font $canvas(smallTextFont) option add *SmallLabel*foreground $canvas(smallLabelFg) option add *SmallLabel*background $canvas(smallLabelBg) option add *SmallLabel*borderWidth $canvas(smallLabelBd) option add *SmallLabel*relief $canvas(smallLabelRelief) option add *SmallLabel*font $canvas(smallLabelFont) option add *SmallCanvas*background $canvas(smallCanvasBg) option add *SmallCanvas*borderWidth $canvas(smallCanvasBd) option add *SmallCanvas*relief $canvas(smallCanvasRelief) option add *SmallScrollbar*borderWidth $canvas(smallScrollBd) option add *SmallScrollbar*background $canvas(smallScrollBg) option add *SmallScrollbar*relief $canvas(smallScrollRelief) #option add *Small*Scrollbar*troughColor $canvas(smallBg) option add *Small*Scrollbar*troughColor $canvas(medBg) option add *Small*Scrollbar*foreground $canvas(smallScrollBg) option add *Small*Scrollbar*activeForeground $canvas(bigActiveColor) option add *Small*Scrollbar*activeBackground $canvas(bigActiveColor) ;# 4.0 option add *CmdFrame*background $canvas(bigShadingColor) option add *CmdFrame*Button.foreground $canvas(bigFg) option add *CmdFrame*Button.background $canvas(bigBg) set dialog(mainWindow) ".main" set activeWindow($dialog(mainWindow)) 1 if {[string compare $dialog(mainWindow) "."] != 0} { toplevel $dialog(mainWindow) -class Plain wm withdraw . } else { set dialog(mainWindow) "" } # Close the stderr channel so transient messages are not printed out terminal close stderr build_main_window $dialog(mainWindow) set_wmgr $dialog(mainWindow) if {$sysinfo(autoUpdate)} { incr sysinfo(DATA_UPDATE_SEQ) if { [string compare $sysinfo(cmdButtonUpdAuto) ""] != 0 } { $sysinfo(cmdButtonUpdAuto) configure \ -background $canvas(bigActiveColor) } after [expr round($sysinfo(autoUpdateMins) * 60000)] data_auto_update \ $sysinfo(DATA_UPDATE_SEQ) }