Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Apr 15, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions 5 consul/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,13 +231,14 @@ def cb(response):

class HTTPClient(six.with_metaclass(abc.ABCMeta, object)):
def __init__(self, host='127.0.0.1', port=8500, scheme='http',
verify=True, cert=None):
verify=True, cert=None, headers=None):
self.host = host
self.port = port
self.scheme = scheme
self.verify = verify
self.base_uri = '%s://%s:%s' % (self.scheme, self.host, self.port)
self.cert = cert
self.headers = headers or dict()

def uri(self, path, params=None):
uri = self.base_uri + urllib.parse.quote(path, safe='/:')
Expand Down Expand Up @@ -307,8 +308,8 @@ def __init__(
if os.getenv('CONSUL_HTTP_SSL_VERIFY') is not None:
verify = os.getenv('CONSUL_HTTP_SSL_VERIFY') == 'true'

self.http = self.connect(host, port, scheme, verify, cert)
self.token = os.getenv('CONSUL_HTTP_TOKEN', token)
self.http = self.connect(host, port, scheme, verify, cert, self.token)
self.scheme = scheme
self.dc = dc
assert consistency in ('default', 'consistent', 'stale'), \
Expand Down
15 changes: 9 additions & 6 deletions 15 consul/std.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,26 +19,29 @@ def response(self, response):
def get(self, callback, path, params=None):
uri = self.uri(path, params)
return callback(self.response(
self.session.get(uri, verify=self.verify, cert=self.cert)))
self.session.get(uri, verify=self.verify, cert=self.cert, headers=self.headers)))

def put(self, callback, path, params=None, data=''):
uri = self.uri(path, params)
return callback(self.response(
self.session.put(uri, data=data, verify=self.verify,
cert=self.cert)))
cert=self.cert, headers=self.headers)))

def delete(self, callback, path, params=None):
uri = self.uri(path, params)
return callback(self.response(
self.session.delete(uri, verify=self.verify, cert=self.cert)))
self.session.delete(uri, verify=self.verify, cert=self.cert, headers=self.headers)))

def post(self, callback, path, params=None, data=''):
uri = self.uri(path, params)
return callback(self.response(
self.session.post(uri, data=data, verify=self.verify,
cert=self.cert)))
cert=self.cert, headers=self.headers)))


class Consul(base.Consul):
def connect(self, host, port, scheme, verify=True, cert=None):
return HTTPClient(host, port, scheme, verify, cert)
def connect(self, host, port, scheme, verify=True, cert=None, token=None):
headers = dict()
if token is not None:
headers['X-Consul-Token'] = token
return HTTPClient(host, port, scheme, verify, cert, headers)
9 changes: 6 additions & 3 deletions 9 tests/test_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

class HTTPClient(object):
def __init__(self, host=None, port=None, scheme=None,
verify=True, cert=None):
verify=True, cert=None, headers=None):
pass

def get(self, callback, path, params=None):
Expand All @@ -25,8 +25,11 @@ def delete(self, callback, path, params=None):


class Consul(consul.base.Consul):
def connect(self, host, port, scheme, verify=True, cert=None):
return HTTPClient(host, port, scheme, verify=verify, cert=None)
def connect(self, host, port, scheme, verify=True, cert=None, token=None):
headers = dict()
if token is not None:
headers['X-Consul-Token'] = token
return HTTPClient(host, port, scheme, verify=verify, cert=None, headers=headers)


def _should_support(c):
Expand Down
Morty Proxy This is a proxified and sanitized view of the page, visit original site.