⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cluster.tk

📁 OpenPBS
💻 TK
📖 第 1 页 / 共 4 页
字号:
        set array [string trimleft $clusterframe .]        global $array        if {![info exists ${array}(cpus_assn)]} {                return ""        }        return [set ${array}(cpus_assn)]}proc clusterVprocsAssnPut {clusterframe vprocs_assn} {        set array [string trimleft $clusterframe .]        global $array        set ${array}(vprocs_assn) $vprocs_assn}proc clusterVprocsAssnGet {clusterframe} {        set array [string trimleft $clusterframe .]        global $array        if {![info exists ${array}(vprocs_assn)]} {                return ""        }        return [set ${array}(vprocs_assn)]}proc clusterCpusMaxPut {clusterframe cpus_max} {        set array [string trimleft $clusterframe .]        global $array        set ${array}(cpus_max) $cpus_max}proc clusterCpusMaxGet {clusterframe} {        set array [string trimleft $clusterframe .]        global $array        if {![info exists ${array}(cpus_max)]} {                return ""        }        return [set ${array}(cpus_max)]}proc clusterPrint clusterframe {	if {[string compare $clusterframe ""] == 0} {		return	}        puts "cluster frame: $clusterframe===================================>"        puts "Name: [clusterNameGet $clusterframe]"        puts "Canvas: [clusterCanvasGet $clusterframe]"        puts "Canvas Frame: [clusterCanvasFrameGet $clusterframe]"        puts "Refresh Flag: [clusterRefreshGet $clusterframe]"        puts "Label Frame: [clusterLabelFrameGet $clusterframe]"        puts "Label: [clusterLabelGet $clusterframe]"        puts "Label Text: [clusterLabelTextGet $clusterframe]"        puts "FooterHeader: [clusterFooterHeaderGet $clusterframe]"        puts "StatusBar: [clusterStatusBarGet $clusterframe]"           puts "StatusBar Frame: [clusterStatusBarFrameGet $clusterframe]"        puts "Xscroll: [clusterXscrollGet $clusterframe]"        puts "Xscroll Frame: [clusterXscrollFrameGet $clusterframe]"        puts "Yscroll: [clusterYscrollGet $clusterframe]"        puts "Yscroll Frame: [clusterYscrollFrameGet $clusterframe]"        puts "Display Width: [clusterDisplayWidthGet $clusterframe]"        puts "Display Height: [clusterDisplayHeightGet $clusterframe]"        puts "Canvas Width: [clusterCanvasWidthGet $clusterframe]"        puts "Canvas Height: [clusterCanvasHeightGet $clusterframe]"        puts "ScrollRegion's Width: [clusterScrollRegionWidthGet $clusterframe]"        puts "ScrollRegion's Height: [clusterScrollRegionHeightGet $clusterframe]"        puts "Xpos: [clusterXposGet $clusterframe]"        puts "Ypos: [clusterYposGet $clusterframe]"        puts "Next Frame: [clusterNextGet $clusterframe]"        puts "Offset Width: [clusterOffsetWidthGet $clusterframe]"        puts "Main Frame: [clusterMainFrameGet $clusterframe]"        puts "System Frame: [clusterSystemFrameGet $clusterframe]"        puts "Nodes List: [clusterNodesListGet $clusterframe]"        puts "Total Pool: [clusterTotPoolGet $clusterframe]"        puts "Use Pool: [clusterUsePoolGet $clusterframe]"        puts "Avail Pool: [clusterAvailPoolGet $clusterframe]"        puts "Offline Pool: [clusterOfflinePoolGet $clusterframe]"        puts "Down Pool: [clusterDownPoolGet $clusterframe]"        puts "Reserved Pool: [clusterReservedPoolGet $clusterframe]"        puts "Unknown Pool: [clusterUnkPoolGet $clusterframe]"        puts "Cpus Assn: [clusterCpusAssnGet $clusterframe]"        puts "Virtual Processors Assn: [clusterVprocsAssnGet $clusterframe]"        puts "Cpus Max: [clusterCpusMaxGet $clusterframe]"}proc clusterCreate {frame clusterName clusterLabel nlist footerHeader viewType} {        global canvas        set retwidth 0        set retheight 0        clusterNamePut $frame $clusterName        frame $frame -class Medium        frame $frame.l -class MediumLabel -borderwidth 0 -relief flat        frame $frame.m -class MediumCanvas -borderwidth 0 -relief flat        frame $frame.m.c -borderwidth 0        frame $frame.m.y -borderwidth 0        frame $frame.m.x -borderwidth 0        frame $frame.s  -class MediumLabel -borderwidth 0 -relief flat        label $frame.l.label -text $clusterLabel \                        -justify center        set labelWidth [expr \                         2*$canvas(medBd) + 2*$canvas(medLabelBd) + \                $canvas(medLabelFontWidth)*[string length $clusterLabel]]        set labelHeight [expr $canvas(medBd) + 2*$canvas(medLabelBd) \                                + $canvas(medLabelFontHeight)]        clusterLabelTextPut $frame $clusterLabel        label $frame.s.label -font $canvas(medLabelFont) \                                -text $footerHeader \                                -justify center        set footerWidth [expr \                                2*$canvas(medBd) + \                                2*$canvas(medLabelBd) + \                   $canvas(medLabelFontWidth)*[string length $footerHeader]]        set footerHeight [expr 2*$canvas(medLabelBd) + \                               $canvas(medBd) + \                               2*$canvas(medLabelFontHeight)]        canvas $frame.m.c.canvas -confine 1        set canvasFrameWidth [expr $canvas(medBd) + \                                   2*$canvas(medCanvasBd)]        set canvasFrameHeight [expr 2*$canvas(medCanvasBd)]        set totwidth 0        set totheight 0        set x1 0        set y1 0        set pw 0        set ph 0	if {$footerWidth > $labelWidth} {        	set maxWidth $footerWidth	} else {        	set maxWidth $labelWidth	}        clusterNodesListPut $frame $nlist        set llen [llength $nlist]	set prevNode ""	set rowNodes ""        clusterTotPoolPut $frame $llen        clusterUsePoolPut $frame 0        clusterAvailPoolPut $frame 0        clusterOfflinePoolPut $frame 0        clusterDownPoolPut $frame 0        clusterReservedPoolPut $frame 0        clusterUnkPoolPut $frame 0        clusterCpusAssnPut $frame 0        clusterVprocsAssnPut $frame 0        clusterCpusMaxPut $frame 0	set sysframe [clusterSystemFrameGet $frame]        set j 0        for {set i 0} {$i < $llen} {incr i} {                set nodeinfo [lindex $nlist $i]                set nodename [lindex $nodeinfo 0]                set nodelabel $nodename                set nodetype [lindex $nodeinfo 1]		clusterStatsUpdate $frame \			[systemNodeStatusGet $sysframe $nodename] +                set pos [nodeCreate $frame.m.c.$i $nodename $nodelabel \                                         	$frame $nodetype $viewType]                set w [lindex $pos 0]                set h [lindex $pos 1]                if { $i == 0 } {			set rowNodes $frame.m.c.$i                        incr totwidth $w                        incr totheight $h                } elseif { [expr $j % $canvas(clusterNumBoxesPerRow)] == 0 || \                           [expr $totwidth + $w] > $canvas(clusterMaxWidth) } {		                        set rowOffset [expr ($maxWidth - $totwidth) / 2]                        if {$rowOffset > 0} {                                foreach fr $rowNodes {                                        nodeOffsetWidthPut $fr $rowOffset                                }                        }                        set rowNodes $frame.m.c.$i                        set x1 0                        incr y1 $ph                        incr totheight $h                        if {$totwidth > $maxWidth} {                                set maxWidth $totwidth                        }                        set totwidth $w                        set j 0                } else {			lappend rowNodes $frame.m.c.$i                        # same row                        incr x1 $pw                        incr totwidth $w			if {[string compare $prevNode ""] != 0} {                                nodeNextPut $prevNode $frame.m.c.$i                        }                }                pack forget $frame.m.c.$i                set wid [$frame.m.c.canvas create window $x1 $y1 \                                 -window $frame.m.c.$i -anchor nw \                                 -tags $frame.m.c.$i -width $w -height $h]                nodeXposPut $frame.m.c.$i $x1                nodeYposPut $frame.m.c.$i $y1                set pw $w                set ph $h		set prevNode $frame.m.c.$i                incr j       }        if {[string compare $rowNodes ""] != 0} {                set rowOffset [expr ($maxWidth - $totwidth) / 2]                if {$rowOffset > 0} {                        foreach fr $rowNodes {                                nodeOffsetWidthPut $fr $rowOffset                        }                }        }        if {$maxWidth > $totwidth} {                set totwidth $maxWidth        }        scrollbar $frame.m.x.xscroll -orient horizontal \                        -width $canvas(medLabelFontHeight) \                        -background $canvas(medScrollBg) \                        -relief $canvas(medScrollRelief) \                        -borderwidth $canvas(medScrollBd) \                        -command [list $frame.m.c.canvas xview]        set scrollHeight [expr \                2*[lindex [$frame.m.x.xscroll configure -borderwidth] end] \                + [lindex [$frame.m.x.xscroll configure -width] end]]        $frame.m.x configure -height $scrollHeight        scrollbar $frame.m.y.yscroll -orient vertical \                                -width $canvas(medLabelFontHeight) \                                -background $canvas(medScrollBg) \                                -relief $canvas(medScrollRelief) \                                -borderwidth $canvas(medScrollBd) \                                -command [list $frame.m.c.canvas yview]        set scrollWidth [expr \                $canvas(medBd) + \                2*[lindex [$frame.m.y.yscroll configure -borderwidth] end]  \               + [lindex [$frame.m.y.yscroll configure -width] end]]        $frame.m.y configure -width $scrollWidth        clusterFooterHeaderPut $frame $footerHeader        clusterLabelPut $frame $frame.l.label        clusterLabelFramePut $frame $frame.l        clusterCanvasPut $frame $frame.m.c.canvas        clusterCanvasFramePut $frame $frame.m.c        clusterXscrollPut $frame $frame.m.x.xscroll        clusterXscrollFramePut $frame $frame.m.x        clusterYscrollPut $frame $frame.m.y.yscroll        clusterYscrollFramePut $frame $frame.m.y        clusterStatusBarPut $frame $frame.s.label        clusterStatusBarFramePut $frame $frame.s        clusterMainFramePut $frame $frame.m        clusterScrollRegionWidthPut $frame $totwidth        set scrollRegionWidth $totwidth        clusterScrollRegionHeightPut $frame $totheight        set scrollRegionHeight $totheight        clusterXposPut $frame 0        clusterYposPut $frame 0        clusterNextPut $frame ""        clusterOffsetWidthPut $frame 0        clusterRefreshPut $frame 0        set retwidth [expr $canvasFrameWidth + $totwidth + $scrollWidth]        if {$labelWidth > $retwidth && \                $labelWidth > $footerWidth} {                set retwidth $labelWidth        } elseif {$footerWidth > $retwidth && \                $footerWidth > $labelWidth} {                set retwidth $footerWidth        }        clusterCanvasWidthPut $frame $totwidth        clusterDisplayWidthPut $frame $retwidth        set canvWidth $totwidth        if { $retwidth  >  $canvas(clusterMaxWidth) } {                set canvWidth  [expr $canvas(clusterMaxWidth) - \                                     $canvasFrameWidth - $scrollWidth]                if {$canvWidth > 0} {                        clusterDisplayWidthPut $frame $canvas(clusterMaxWidth)                        clusterCanvasWidthPut $frame $canvWidth                        set retwidth $canvas(clusterMaxWidth)                }        }        set retheight [expr $labelHeight + $canvasFrameHeight + $totheight + \                                                $scrollHeight + $footerHeight]        clusterCanvasHeightPut $frame $totheight        clusterDisplayHeightPut $frame $retheight        set canvHeight $totheight        if { $retheight >  $canvas(clusterMaxHeight) } {                set canvHeight [expr    $canvas(clusterMaxHeight) - \                                        $labelHeight - $canvasFrameHeight - \                                        $scrollHeight - $footerHeight]                if {$canvHeight > 0} {                        clusterDisplayHeightPut $frame $canvas(clusterMaxHeight)                        clusterCanvasHeightPut $frame $canvHeight                        set retheight $canvas(clusterMaxHeight)                }        }      set canvWidth [clusterCanvasWidthGet $frame]      set canvHeight [clusterCanvasHeightGet $frame]      $frame.m.c.canvas configure -width $canvWidth -height $canvHeight \                -xscrollcommand [list $frame.m.x.xscroll set] \                -yscrollcommand [list $frame.m.y.yscroll set] \                -scrollregion [list 0 0 $scrollRegionWidth $scrollRegionHeight]        if {$canvWidth > 0 && $scrollRegionWidth > $canvWidth} {                pack $frame.m.x.xscroll -side bottom -fill x -padx 0 -pady 0 \                                                              -ipadx 0 -ipady 0        }        if {$canvHeight > 0 && $scrollRegionHeight > $canvHeight} {                pack $frame.m.y.yscroll -side right -fill y -padx 0 -pady 0 \                                                   -ipadx 0 -ipady 0 -anchor nw        }        pack $frame.l.label -fill both -expand true -padx 0 -pady 0 \                                -ipadx 0  -ipady 0        pack $frame.m.c.canvas -fill both -expand true -padx 0 -pady 0 \                                -ipadx 0 -ipady 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -