hash_to_int
Prototype: hash_to_int(lower, upper, string)
Return type: int
Description: Generates an integer between lower
and upper
range based on hash of string
.
Notes:
This function is similar to splayclass() but more widely usable. Anything that involves orchestration of many hosts could use this function, either for evenly spreading out the scheduling, or even for static load balancing. The result would may be coupled with an ifelse() clause of some sort, or just used directly.
Arguments:
lower (inclusive)
:int
- Lower inclusive bound - in the range:-99999999999,99999999999
upper (exclusive)
:int
- Upper exclusive bound - in the range:-99999999999,99999999999
string
:string
- Input string to hash - in the range:.*
Example:
body common control
{
bundlesequence => { "example" };
}
bundle agent example
{
vars:
"hello" int => hash_to_int(0, 1000, "hello");
"world" int => hash_to_int(0, 1000, "world");
# Hash can vary on hostkey or policy hub:
"hour" int => hash_to_int(0, 24, "$(sys.key_digest)");
"minute" int => hash_to_int(0, 60, "$(sys.policy_hub)");
reports:
"'hello' hashed to: $(hello)";
"'world' hashed to: $(world)";
}
Output:
R: 'hello' hashed to: 172
R: 'world' hashed to: 760
History:
- Introduced in 3.12.0.
See also: splayclass()