class Nomad::Agent

Public Instance Methods

force_leave(*nodes, **options) click to toggle source

Force a node to leave the gossip pool.

@example

Nomad.agent.force_leave("client-ab2e23dc")

@overload force_leave(node, …)

@param [String] node A node ID to remove
@param [String] ... Additional nodes to remove
@return [Boolean]
# File lib/nomad/api/agent.rb, line 40
def force_leave(*nodes, **options)
  raise "Missing node(s)!" if nodes.empty?
  qs = nodes.map { |v| "node=#{CGI.escape(v)}" }.join("&")[/.+/]
  client.post("/v1/agent/force-leave?#{qs}", options)
  return true
end
join(*addresses, **options) click to toggle source

Join a new member to the gossip pool.

@example

Nomad.agent.join("1.2.3.4", "5.6.7.8") #=> #<AgentJoin...>

@param [String] address the addresses of the agents to join - this may

be specified multiple times.

@return [AgentJoin]

# File lib/nomad/api/agent.rb, line 24
def join(*addresses, **options)
  raise "Missing address(es)!" if addresses.empty?
  qs = addresses.map { |v| "address=#{CGI.escape(v)}" }.join("&")[/.+/]
  json = client.post("/v1/agent/join?#{qs}", options)
  return AgentJoin.decode(json)
end
members(options = {}) click to toggle source

Get the list of known agent names.

@example

Nomad.agent.members #=> ["region1", "region2"]

@return [AgentMembers]

# File lib/nomad/api/agent.rb, line 53
def members(options = {})
  json = client.get("/v1/agent/members", options)
  return AgentMembers.decode(json)
end
self(options = {}) click to toggle source

Get information about the current agent (self).

@example

Nomad.agent.self #=> #<AgentSelf ...>

@return [AgentSelf]

# File lib/nomad/api/agent.rb, line 64
def self(options = {})
  json = client.get("/v1/agent/self", options)
  return AgentSelf.decode(json)
end
servers(options = {}) click to toggle source

Get the list of servers.

@example

Nomad.agent.servers #=> ["127.0.0.1:4647", "..."]
# File lib/nomad/api/agent.rb, line 73
def servers(options = {})
  return client.get("/v1/agent/servers", options)
end
update_servers(*addresses, **options) click to toggle source

Updates the list of servers.

@example

Nomad.agent.update_servers(addresses: ["1.2.3.4:4647"])

@return [Boolean]

# File lib/nomad/api/agent.rb, line 83
def update_servers(*addresses, **options)
  raise "Missing address(es)!" if addresses.empty?
  qs = addresses.map { |v| "address=#{CGI.escape(v)}" }.join("&")[/.+/]
  client.post("/v1/agent/servers?#{qs}", options)
  return true
end