Handle empty body correctly when reading requests.

This commit is contained in:
Oleksii Kliukin
2016-06-21 10:56:18 +02:00
parent c2490d4831
commit 70195bec2d
+4 -2
View File
@@ -120,8 +120,10 @@ class RestApiHandler(BaseHTTPRequestHandler):
return self.send_error(411) if body_is_optional else None
try:
content_length = int(self.headers.get('content-length'))
if content_length == 0 and body_is_optional:
return {}
request = json.loads(self.rfile.read(content_length).decode('utf-8'))
if isinstance(request, dict) and request:
if isinstance(request, dict) and (request or body_is_optional):
return request
except Exception:
logger.exception('Bad request')
@@ -190,7 +192,7 @@ class RestApiHandler(BaseHTTPRequestHandler):
def do_POST_restart(self):
status_code = 500
data = 'restart failed'
request = self._read_json_content()
request = self._read_json_content(body_is_optional=True)
if not request: # unconditional restart
try:
status, data = self.server.patroni.ha.restart()