Class: F5::Cli::Pool
- Inherits:
-
Subcommand
- Object
- Thor
- Subcommand
- F5::Cli::Pool
- Defined in:
- lib/f5/cli/application.rb
Instance Method Summary collapse
- #disable(pool, *members) ⇒ Object
- #enable(pool, *members) ⇒ Object
- #list ⇒ Object
- #setconnections(pool, *members) ⇒ Object
- #setratio(pool, *members) ⇒ Object
- #show(pool) ⇒ Object
- #status(pool) ⇒ Object
Instance Method Details
#disable(pool, *members) ⇒ Object
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 |
# File 'lib/f5/cli/application.rb', line 302 def disable(pool, *members) set = pool_members(pool).select do |m| members.include? m[:address] end response = client.LocalLB.Pool.set_member_session_enabled_state( pool_names: { item: [ pool ] }, members: { item: [ set ] }, session_states: { item: [ set.map { "STATE_DISABLED" } ] } ) if [:force] response = client.LocalLB.Pool.set_member_monitor_state( pool_names: { item: [ pool ] }, members: { item: [ set ] }, monitor_states: { item: [ set.map { "STATE_DISABLED" } ] } ) end end |
#enable(pool, *members) ⇒ Object
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 |
# File 'lib/f5/cli/application.rb', line 281 def enable(pool, *members) set = pool_members(pool).select do |m| members.include? m[:address] end response = client.LocalLB.Pool.set_member_session_enabled_state( pool_names: { item: [ pool ] }, members: { item: [ set ] }, session_states: { item: [ set.map { "STATE_ENABLED" } ] } ) response = client.LocalLB.Pool.set_member_monitor_state( pool_names: { item: [ pool ] }, members: { item: [ set ] }, monitor_states: { item: [ set.map { "STATE_ENABLED" } ] } ) end |
#list ⇒ Object
225 226 227 228 229 230 231 232 233 234 235 236 |
# File 'lib/f5/cli/application.rb', line 225 def list response = client.LocalLB.Pool.get_list pools = Array(response[:item]) if pools.empty? puts "No pools found" else pools.each do |p| puts p end end end |
#setconnections(pool, *members) ⇒ Object
335 336 337 338 339 340 341 342 |
# File 'lib/f5/cli/application.rb', line 335 def setconnections(pool, *members) set = address_port_list_from_pool(pool, members) response = client.LocalLB.Pool.set_member_connection_limit( pool_names: { item: [ pool ] }, members: { item: [ set ] }, limits: { item: [ set.map { [:limit] } ] } ) end |
#setratio(pool, *members) ⇒ Object
324 325 326 327 328 329 330 331 |
# File 'lib/f5/cli/application.rb', line 324 def setratio(pool, *members) set = address_port_list_from_pool(pool, members) response = client.LocalLB.Pool.set_member_ratio( pool_names: { item: [ pool ] }, members: { item: [ set ] }, ratios: { item: [ set.map { [:ratio] } ] } ) end |
#show(pool) ⇒ Object
239 240 241 242 243 244 245 246 247 248 |
# File 'lib/f5/cli/application.rb', line 239 def show(pool) members = pool_members(pool) if members.empty? puts "Pool #{pool} is empty" else members.each do |member| puts "#{member[:address]}:#{member[:port]}" end end end |
#status(pool) ⇒ Object
251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 |
# File 'lib/f5/cli/application.rb', line 251 def status(pool) members = pool_members(pool) response = client.LocalLB.Pool.get_member_object_status( pool_names: { item: [ pool ] }, members: { item: [ members ] } ) statuses = response[:item][:item] statuses = [ statuses ] if statuses.is_a? Hash response = client.LocalLB.Pool.get_all_member_statistics( pool_names: { item: [ pool ] } ) stats = response[:item][:statistics][:item] stats = [ stats ] if stats.is_a? Hash connections = stats.map do |host| stats = host[:statistics][:item] c = stats.find { |stat| stat[:type] == "STATISTIC_SERVER_SIDE_CURRENT_CONNECTIONS" } c[:value][:high].to_i * (2<<32) + c[:value][:low].to_i end puts "%20s %25s %25s %25s" % ["Address", "Availability", "Enabled", "Current Connections"] statuses.each_with_index do |s, idx| puts "%20s %25s %25s %25s" % [ members[idx][:address], s[:availability_status].split(/_/).last, s[:enabled_status].split(/_/).last, connections[idx]] end end |