mirror of
https://github.com/outbackdingo/patroni.git
synced 2026-08-25 14:53:37 +00:00
committed by
Alexander Kukushkin
parent
dcd605ebc8
commit
2384d9e735
@@ -8,6 +8,8 @@ Scenario: check API requests on a stand-alone server
|
|||||||
Then I receive a response code 200
|
Then I receive a response code 200
|
||||||
And I receive a response state running
|
And I receive a response state running
|
||||||
And I receive a response role master
|
And I receive a response role master
|
||||||
|
When I issue a GET request to http://127.0.0.1:8008/health
|
||||||
|
Then I receive a response code 200
|
||||||
When I issue a GET request to http://127.0.0.1:8008/replica
|
When I issue a GET request to http://127.0.0.1:8008/replica
|
||||||
Then I receive a response code 503
|
Then I receive a response code 503
|
||||||
When I run patronictl.py reinit batman postgres0 --force
|
When I run patronictl.py reinit batman postgres0 --force
|
||||||
|
|||||||
@@ -102,6 +102,8 @@ class RestApiHandler(BaseHTTPRequestHandler):
|
|||||||
status_code = replica_status_code
|
status_code = replica_status_code
|
||||||
elif 'read-only' in path:
|
elif 'read-only' in path:
|
||||||
status_code = 200 if primary_status_code == 200 else replica_status_code
|
status_code = 200 if primary_status_code == 200 else replica_status_code
|
||||||
|
elif 'health' in path:
|
||||||
|
status_code = 200 if response.get('state') == 'running' else 503
|
||||||
elif cluster: # dcs is available
|
elif cluster: # dcs is available
|
||||||
is_synchronous = cluster.is_synchronous_mode() and cluster.sync \
|
is_synchronous = cluster.is_synchronous_mode() and cluster.sync \
|
||||||
and cluster.sync.sync_standby == patroni.postgresql.name
|
and cluster.sync.sync_standby == patroni.postgresql.name
|
||||||
|
|||||||
@@ -154,6 +154,8 @@ class TestRestApiHandler(unittest.TestCase):
|
|||||||
MockRestApiServer(RestApiHandler, 'GET /replica')
|
MockRestApiServer(RestApiHandler, 'GET /replica')
|
||||||
with patch.object(RestApiHandler, 'get_postgresql_status', Mock(return_value={'role': 'master'})):
|
with patch.object(RestApiHandler, 'get_postgresql_status', Mock(return_value={'role': 'master'})):
|
||||||
MockRestApiServer(RestApiHandler, 'GET /replica')
|
MockRestApiServer(RestApiHandler, 'GET /replica')
|
||||||
|
with patch.object(RestApiHandler, 'get_postgresql_status', Mock(return_value={'state': 'running'})):
|
||||||
|
MockRestApiServer(RestApiHandler, 'GET /health')
|
||||||
MockRestApiServer(RestApiHandler, 'GET /master')
|
MockRestApiServer(RestApiHandler, 'GET /master')
|
||||||
MockPatroni.dcs.cluster.sync.sync_standby = MockPostgresql.name
|
MockPatroni.dcs.cluster.sync.sync_standby = MockPostgresql.name
|
||||||
MockPatroni.dcs.cluster.is_synchronous_mode = Mock(return_value=True)
|
MockPatroni.dcs.cluster.is_synchronous_mode = Mock(return_value=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user