class Netscaler::Adapter

Public Instance Methods

session() click to toggle source
# File lib/netscaler/adapter.rb, line 3
def session
  return @session
end
session=(value) click to toggle source
# File lib/netscaler/adapter.rb, line 6
def session=(value)
  @session = value
end

Protected Instance Methods

check_error(payload) click to toggle source
# File lib/netscaler/adapter.rb, line 49
def check_error(payload)
  # TODO:
  # Need to handle missing entity and unauthorized errors
  # return http status code 404 and returns the following for missing entity
  # {
  #     "errorcode": 344,
  #     "message": "No Service",
  #     "severity": "ERROR"
  # }

  # return http status 403 forbidden and returns the following for unauthorized calls.
  # {
  #     "errorcode": 2138,
  #     "message": "Not authorized to execute this command [disable service sjc1-api0001_8080 0 -graceFul NO]",
  #     "severity": "ERROR"
  # }

  if payload['errorcode'] != 0
    e = FailedRequest.new("ErrorCode #{payload['errorcode']} -> #{payload['message']}", payload)
    raise e
  end
end
get_uri(part) click to toggle source
# File lib/netscaler/adapter.rb, line 83
def get_uri(part)
  url = 'nitro/v1/'
  return url + part
end
prepare_options(args) click to toggle source
# File lib/netscaler/adapter.rb, line 34
def prepare_options(args)
  options = {
      :cookies=>{}
  }

  unless @session.nil?
    options[:cookies]['NITRO_AUTH_TOKEN'] = @session
  end

  options[:accept] = :json
  options[:params] = args[:params] if args.has_key?(:params)

  return options
end
prepare_payload(data, args={}) click to toggle source
# File lib/netscaler/adapter.rb, line 22
def prepare_payload(data, args={})
  if data.is_a?(String)
    post_data = "object=#{data}"
  elsif args[:no_wrapper]
    post_data = data.to_json
  else
    post_data = "object=#{data.to_json}"
  end

  return post_data
end
process_result(result, response) click to toggle source
# File lib/netscaler/adapter.rb, line 72
def process_result(result, response)
  if result.header['content-type'] =~ /application\/json/
    payload = JSON.parse(response)
    check_error(payload)
    return payload
  else
    e = FailedRequest.new("Unexpected Content Type Header #{result.header['content-type']}", response)
    raise e
  end
end