📄 liccfg.tcl
字号:
# LICCFG.TCL - Setup procedures for implementing license configuration page## Copyright 1999-2003 Wind River Systems, Inc## modification history# --------------------# 03p,15may03,bjl changed node locked licensing to use table.# 03o,29apr03,bjl changed to table to accomodate more features; grammar fix # (spr 87804). # 03n,20feb03,bjl do not display floating dialog if ELM for sysadmin;# modified sysadmin license wording; fixed error flow# after dbquery for sysadmin. # 03m,14feb03,bjl fixed error dialog display for nodelock reload, modifed# page sequence for db error for ELM.# 03l,05feb03,wmd Change back to using prodVer for the release set.# 03k,02feb03,wmd Need to use setupVals(torVer) for correct releaseSetVersion# number.# 03j,28jan03,wmd Modify lmValsPopulate proc to use ALI 2.0.# 03i,18sep02,bjl select licensed product by default only if seats are# available (spr 80884). # 03h,30jul02,wmd Remvoe the Beta period limit of 10 licenses warning.# 03g,24apr02,j_w Added detection for existing NL license (SPR 76046)# 03f,20mar02,bwd SPR 72885: add pop-up dialog to warn user to install# correct number of floating licenses, not more# 03e,11mar02,bwd For Beta period, limit to 10 licenses per host# 03d,11mar02,bwd SPR 73927: modified default number of seats requested to 1# 03c,08mar02,bwd Adjusted height for each row of products# 03b,05mar02,bwd Modified SETUP to be non-tornado centric# 03a,12jun01,j_w Added for Tornado 2.2# 03a,22nov00,bwd SPR 35941: added a dialog to prompt user to exit if no more# licenses available for configuration.# 02z,01nov00,j_w fixed summary page text display# 02y,30oct00,j_w Added proc rmPageList to removed the correct page # list depends on the value of setupVals(lmInstType) # if transaction is canceled# 02x,02oct00,wmd Update a user message for clarity.# 02w,19sep00,bwd SPR 34462: reconstruct hostRec for commit request in proc# licConfigCallback# 02v,25aug00,bwd Fixed TCL error - infinite loop when enter invalid input# 02u,30jul00,wmd Add warning about consequences of configuring LM.# 02t,07jul00,j_w fixed typo# 02s,28jun00,bwd Changed host checking to use windHostTypeGet instead of# env(WIND_HOST_TYPE)# 02r,20jun00,wmd Remove display of setupicon for linux host.# 02q,02jun00,bwd Changed all "dialog ok" to use "dialog ok_with_title"# 02p,31may00,bwd SPR 31564: uncheck boxes by default for node locked if# reload# 02o,19may00,bwd Small bug fix in TEXT mode - SETUP should not exit when# user cancel the commit request.# 02n,18may00,bwd SPR 31030 - modified codes to match new page list when# calling sendToALD# 02m,27apr00,j_w Constructed hostRec after lmPort is being set# 02l,19apr00,bwd Added a workaround to skip license configuration error# checking for Reload until the database is ready# 02k,13apr00,bwd Fixed typo on variable names. Fixed error handling and# page displays when CGI errors arise.# 02j,13apr00,j_w Updated parameters for licFileConfig and ackCommit# 02j,13apr00,bwd Added a column on License Config page to display the no. of# licenses already allocated for current host.# 02i,12apr00,bwd Added codes to check that user cannot enter 0 for all# features if first time configuring on this host# 02h,27mar00,bwd Fixed error handling for LM Configuration when requesting# for licenses more than available.# 02g,24mar00,bwd Fixed TEXT mode to correctly display License Config Summary# page# 02f,24mar00,bwd Removed host name from the column headings on License# Configuration pages. Fixed default value to 0 for reload.# 02e,23mar00,bwd Fixed lmValsPopulate to correctly populate lmVals with# the new format of data coming in from CGI. Changed codes # to manipulate new lmVals structure.# 02d,02mar00,bwd Changed the title for the License Config summary page to # fit the dialog box. Fixed isLMFeaturesRequestedNull to # correctly handle inputs for both GUI and TEXT mode# 02c,14feb00,wmd Change all references to prodCode to featureId.# 02b,03feb00,j_w Remove commit in the parameter list of commit request call# 02a,02feb00,j_w Add licServPort in lmValsPopulate# 01z,01feb00,bwd Added a global variable licServPort to store port number# from the license file# 01y,31jan00,bwd Fixed error handling for test automation - suppress exit# confirmation dialog# 01x,27jan00,bwd Fixed error handlings for test automation and cleaned up# codes# 01w,25jan00,j_w move lmValsPopulate to dbQuery page# 01v,21jan00,j_w Set lmVals(lmPort) to default port number. # 01v,21jan00,bwd Added codes to display this page for TEXT MODE (Phase 3)# 01u,20jan00,bwd Added codes to display this page for TEXT MODE (Phase 2)# 01t,19jan00,wmd Remove any requests to rollback database, no longer# required.# 01s,18jan00,bwd Added codes to display this page for TEXT MODE# 01r,06jan00,bwd No test automation for command line SETUP# 01q,17dec99,clc change switch statement patterns# 01p,14dec99,wmd Add icon to wait banner.# 01p,02dec99,clc add text mode# 01o,23nov99,wmd Add output to setup.log to log license file that is written# to disk.# 01n,22nov99,bwd Skipped license confirm display and more work on automating# Floating License installation# 01m,22nov99,bwd Corrected TCL error for auto floating license installation# 01l,19nov99,bwd Added sections for automatic LM installation# 01k,19nov99,wmd Fix the Exceeds number of license error dialog to display# ammended value.# 01j,17nov99,wmd Remove spaces from the commit command.# 01i,15nov99,wmd Add more error handling.# 01h,13nov99,wmd Add error handling.# 01g,09nov99,wmd Need to add logic for the configuration of LM.# 01f,03nov99,wmd Add code to send request to the database.# 01e,02nov99,wmd Use the real data from the database.# 01d,01nov99,wmd Fix the node locked license configuration screen to match# the design docs.# 01c,31oct99,wmd Modify wording, and add edit boxes.# 01b,30oct99,wmd Add a dlgTitle for nodedLock license Configuration.# 01a,07Oct99,j_w written#global returnValueglobal licServPort############################################################################### pageCreate(licConfig) - Configure licenses on current host## This procedure will configure license on current host## SYNOPSIS# .tS# pageCreate(licConfig)# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc pageCreate(licConfig) {} { global ctrlVals setupVals lmVals lmHostFeaturesNum global licConfigReturn global returnValue # reset values that control the table or user input # controls set ctrlVals(tableUpdate) 0 set ctrlVals(inputUpdate) 0 if { $setupVals(lmInstType) == "floating" } { set isFloatLic 1 } else { set isFloatLic 0 } if { [isGUImode] } { if {$isFloatLic && $setupVals(ELMUser) != 1} { # Warn user to configure number of floating licenses correctly # (according to what is purchased) dialog ok_with_title "Licenses Configuration" \ [strTableGet LICCFG_CONFIGURE_LICENSES_WARN] } # hide the setup bitmap to allow more space on the page controlHide $ctrlVals(mainWindow).bitmap 1 # set up constants to be used for control dimensions and spacing # dimensions for license display with table set XCOL1 10 set XCOL2 90 set XCOL3 135 set XCOL4 175 set XCOL5 215 set XCOL6 260 set Y 24 set WIDTH 40 set FEATWIDTH 60 set HTHDR 25 set FEAT_HDR_HT [expr $Y + $HTHDR + 7] set HT 11 set TXTWIDTH 19 set INDENT 8 set TABLEWIDTHS {83 38 40 42 42 36} # if reload of current license file, change the labels appropriately if {$lmVals(reload)} { set reloadY 7 set reloadH $HT set ctrlVals(volatileFrm) [list \ [list label -name Label_1 \ -title [strTableGet LICCFG_RELOAD_1] \ -x $XCOL1 -y $reloadY -w 300 -h $reloadH] \ [list label -name label_3 \ -title [strTableGet LICCFG_RELOAD_2] \ -x $XCOL1 -y 160 -w 300 -h 15] ] } elseif {$isFloatLic} { set label1Text "" set label2Text "" if {$setupVals(ELMUser) == 1} { set label1Text [strTableGet LICCFG_ELM_1] set label2Text [strTableGet LICCFG_ELM_2] } else { set label1Text [strTableGet LICCFG_FLOAT_1] set label2Text [strTableGet LICCFG_FLOAT_2] } set ctrlVals(volatileFrm) [list \ [list label -name Label_1 \ -title $label1Text \ -x $XCOL1 -y 7 -w 300 -h 17] \ [list label -name label_3 \ -title $label2Text \ -x $XCOL1 -y 160 -w 300 -h 17] ] } else { # node-locked set ctrlVals(volatileFrm) [list \ [list label -name Label_1 \ -title [strTableGet LICCFG_NODELOCK_1] \ -x $XCOL1 -y 7 -w 300 -h 17] \ [list label -name label_3 \ -title [strTableGet LICCFG_NODELOCK_2] \ -x $XCOL1 -y 160 -w 300 -h 15] ] } # place default values in the edit boxes or check boxes if {$isFloatLic} { lappend ctrlVals(volatileFrm) \ [list label -name col6 \ -title [strTableGet LICCFG_COL6] \ -x $XCOL6 -y $Y -w $WIDTH -h $HTHDR] } else { # node locked lappend ctrlVals(volatileFrm) \ [list label -name col6 \ -title [strTableGet LICCFG_NODELOCK_COL6] \ -x $XCOL6 -y $Y -w $WIDTH -h $HTHDR] } # add the common controls lappend ctrlVals(volatileFrm) \ [list label -name col1 \ -title [strTableGet LICCFG_COL1] \ -x $XCOL1 -y $Y -w $FEATWIDTH -h $HTHDR] \ [list label -name col2 \ -title [strTableGet LICCFG_COL2] \ -x $XCOL2 -y $Y -w $WIDTH -h $HTHDR] \ [list label -name col3 \ -title [strTableGet LICCFG_COL3] \ -x $XCOL3 -y $Y -w $WIDTH -h $HTHDR] \ [list label -name col4 \ -title [strTableGet LICCFG_COL4] \ -x $XCOL4 -y $Y -w $WIDTH -h $HTHDR] \ [list label -name col5 \ -title [strTableGet LICCFG_COL5] \ -x $XCOL5 -y $Y -w $WIDTH -h $HTHDR] # set the values for license seats set hostIndex [lsearch $lmVals(lmHosts) $lmVals(lmHostName)] if {$hostIndex == -1} { set numberOfFeatures 0 } else { set numberOfFeatures [lindex $lmHostFeaturesNum $hostIndex] } for {set ix 0} {$ix < [llength $lmVals(lmLicensedProductNames)]} {incr ix} { set feature [lindex $lmVals(lmLicensedProductNames) $ix] set newY [expr $FEAT_HDR_HT + ($ix * $HT)] set featureId [lindex $lmVals(lmLicensedFeatureIds) $ix] set fHostAllocated 0 if {$isFloatLic} { set fAllocated [lmFeaturesValueGet lmFLFeaturesAllocated $feature] set fAvailable [lmFeaturesValueGet lmFLFeaturesAvailable $feature] set fTotal [lmFeaturesValueGet lmFLFeaturesTotal $feature] } else { set fAllocated [lmFeaturesValueGet lmNLFeaturesAllocated $feature] set fAvailable [lmFeaturesValueGet lmNLFeaturesAvailable $feature] set fTotal [lmFeaturesValueGet lmNLFeaturesTotal $feature] } for {set ixf 0} {$ixf < $numberOfFeatures} {incr ixf} { # only if the feature is previously allocated on this host # (name match), retrieve allocated value if {$isFloatLic} { set licTypeAllocated "licFLAllocated" } else { set licTypeAllocated "licNLAllocated" } if { $feature == [lmLicProdInfoGet prodName $lmVals(lmHostName) $ixf] } { set fHostAllocated \ [lmLicProdInfoGet $licTypeAllocated $lmVals(lmHostName) $ixf] } } # set initial vales to be added to the table if {$isFloatLic} { set initialVal 0 } else { set initialVal "No" } set featureVals [list $feature $fTotal $fAllocated $fHostAllocated $fAvailable $initialVal] lappend tableVals $featureVals } # add the table lappend ctrlVals(volatileFrm) \ [list table -name licTable \ -columns 6 -border \ -x 10 -y 50 -width 295 -height 64 \ -callback onTableEvent \ -initial $tableVals ] if {$isFloatLic} { lappend ctrlVals(volatileFrm) \ [list label -name tableLabel \ -title [strTableGet LICCFG_TABLE_FLOATING] \ -x 10 -y 120 -w 295 -h $HT] } else { lappend ctrlVals(volatileFrm) \ [list label -name tableLabel \ -title [strTableGet LICCFG_TABLE_NODELOCK] \ -x 10 -y 120 -w 295 -h $HT] } # add the requested text entry box and labels lappend ctrlVals(volatileFrm) \ [list label -name selectedProdLabel \ -title "Selected Product:" \ -x $XCOL1 -y 132 -w 59 -h $HT] \ [list label -name selectedProd \ -title "" \ -x 72 -y 132 -w 233 -h $HT] if {$isFloatLic} { lappend ctrlVals(volatileFrm) \ [list label -name allocateLabel \ -title "Additional Licenses to Allocate:" \ -x $XCOL1 -y 146 -w 104 -h $HT ] lappend ctrlVals(volatileFrm) \ [list text -name textRequested \ -callback "floatTextCB" \ -x [expr $XCOL1 + 106] -y 144 -w 30 -h 12] } else { lappend ctrlVals(volatileFrm) \ [list label -name checkLabel \ -title "Request a node locked license:" \ -x $XCOL1 -y 146 -w 104 -h $HT ] lappend ctrlVals(volatileFrm) \ [list choice -name yesChoice -newgroup -auto \ -title "Yes" \ -x [expr $XCOL1 + 106] -y 144 -w 30 -h 12 \ -callback "nodelockChoiceCB"] \ [list choice -name noChoice -auto \ -title "No" \ -x [expr $XCOL1 + 136] -y 144 -w 30 -h 12 \ -callback "nodelockChoiceCB"] \ } # Set title for the dialog if {$lmVals(reload)} { set w [dlgFrmCreate [strTableGet LICCFG_TITLE_RELOAD]]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -