From 7c683336fbdae3f3c57e739e685707981205b94b Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Wed, 30 Mar 2016 15:16:57 +0200 Subject: [PATCH] Don't expose empty `tags` dict in API and DCS --- patroni/api.py | 7 +++++-- patroni/ha.py | 5 +++-- tests/test_ha.py | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/patroni/api.py b/patroni/api.py index 3f51059b..2ae66e40 100644 --- a/patroni/api.py +++ b/patroni/api.py @@ -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) diff --git a/patroni/ha.py b/patroni/ha.py index f62e37af..e25a76df 100644 --- a/patroni/ha.py +++ b/patroni/ha.py @@ -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() diff --git a/tests/test_ha.py b/tests/test_ha.py index c38c4cc1..02c97f5a 100644 --- a/tests/test_ha.py +++ b/tests/test_ha.py @@ -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