Current section
Files
Jump to
Current section
Files
lib/consul/catalog.ex
#
# The MIT License (MIT)
#
# Copyright (c) 2014-2015 Undead Labs, LLC
#
defmodule Consul.Catalog do
alias Consul.Endpoint
use Consul.Endpoint, handler: Consul.Handler.Base
@catalog "catalog"
@datacenters "datacenters"
@deregister "deregister"
@nodes "nodes"
@node "node"
@services "services"
@service "service"
@spec datacenters(Keyword.t) :: Endpoint.response
def datacenters(opts \\ []) do
build_url([@catalog, @datacenters], opts)
|> req_get()
end
@spec deregister(map, Keyword.t) :: Endpoint.response
def deregister(%{"Datacenter" => _, "Node" => _} = body, opts \\ []) do
build_url([@catalog, @deregister], opts)
|> req_put(JSX.encode!(body))
end
@spec nodes(Keyword.t) :: Endpoint.response
def nodes(opts \\ []) do
build_url([@catalog, @nodes], opts)
|> req_get()
end
@spec node(binary, Keyword.t) :: Endpoint.response
def node(id, opts \\ []) do
build_url([@catalog, @node, id], opts)
|> req_get()
end
@spec services(Keyword.t) :: Endpoint.response
def services(opts \\ []) do
build_url([@catalog, @services], opts)
|> req_get()
end
@spec service(binary, Keyword.t) :: Endpoint.response
def service(name, opts \\ []) do
build_url([@catalog, @service, name], opts)
|> req_get()
end
end