class Consul::Client::V1

Do not instantiate this class directly.

@see Consul::Client.v1

Public Instance Methods

http(host: "localhost", port: 8500, logger: NULL_LOGGER) click to toggle source

Returns a thin wrapper around the Consult HTTP API.

@param host [String] host of Consul agent. @param port [Integer] port to connect to Consul agent. @param logger [Logger] logger for diagnostic information. @return [Consul::Client::HTTP] @example

http = Consul::Client.v1.http(logger: Logger.new($stdout))
puts http.get("/get/self")["Member"]["Name"]
# File lib/consul/client.rb, line 56
def http(host: "localhost", port: 8500, logger: NULL_LOGGER)
  HTTP.new(host: host, port: port, logger: logger)
end
local_service(name, http:Consul::Client.v1.http(), logger:http.logger) click to toggle source

Returns high-level local service utility functions.

@param name [String] name of the service. Must match service ID in

Consul.

@param http [Consul::Client::HTTP] http client to use. @param logger [Logger] logger for diagnostic information. @return [Consul::Client::LocalService] @example

local = Consul::Client.v1.local_service('web')
local.coordinated_shutdown! { $healthy = false }
# File lib/consul/client.rb, line 34
def local_service(name, http:Consul::Client.v1.http(), logger:http.logger)
  LocalService.new(name, http: http, logger: logger)
end
service(*args) click to toggle source

Returns high-level service utility functions.

@example

service = Consul::Client.v1.service('web')
service.lock('leader') { puts "I am the cluster leader!" }
# File lib/consul/client.rb, line 43
def service(*args)
  Service.new(*args)
end