class Netscaler::Lb::Monitor

Public Class Methods

new(netscaler) click to toggle source
# File lib/netscaler/lb/monitor.rb, line 7
def initialize(netscaler)
  @netscaler = netscaler
end

Public Instance Methods

add(:monitorName => 'HTTP-updates.dev.rs.com', :serviceType => 'HTTP') click to toggle source
# File lib/netscaler/lb/monitor.rb, line 11
def add(payload)  # :args: :monitorName => 'HTTP-updates.dev.rs.com', :serviceType => 'HTTP'
  raise ArgumentError, 'payload cannot be null' if payload.nil?
  validate_payload(payload, [:monitorName, :type])
  return @netscaler.adapter.post_no_body("config/lbmonitor/", "lbmonitor" => payload)
end
bind(:monitorName => 'http', :entityName => 'foo' :entityType => '[service|servicegroup]') click to toggle source
# File lib/netscaler/lb/monitor.rb, line 39
def bind(payload) # :args: :monitorName => 'http', :entityName => 'foo' :entityType => '[service|servicegroup]'
  raise ArgumentError, 'payload cannot be null' if payload.nil?
  validate_payload(payload, [:monitorName, :entityName, :entityType])
  valid_entityTypes = %w(service servicegroup)
  raise ArgumentError, ":entityType does not equal one of the following: #{valid_entityTypes.flatten}" unless valid_entityTypes.include?(payload[:entityType])
  new_payload = {:monitorName => payload[:monitorName],
                 :"#{payload[:entityType]}Name" => payload[:entityName]}

  return @netscaler.adapter.post_no_body("config/lbmonitor_#{payload[:entityType]}_binding/#{payload[:monitorName]}?action=bind",
                                          {'params' => {'action' => 'bind'}, "lbmonitor_#{payload[:entityType]}_binding" => new_payload})
end
remove(:monitorName => 'HTTP-updates.dev.rs.com') click to toggle source

not working. always dies saying it wants a type no matter how i pass the type. :)

# File lib/netscaler/lb/monitor.rb, line 18
def remove(payload)  # :args: :monitorName => 'HTTP-updates.dev.rs.com'
  raise ArgumentError, 'payload cannot be null' if payload.nil?
  validate_payload(payload, [:monitorName, :type])
  return @netscaler.adapter.delete("config/lbmonitor/#{payload[:monitorName]}", "lbmonitor" => payload)
end
show(:monitorName => 'http', :entityName => 'foo' :entityType => '[service|servicegroup]') click to toggle source
# File lib/netscaler/lb/monitor.rb, line 24
def show(payload) # :args: :monitorName => 'http', :entityName => 'foo' :entityType => '[service|servicegroup]'
  raise ArgumentError, 'payload cannot be null' if payload.nil?
  validate_payload(payload, [:monitorName])
  return @netscaler.adapter.get("config/lbmonitor/#{payload[:monitorName]}")
end
show_binding(:monitorName => 'http', :entityName => 'foo' :entityType => '[service|servicegroup]') click to toggle source
# File lib/netscaler/lb/monitor.rb, line 30
def show_binding(payload) # :args: :monitorName => 'http', :entityName => 'foo' :entityType => '[service|servicegroup]'
  raise ArgumentError, 'payload cannot be null' if payload.nil?
  validate_payload(payload, [:monitorName, :entityType])
  valid_entityTypes = %w(service servicegroup)
  raise ArgumentError, ":entityType does not equal one of the following: #{valid_entityTypes.flatten}" unless valid_entityTypes.include?(payload[:entityType])

  return @netscaler.adapter.get("config/lbmonbindings_#{payload[:entityType]}_binding/#{payload[:monitorName]}")
end
unbind(:monitorName => 'http', :entityName => 'foo' :entityType => '[service|servicegroup]') click to toggle source
# File lib/netscaler/lb/monitor.rb, line 51
def unbind(payload) # :args: :monitorName => 'http', :entityName => 'foo' :entityType => '[service|servicegroup]'
  raise ArgumentError, 'payload cannot be null' if payload.nil?
  validate_payload(payload, [:monitorName, :entityName, :entityType])
  valid_entityTypes = %w(service servicegroup)
  raise ArgumentError, ":entityType does not equal one of the following: #{valid_entityTypes.flatten}" unless valid_entityTypes.include?(payload[:entityType])
  new_payload = {:monitorName => payload[:monitorName],
                 :"#{payload[:entityType]}Name" => payload[:entityName]}

  return @netscaler.adapter.post_no_body("config/lbmonitor_servicegroup_binding/#{payload[:monitorName]}?action=unbind",
                                         {'params' => {'action' => 'unbind'}, 'lbmonitor_servicegroup_binding' => new_payload})
end