Allocator Usage Examples
This section contains simple examples about using Allocator to solve common problems of sharing licenses between sites.
In the following examples, the sites are called A B C D and the licenses to be shared are called x y z. It is assumed that all features are "WAN-able", that they can be shared across all sites.
A config.tcl file for Allocator typically contains elements from all the examples below.
Share One License Between Two Sites
LA::AddResource License:x FLEXLM/x ""
LA::AddSite vnc@hostA A {} -version SAME
LA::AddSite vnc@hostB B {} -version SAME
LA::SetResourceWeight A License:x 100
LA::SetResourceWeight B License:x 200
AddSite
procedure. This is an older
style.LA::AddResource License:x FLEXLM/x ""
# Older way of specifying the weights.
LA::AddSite vnc@hostA A {
License:x 100
}
LA::AddSite vnc@hostB B {
License:x 200
}
Share One License Between Two Sites, with Minimum Allocations
LA::AddResource License:x FLEXLM/x ""
LA::AddSite vnc@hostA A {}
LA::AddSite vnc@hostB B {}
LA::SetMinQuantity A License:x 2
LA::SetMinQuantity B License:x 3
Share One License that Comes From Two Sources
LA::DefineResourceGroup License:x {
LA::AddResource License:TAG1_x FLEXLM/TAG1/x ""
LA::AddResource License:TAG2_x FLEXLM/TAG2/x ""
}
LA:AddSite vnc@hostA A {}
LA:AddSite vnc@hostB B {}
"License:TAG1_x OR License:TAG2_x"
Do Not Share with One Site
LA::DefineResourceGroup License:x {
LA::AddResource License:TAG1_x FLEXLM/TAG1/x ""
LA::AddResource License:TAG2_x FLEXLM/TAG2/x ""
}
LA::AddSite vnc@hostA A {}
LA::AddSite vnc@hostB B {}
LA::AddSite vnc@hostB C {}
LA::SetResourceWeight C License:TAG2_x DO_NOT_SHARE
LA::SetResourceWeight C License:TAG1_x FROM_SITE
Reserve Some Licenses for Use Outside the Queue
LA::AddResource License:x FLEXLM/x ""
LA::AddSite vnc@hostA A {}
LA::AddSite vnc@hostB B {}
LA::SetReserveForUser License:x john 6
Change Weights Depending on Job Priority
LA::GetResourcePriority
as in the
following example:
LA::AddResource License:x FLEXLM/x ""
LA::AddSite vnc@hostA A {} -access vtk
LA::AddSite vnc@hostB B {} -access vtk
proc myUpdateWeights {} {
foreach site { A B } {
set pri [LA::GetResourcePriority $site License:x]
if { $pri >= 8 } {
LA::SetResourceWeight $site License:x 500
} else {
LA::SetResourceWeight $site License:x 100
}
}
}
# The registered script will be evaluated once for each cycle.
LA::RegisterScript "myUpdateWeights"
Change Weights Depending on Time with TIMEVAR
LA::AddResource License:x FLEXLM/x ""
LA::AddSite vnc@hostA A {}
LA::AddSite vnc@hostB B {}
TIMEVAR changeWeightsOnWeekend {
Sat,Sun {
LA::SetResourceWeight A License:x 100
LA::SetResourceWeight B License:x 100
}
default {
LA::SetResourceWeight A License:x 400
LA::SetResourceWeight B License:x 100
}
}
Share All Licenses between Three Sites
LA::AddAllResources -resmapType License
LA::AddSite vnc@hostA A {} -version SAME -defaultweight 300
LA::AddSite vnc@hostB B {} -version SAME -defaultweight 200
LA::AddSite vnc@hostC C {} -version SAME -defaultweight 200