class Diplomat::Session

Methods for interacting with the Consul session API endpoint

Public Instance Methods

create(value = nil, options = {}) click to toggle source

Create a new session @param value [Object] hash or json representation of the session arguments @param options [Hash] session options @return [String] The sesssion id

# File lib/diplomat/session.rb, line 12
def create(value = nil, options = {})
  # TODO: only certain keys are recognised in a session create request,
  # should raise an error on others.
  custom_params = []
  custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
  data = value.is_a?(String) ? value : JSON.generate(value) unless value.nil?
  raw = send_put_request(@conn, ['/v1/session/create'], options, data, custom_params)
  body = JSON.parse(raw.body)
  body['ID']
end
destroy(id, options = {}) click to toggle source

Destroy a session @param id [String] session id @param options [Hash] session options @return [String] Success or failure of the session destruction

# File lib/diplomat/session.rb, line 27
def destroy(id, options = {})
  custom_params = []
  custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
  raw = send_put_request(@conn, ["/v1/session/destroy/#{id}"], options, nil, custom_params)
  raw.body
end
info(id, options = {}) click to toggle source

Session information @param id [String] session id @param options [Hash] session options @return [OpenStruct]

# File lib/diplomat/session.rb, line 59
def info(id, options = {})
  custom_params = []
  custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
  raw = send_get_request(@conn, ["/v1/session/info/#{id}"], options, custom_params)
  JSON.parse(raw.body).map { |session| OpenStruct.new session }
end
list(options = {}) click to toggle source

List sessions @param options [Hash] session options @return [OpenStruct]

# File lib/diplomat/session.rb, line 37
def list(options = {})
  custom_params = []
  custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
  raw = send_get_request(@conn, ['/v1/session/list'], options, custom_params)
  JSON.parse(raw.body).map { |session| OpenStruct.new session }
end
node(name, options = {}) click to toggle source

Session information for a given node @param name [String] node name @param options [Hash] session options @return [OpenStruct]

# File lib/diplomat/session.rb, line 70
def node(name, options = {})
  custom_params = []
  custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
  raw = send_get_request(@conn, ["/v1/session/node/#{name}"], options, custom_params)
  JSON.parse(raw.body).map { |session| OpenStruct.new session }
end
renew(id, options = {}) click to toggle source

Renew session @param id [String] session id @param options [Hash] session options @return [OpenStruct]

# File lib/diplomat/session.rb, line 48
def renew(id, options = {})
  custom_params = []
  custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
  raw = send_put_request(@conn, ["/v1/session/renew/#{id}"], options, nil, custom_params)
  JSON.parse(raw.body).map { |session| OpenStruct.new session }
end