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

📄 lmconfig.tcl

📁 windml3.0.3
💻 TCL
📖 第 1 页 / 共 2 页
字号:
# LMCONFIG.TCL - Setup procedures for implementing user lmConfig wizard page
#
# Copyright 1999-2003 Wind River Systems, Inc
#
# modification history
# --------------------
# 02f,14feb03,bjl  modified for ELM page sequence, modified floating license
#                  server wording.  
# 02e,29jan03,wmd  Implement for ALI 2.0.
# 02d,17may02,wmd  Fix text formatting and grammatical errors.
# 02c,01may02,j_w  Fixed SPR 75403 - modified warning msg if no hosts to 
#                  select 
# 02b,05mar02,bwd  Modified SETUP to be non-tornado centric
# 02a,12jun01,j_w  Modified for Tornado 2.2
# 01p,07may01,j_w  Removed "Feature ID" in the detail box
# 01o,02mar01,wmd  Alphabetize the list of available hosts.
# 01n,22may00,bwd  SPR 31003 - set a variable to return to DBQUERY page if
#                  user click cancel while retrieving data from database
# 01m,17mar00,j_w  Fixed typo
# 01l,14feb00,wmd  Change all references to prodCode to featureId.
# 01k,04feb00,j_w  Enable the next button if at least one host is selected
# 01j,03feb00,wmd  Add dialog box to tell user that license management has not
#                  been configured yet.
# 01i,06jan00,bwd  No test automation for command line SETUP
# 01h,17dec99,clc  change  switch statement patterns
# 01g,30nov99,clc  add text mode
# 01f,30nov99,wmd  Add port information in the details dialog.
# 01e,24nov99,bwd  Added sections for automatic LM Installation
# 01d,23nov99,bwd  Fixed typos
# 01c,22nov99,wmd  Add code to remove lmregister page if on Unix.
# 01b,17nov99,wmd  Add logic to implement the page.
# 01a,29oct99,wmd  written
#

global infoStr

#############################################################################
#
# pageCreate(lmConfig) - displays license management configuration 
#                        information for the user to select
#
# This procedure will display possible license management information and 
# allows the user to modify it to suit his needs
#
# SYNOPSIS
# .tS
# pageCreate(lmConfig)
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc pageCreate(lmConfig) {} {
    global ctrlVals
    global setupVals
    global lmVals lmHostRecs lmHostRecsLen
    global cancelDBQUERY

    # if user clicks Cancel while retrieving data from
    # Wind River database, return to DBQUERY page
    if { $cancelDBQUERY } {
        set cancelDBQUERY 0
        backCallback
        return 1
    }

    # obtain user's LM server information

    if { [isGUImode] } {

        lmConfigValuesGet

        set ctrlVals(volatileFrm) [list \
                [list label -name message1 \
                            -title [strTableGet LMCONFIG_MSG_1] \
                            -x 99 -y 10 -w 206 -h 29] \
                [list label -name availServersLabel \
                            -title [strTableGet LMCONFIG_AVAIL_SERVERS_LABEL] \
                            -x 99 -y 41 -w 66 -h 10] \
                [list label -name selectedServersLabel \
                            -title [strTableGet LMCONFIG_SEL_SERVERS_LABEL] \
                            -x 200 -y 41 -w 66 -h 10] \
                [list list -name lmAvailServers -multisel \
                            -callback onLmAvailServers \
                            -x 99 -y 54 -w 69 -h 90] \
                [list list -name lmSelServers -multisel \
                            -callback onLmSelServers \
                            -x 200 -y 54 -w 69 -h 90] \
                [list button -name lmAddServers -title "-->" \
                            -callback onLmAddServers \
                            -x 173 -y 75 -w 21 -h 14] \
                [list button -name lmRemoveServers -title "<--" \
                            -callback onLmRemoveServers \
                            -x 173 -y 93 -w 21 -h 14] \
                [list button -name lmUp -title "Up" \
                            -callback onLmUp \
                            -x 275 -y 75 -w 25 -h 14] \
                [list button -name lmDown -title "Down" \
                            -callback onLmDown \
                            -x 275 -y 93 -w 25 -h 14] \
                [list button -name lmDetailsButton -title "Details..." \
                            -callback onLmDetails \
                            -x 99 -y 138 -w 48 -h 14] \
                [list label -name message2 \
                            -title [strTableGet LMCONFIG_MSG_2] \
                            -x 99 -y 157 -w 206 -h 13] \
        ]

        set w [dlgFrmCreate [strTableGet LMCONFIG_TITLE]]

        set lmVals(lmHostOrder) {}

        # enable the next button in case it was disabled from below

        controlEnable $w.nextButt 0

        # disable the controls for add/remove, up/down

        controlEnable $w.lmAddServers 0
        controlEnable $w.lmRemoveServers 0
        controlEnable $w.lmUp 0
        controlEnable $w.lmDown 0
        controlEnable $w.lmDetailsButton 0
 
        # fill in the available servers

        controlValuesSet $w.lmAvailServers $lmVals(lmAvailHosts)

        if {[isUnix]} {
             # remove the lmregister page
             pageRemove lmRegister
        }

        # if there are no servers available, warn the user to configure 
        # or exit Setup
      
        if {$lmVals(lmAvailHosts) == ""} {
            notConfigDlg
            controlEnable $w.nextButt 0            
            if {$setupVals(ELMUser) == 1} {
                set setupVals(cancel) 1
                applicationExit
            }
        }

        # test automation
    
        if { $ctrlVals(useInputScript) } {
            for {set ix 0} {$ix < [llength $lmVals(lmAvailHosts)]} {incr ix} {
                lappend lmVals(lmHostOrder) [lindex $lmVals(lmAvailHosts) $ix]
            }
            autoSetupLog "User License Management Configuration Page: skipped"
            autoSetupLog "\tSelected Server(s): $lmVals(lmHostOrder)"
            nextCallback
        }

    } else {

        # text mode 

        lmConfigValuesGet

        if {[isUnix]} {
             # remove the lmregister page
             pageRemove lmRegister
        }
        
        set lmVals(lmHostSelected) {}

        # prompt for list of license servers
        while (1) {
            
            # print page header

            printPageTitle [strTableGet LMCONFIG_TITLE]
            puts "[strTableGet LMCONFIG_MSG_1_TEXT]\n"

            # if available servers is empty, warn user	    

            if {$lmVals(lmAvailHosts) == ""} {
                puts "[strTableGet LMCONFIG_NO_CONFIG_WARNING]"

                while (1) {
                    set ret [prompt [strTableGet LMCONFIG_NO_CONFIG_ACCEPT_MSG]]
                    switch -regexp -- $ret {
                        "^-$" {
                            backCallback
                            return 0
                        }

                        "[eE][xX][iI][tT]" {
                            return 0
                        }

                        default {
                            puts "License Management is not configured, please \
                                backup to the previous page\nor exit Setup.\n"
                        }
                    }
                }
            }

            # display available servers

            puts [strTableGet LMCONFIG_AVAIL_SERVERS_LABEL]
            set i 1
            foreach host $lmVals(lmAvailHosts) {
                puts "$i - $host"
                incr i
            }
            puts ""

            # display selected servers

            puts [strTableGet LMCONFIG_SEL_SERVERS_LABEL]
            if { $lmVals(lmHostSelected) == "" } {
                puts "No server selected"
            } else {
                foreach server $lmVals(lmHostSelected) {
                    puts $server
                }
            }
            puts ""
        
            set ret [prompt [strTableGet LMCONFIG_SERVER_ACCEPT_MSG]]
            switch -regexp -- $ret {
                "^-$" {
                    backCallback
                    return 0
                }
                "^[0-9]+([ ][0-9]+)*$" {
                    selectServers $ret
                }
                "[eE][xX][iI][tT]" {
                    return 0
                }
                "^$" {
                    set lmVals(lmHostOrder) $lmVals(lmHostSelected)
                    nextCallback
                    return 0
                }
                default {
                    puts "The list you have entered is invalid."
                }
            }
        }
    }   
}

#############################################################################
#
# notConfigDlg - dialog to inform user that license management is not 
#       yet configured.
#
#
# SYNOPSIS
# .tS
# notConfigDlg
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#
proc notConfigDlg {} {
    global setupVals

    if {$setupVals(ELMUser) == 1} { 
        dialog ok_with_title "Setup" [strTableGet LMCONFIG_NO_CONFIG_ELM]
    } else {
        dialog ok_with_title "Setup" [strTableGet LMCONFIG_NO_CONFIG]
    }
}

#############################################################################
#
# lmConfigValuesGet - get LM server configuration
#
# This procedure will get the necessary LM server information for this project
#
# SYNOPSIS
# .tS
# lmConfigValuesGet
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc lmConfigValuesGet {} {
    global lmVals lmHostRecs lmHostRecsLen lmHostFeaturesNum

    set lmVals(lmHostSelected) {}
    set lmVals(lmHostOrder) {}
    set lmVals(lmAvailHosts) {}
    for {set ix 0} {$ix < $lmHostRecsLen} {incr ix} {
        set hostRec [split [lindex $lmHostRecs $ix] |]
        set hostName [lindex $hostRec 0]
        set numberOfFeatures [lindex $lmHostFeaturesNum $ix]

        # For each host, see if it has at least 1 floating license
        # then add to list of lmAvailHosts
        
        for {set ixf 0} {$ixf < $numberOfFeatures} {incr ixf} {
            if {[lmLicProdInfoGet licFLAllocated $hostName $ixf] > 0} {
                lappend lmVals(lmAvailHosts) $hostName
                break
            }
        }
    }
    set lmVals(lmAvailHosts) [lsort $lmVals(lmAvailHosts)]
  
}

#############################################################################
#
# selectServers - add servers 
#
# This procedure will get the necessary LM server information for this project
#
# SYNOPSIS
# .tS
# selectServers
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#
proc selectServers {servList} {

    global lmVals

    set lmVals(lmHostSelected) {}

    foreach index $servList {
        lappend lmVals(lmHostSelected) \
                 [lindex $lmVals(lmAvailHosts) [expr $index - 1]]
    }

}
        

#############################################################################
#
# onLmAvailServers - get input from list box control for available servers
#
# This procedure will gather the selected servers chosen by the user.
#
# SYNOPSIS
# .tS
#  onLmAvailServers
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc onLmAvailServers {} {
    global lmVals

    set args [controlEventGet wizardDialog.lmAvailServers]
    set lmVals(lmHostSelected) {}

    set event [lindex $args 0]
    set args [controlSelectionGet wizardDialog.lmAvailServers -string]
    if {[string match $event "selchange"] && $args != ""} {
        set args [split $args]
        for {set ix 0} {$ix < [llength $args]} {incr ix} {
            lappend lmVals(lmHostSelected) [lindex $args $ix]
        }
        controlEnable wizardDialog.lmDetailsButton 1
        controlEnable wizardDialog.lmAddServers 1
    } else {
        set lmVals(lmHostSelected) {}
        controlEnable wizardDialog.lmDetailsButton 0
    }
}

#############################################################################
#
# onLmSelServers - get user selected servers from the list control
#
# This procedure will gather the user selected servers from the list control
#
# SYNOPSIS
# .tS
# onLmSelServers
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc onLmSelServers {} {
    global lmVals

    set args [controlEventGet wizardDialog.lmSelServers]
    set lmVals(lmHostSelected) {}

    set event [lindex $args 0]
    set args [controlSelectionGet wizardDialog.lmSelServers -string]
    if {[string match $event "selchange"] && $args != ""} {
        set args [split $args]
        for {set ix 0} {$ix < [llength $args]} {incr ix} {
            lappend lmVals(lmHostSelected) [lindex $args $ix]
        }
        controlEnable wizardDialog.lmDetailsButton 1
        controlEnable wizardDialog.lmRemoveServers 1
     } else {
        set lmVals(lmHostSelected) {}
        controlEnable wizardDialog.lmDetailsButton 0
    }
}

#############################################################################
#
# licDetailsDlgInit - inits display data
#
# This procedure will display server information for the selected server(s)
#
# SYNOPSIS
# .tS
# licDetailsDlgInit
# .tE
#
# PARAMETERS: N/A

⌨️ 快捷键说明

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