Skip to content
This repository was archived by the owner on May 30, 2024. It is now read-only.

Support Consul response code: 429 #24

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
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
12 changes: 11 additions & 1 deletion consul/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ class ClientError(ConsulException):
pass


class ConsulUnhealthy(ConsulException):
"""
429 response code: Some healthchecks are passing, at least one is warning
"""
pass


#
# Convenience to define checks

Expand Down Expand Up @@ -194,7 +201,7 @@ def _compat(

class CB(object):
@classmethod
def _status(klass, response, allow_404=True):
def _status(klass, response, allow_404=True, allow_429=True):
# status checking
if 400 <= response.code < 500:
if response.code == 400:
Expand All @@ -206,6 +213,9 @@ def _status(klass, response, allow_404=True):
elif response.code == 404:
if not allow_404:
raise NotFound(response.body)
elif response.code == 429:
if not allow_429:
raise ConsulUnhealthy(response.body)
else:
raise ClientError("%d %s" % (response.code, response.body))
elif 500 <= response.code < 600:
Expand Down