Don't expose empty tags dict in API and DCS

This commit is contained in:
Alexander Kukushkin
2016-03-30 15:16:57 +02:00
parent 24cc93ac70
commit 7c683336fb
3 changed files with 9 additions and 5 deletions
+5 -2
View File
@@ -63,7 +63,7 @@ class RestApiHandler(BaseHTTPRequestHandler):
path = '/master' if self.path == '/' else self.path
response = self.get_postgresql_status()
response['tags'] = self.server.patroni.tags
response.update(self.get_tags())
patroni = self.server.patroni
cluster = patroni.dcs.cluster
@@ -94,7 +94,7 @@ class RestApiHandler(BaseHTTPRequestHandler):
def do_GET_patroni(self):
response = self.get_postgresql_status(True)
response['tags'] = self.server.patroni.tags
response.update(self.get_tags())
response['patroni'] = {'version': self.server.patroni.version, 'scope': self.server.patroni.postgresql.scope}
self.send_response(200)
@@ -289,6 +289,9 @@ class RestApiHandler(BaseHTTPRequestHandler):
state = 'unknown'
return {'state': state}
def get_tags(self):
return {'tags': self.server.patroni.tags} if self.server.patroni.tags else {}
def log_message(self, fmt, *args):
logger.debug("API thread: %s - - [%s] %s", self.client_address[0], self.log_date_time_string(), fmt % args)
+3 -2
View File
@@ -55,9 +55,10 @@ class Ha(object):
'conn_url': self.state_handler.connection_string,
'api_url': self.patroni.api.connection_string,
'state': self.state_handler.state,
'role': self.state_handler.role,
'tags': self.patroni.tags
'role': self.state_handler.role
}
if self.patroni.tags:
data['tags'] = self.patroni.tags
if data['state'] in ['running', 'restarting', 'starting']:
try:
data['xlog_location'] = self.state_handler.xlog_position()
+1 -1
View File
@@ -52,7 +52,7 @@ class MockPatroni(object):
self.postgresql = p
self.dcs = d
self.api = Mock()
self.tags = {}
self.tags = {'foo': 'bar'}
self.nofailover = None
self.nap_time = 10
self.replicatefrom = None