Pool Member Status Page on a Virtual Server v11
I have gone over the "Pool Member Status Page" pages for both v9 and v10. It all seems easy and straight forward; however, I am on v11, and it doesn't yet seem like I can do the slick trick of writing to a file on disk and thusly having it slip into the data-group file.
The simple bash script works great:
Remove previous pool member list file
rm -f /var/tmp/pool_member_status_list.class
Step through Pool Members
for POOLNAME in `tmsh list ltm pool | grep -i "ltm pool" | sort | awk '{print $3}'`; do
for POOLMEMBER in `tmsh list ltm pool $POOLNAME | grep : | sort | awk '{print $1}'`; do
echo \"$POOLNAME/$POOLMEMBER\", >> /var/tmp/pool_member_status_list.class Write data pairs to file
done
done
But I have to add the following line to get the data to actually update:
tmsh modify /sys file data-group pool_member_status_list source-path file:/var/tmp/pool_member_status_list.class
And of course here is my iRule with the HTTP Response:
when HTTP_REQUEST {
if { [HTTP::uri] eq "/status" } {
foreach { selectedpool } [class get pool_member_status_list ] {
if { [catch {
scan $selectedpool {%[^/]/%[^:]:%s} poolname addr port
switch -glob [LB::status pool $poolname member $addr $port] {
"up" {
}
"down" {
}
"session_enabled" {
}
"session_disabled" {
}
Default {
}
}
SWITCH END
} errmsg] } {
}
}
HTTP::respond 200 content $response "Content-Type" "text/html" "Content-Type" "text/html" "Cache-Control" "no-cache, must-revalidate"
}
FIRST CONDITIONAL STATEMENT END
}
So if you're still with me... This does work. However, I want to be able to change the contents of the data-group class file outfrom under BIG-IP. With the previous v9 and v10 versions, you could just update the file with your bash script, then when BIG-IP looked for /var/class/pool_member_status_list.class it would just take that data in and work with it. Now I think I have been reading around the forums that this will not work anymore as this feature/bug/ability was closed up for security concerns in v11.
Thus, does anyone else know how I can swap out the information in the class file, or perhaps a totally different method of garnishing the data into BIG-IP to begin with, without needing to also have my bash script issue a "tmsh modify /sys file data-group" or reloading the config?
Please and thank you!