Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # rule_lb-star-s.example.org
- # This file exports live pool status for BigIPReport
- # add the rule to shared-* and add dns alias to shared-* for any F5
- # Tim Riker <[email protected]>
- when HTTP_REQUEST {
- if { ([class match [IP::client_addr] equals private_net]) } {
- switch -glob -- [HTTP::host] {
- lb-*-s.example.org {
- # get pool status for BIG IP Report
- set poolname [HTTP::path]
- if { [catch {
- set poolmembers [members -list $poolname]
- set returnjson "\{\n\t\"success\"\:true,\n\t\"poolname\": \"$poolname\",\n\t\"memberstatuses\": \{"
- set membercount [llength $poolmembers]
- set i 0
- foreach poolmember $poolmembers {
- incr i
- set memberarr [split $poolmember " "]
- set memberip [lindex $memberarr 0]
- set memberport [lindex $memberarr 1]
- set status [LB::status pool $poolname member $memberip $memberport]
- set returnjson "$returnjson\n\t\t\"$memberip\:$memberport\"\:\t\"$status\""
- if { $i != $membercount } {
- set returnjson "$returnjson,"
- }
- }
- set returnjson "$returnjson\n\t\}\n\}"
- HTTP::respond 200 content $returnjson Content-Type application/json Access-Control-Allow-Origin "*" Connection close
- } ] } {
- set returnjson "\{\"success\"\:false,\"error\"\:\{\"code\"\: 404,\"message\"\: \"No pool named $poolname\"\}\}"
- HTTP::respond 404 content $returnjson Content-Type application/json Access-Control-Allow-Origin "*" Connection close
- }
- event disable
- return
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement