mirror of
https://github.com/outbackdingo/patroni.git
synced 2026-08-25 14:53:37 +00:00
Support change of superuser and replication credentials on reload (#445)
Fixes: https://github.com/zalando/patroni/issues/353 and: https://github.com/zalando/patroni/issues/443
This commit is contained in:
committed by
GitHub
parent
37c1552c0a
commit
7633b19213
@@ -99,7 +99,6 @@ class Postgresql(object):
|
||||
|
||||
self._connect_address = config.get('connect_address')
|
||||
self._superuser = config['authentication'].get('superuser', {})
|
||||
self._replication = config['authentication']['replication']
|
||||
self.resolve_connection_addresses()
|
||||
|
||||
self._rewind_state = REWIND_STATUS.INITIAL
|
||||
@@ -156,6 +155,10 @@ class Postgresql(object):
|
||||
def use_slots(self):
|
||||
return self._use_slots and self._major_version >= 9.4
|
||||
|
||||
@property
|
||||
def _replication(self):
|
||||
return self.config['authentication']['replication']
|
||||
|
||||
@property
|
||||
def callback(self):
|
||||
return self.config.get('callbacks') or {}
|
||||
@@ -235,6 +238,7 @@ class Postgresql(object):
|
||||
return return_codes.get(ret, STATE_UNKNOWN)
|
||||
|
||||
def reload_config(self, config):
|
||||
self._superuser = config['authentication'].get('superuser', {})
|
||||
server_parameters = self.get_server_parameters(config)
|
||||
|
||||
listen_address_changed = pending_reload = pending_restart = False
|
||||
|
||||
@@ -585,14 +585,16 @@ class TestPostgresql(unittest.TestCase):
|
||||
def test_reload_config(self):
|
||||
parameters = self._PARAMETERS.copy()
|
||||
parameters.pop('f.oo')
|
||||
self.p.reload_config({'retry_timeout': 10, 'listen': '*', 'parameters': parameters})
|
||||
config = {'authentication': {}, 'retry_timeout': 10, 'listen': '*', 'parameters': parameters}
|
||||
self.p.reload_config(config)
|
||||
parameters['b.ar'] = 'bar'
|
||||
self.p.reload_config({'retry_timeout': 10, 'listen': '*', 'parameters': parameters})
|
||||
self.p.reload_config(config)
|
||||
parameters['autovacuum'] = 'on'
|
||||
self.p.reload_config({'retry_timeout': 10, 'listen': '*', 'parameters': parameters})
|
||||
self.p.reload_config(config)
|
||||
parameters['autovacuum'] = 'off'
|
||||
parameters.pop('search_path')
|
||||
self.p.reload_config({'retry_timeout': 10, 'listen': '*:5433', 'parameters': parameters})
|
||||
config['listen'] = '*:5433'
|
||||
self.p.reload_config(config)
|
||||
|
||||
@patch.object(Postgresql, '_version_file_exists', Mock(return_value=True))
|
||||
def test_get_major_version(self):
|
||||
|
||||
Reference in New Issue
Block a user