Packages

An Elixir client for Consul's HTTP API

Current section

Files

Jump to
exconsul lib consul agent.ex
Raw

lib/consul/agent.ex

#
# The MIT License (MIT)
#
# Copyright (c) 2014-2015 Undead Labs, LLC
#
defmodule Consul.Agent do
alias Consul.Endpoint
use Consul.Endpoint, handler: Consul.Handler.Base
@agent "agent"
@checks "checks"
@force_leave "force-leave"
@join "join"
@members "members"
@self "self"
@services "services"
@spec checks(Keyword.t) :: Endpoint.response
def checks(opts \\ []) do
build_url([@agent, @checks], opts)
|> req_get()
end
@spec join(binary, Keyword.t) :: Endpoint.response
def join(address, opts \\ []) do
build_url([@agent, @join, address], opts)
|> req_get()
end
@spec force_leave(binary, Keyword.t) :: Endpoint.response
def force_leave(node, opts \\ []) do
build_url([@agent, @force_leave, node], opts)
|> req_get()
end
@spec members(Keyword.t) :: Endpoint.response
def members(opts \\ []) do
build_url([@agent, @members], opts)
|> req_get()
end
@spec self(Keyword.t) :: Endpoint.response
def self(opts \\ []) do
build_url([@agent, @self], opts)
|> req_get()
end
@spec services(Keyword.t) :: Endpoint.response
def services(opts \\ []) do
build_url([@agent, @services], opts)
|> req_get()
end
end