Skip to content

Commit e4b46d7

Browse files
committed
add environment defaults with addr for client
1 parent d79796a commit e4b46d7

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

consulate/client.py

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
Consul client object
33
44
"""
5+
import os
56
from consulate import adapters, api, utils
67

7-
DEFAULT_HOST = 'localhost'
8-
DEFAULT_PORT = 8500
8+
DEFAULT_HOST = os.environ.get('CONSUL_HOST') or 'localhost'
9+
DEFAULT_PORT = os.environ.get('CONSUL_PORT') or 8500
10+
DEFAULT_ADDR = os.environ.get('CONSUL_HTTP_ADDR')
911
DEFAULT_SCHEME = 'http'
12+
DEFAULT_TOKEN = os.environ.get('CONSUL_HTTP_TOKEN')
1013
API_VERSION = 'v1'
1114

1215

@@ -23,6 +26,7 @@ class Consul(object):
2326
adapter=consulate.adapters.UnixSocketRequest)
2427
services = consul.agent.services()
2528
29+
:param str addr: The CONSUL_HTTP_ADDR if available (Default: None)
2630
:param str host: The host name to connect to (Default: localhost)
2731
:param int port: The port to connect on (Default: 8500)
2832
:param str datacenter: Specify a specific data center
@@ -36,30 +40,35 @@ class Consul(object):
3640
3741
"""
3842
def __init__(self,
43+
addr=DEFAULT_ADDR,
3944
host=DEFAULT_HOST,
4045
port=DEFAULT_PORT,
4146
datacenter=None,
42-
token=None,
47+
token=DEFAULT_TOKEN,
4348
scheme=DEFAULT_SCHEME,
4449
adapter=None,
4550
verify=True,
4651
cert=None,
4752
timeout=None):
4853
"""Create a new instance of the Consul class"""
49-
base_uri = self._base_uri(scheme, host, port)
54+
base_uri = self._base_uri(addr=addr,
55+
scheme=scheme,
56+
host=host,
57+
port=port)
5058
self._adapter = adapter() if adapter else adapters.Request(
5159
timeout=timeout, verify=verify, cert=cert)
5260
self._acl = api.ACL(base_uri, self._adapter, datacenter, token)
5361
self._agent = api.Agent(base_uri, self._adapter, datacenter, token)
5462
self._catalog = api.Catalog(base_uri, self._adapter, datacenter, token)
5563
self._event = api.Event(base_uri, self._adapter, datacenter, token)
5664
self._health = api.Health(base_uri, self._adapter, datacenter, token)
57-
self._coordinate = api.Coordinate(base_uri, self._adapter, datacenter, token)
65+
self._coordinate = api.Coordinate(base_uri, self._adapter, datacenter,
66+
token)
5867
self._kv = api.KV(base_uri, self._adapter, datacenter, token)
5968
self._session = api.Session(base_uri, self._adapter, datacenter, token)
6069
self._status = api.Status(base_uri, self._adapter, datacenter, token)
61-
self._lock = api.Lock(
62-
base_uri, self._adapter, self._session, datacenter, token)
70+
self._lock = api.Lock(base_uri, self._adapter, self._session,
71+
datacenter, token)
6372

6473
@property
6574
def acl(self):
@@ -172,7 +181,7 @@ def status(self):
172181
return self._status
173182

174183
@staticmethod
175-
def _base_uri(scheme, host, port):
184+
def _base_uri(scheme, host, port, addr=None):
176185
"""Return the base URI to use for API requests. Set ``port`` to None
177186
when creating a UNIX Socket URL.
178187
@@ -182,7 +191,10 @@ def _base_uri(scheme, host, port):
182191
:rtype: str
183192
184193
"""
185-
if port:
186-
return '{0}://{1}:{2}/{3}'.format(scheme, host, port, API_VERSION)
187-
return '{0}://{1}/{2}'.format(
188-
scheme, utils.quote(host, ''), API_VERSION)
194+
if addr is None:
195+
if port:
196+
return '{0}://{1}:{2}/{3}'.format(scheme, host, port,
197+
API_VERSION)
198+
return '{0}://{1}/{2}'.format(scheme, utils.quote(host, ''),
199+
API_VERSION)
200+
return '{0}/{1}'.format(addr, API_VERSION)

0 commit comments

Comments
 (0)