mirror of
https://github.com/outbackdingo/patroni.git
synced 2026-08-31 08:39:34 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25aa49b240 | ||
|
|
322aa45e09 |
@@ -34,9 +34,9 @@ Scenario: check local configuration reload
|
|||||||
Then I receive a response code 202
|
Then I receive a response code 202
|
||||||
|
|
||||||
Scenario: check dynamic configuration change via DCS
|
Scenario: check dynamic configuration change via DCS
|
||||||
Given I issue a PATCH request to http://127.0.0.1:8008/config with {"ttl": 10, "loop_wait": 2, "postgresql": {"parameters": {"max_connections": 101}}}
|
Given I run patronictl.py edit-config -s 'ttl=10' -s 'loop_wait=2' -p 'max_connections=101' --force batman
|
||||||
Then I receive a response code 200
|
Then I receive a response returncode 0
|
||||||
And I receive a response loop_wait 2
|
And I receive a response output "+loop_wait: 2"
|
||||||
And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds
|
And Response on GET http://127.0.0.1:8008/patroni contains pending_restart after 11 seconds
|
||||||
When I issue a GET request to http://127.0.0.1:8008/config
|
When I issue a GET request to http://127.0.0.1:8008/config
|
||||||
Then I receive a response code 200
|
Then I receive a response code 200
|
||||||
@@ -65,8 +65,8 @@ Scenario: check API requests for the primary-replica pair in the pause mode
|
|||||||
Then postgres1 role is the secondary after 15 seconds
|
Then postgres1 role is the secondary after 15 seconds
|
||||||
|
|
||||||
Scenario: check the failover via the API in the pause mode
|
Scenario: check the failover via the API in the pause mode
|
||||||
Given I run patronictl.py failover batman --master postgres0 --candidate postgres1 --force
|
Given I issue a POST request to http://127.0.0.1:8008/failover with {"leader": "postgres0", "candidate": "postgres1"}
|
||||||
Then I receive a response returncode 0
|
Then I receive a response code 200
|
||||||
And postgres1 is a leader after 5 seconds
|
And postgres1 is a leader after 5 seconds
|
||||||
And postgres1 role is the primary after 10 seconds
|
And postgres1 role is the primary after 10 seconds
|
||||||
And postgres0 role is the secondary after 10 seconds
|
And postgres0 role is the secondary after 10 seconds
|
||||||
|
|||||||
+5
-5
@@ -903,14 +903,14 @@ def apply_config_changes(before_editing, data, kvpairs):
|
|||||||
if prefix == ('postgresql', 'parameters'):
|
if prefix == ('postgresql', 'parameters'):
|
||||||
path = ['.'.join(path)]
|
path = ['.'.join(path)]
|
||||||
|
|
||||||
|
key = path[0]
|
||||||
if len(path) == 1:
|
if len(path) == 1:
|
||||||
if value is None:
|
if value is None:
|
||||||
config.pop(path[0], None)
|
config.pop(key, None)
|
||||||
else:
|
else:
|
||||||
config[path[0]] = value
|
config[key] = value
|
||||||
else:
|
else:
|
||||||
key = path[0]
|
if not isinstance(config.get(key), dict):
|
||||||
if key not in config:
|
|
||||||
config[key] = {}
|
config[key] = {}
|
||||||
set_path_value(config[key], path[1:], value, prefix + (key,))
|
set_path_value(config[key], path[1:], value, prefix + (key,))
|
||||||
if config[key] == {}:
|
if config[key] == {}:
|
||||||
@@ -1017,7 +1017,7 @@ def edit_config(obj, cluster_name, force, quiet, kvpairs, pgkvpairs, apply_filen
|
|||||||
return
|
return
|
||||||
|
|
||||||
if force or click.confirm('Apply these changes?'):
|
if force or click.confirm('Apply these changes?'):
|
||||||
if not dcs.set_config_value(json.dumps(changed_data), cluster.config.modify_index):
|
if not dcs.set_config_value(json.dumps(changed_data), cluster.config.index):
|
||||||
raise PatroniCtlException("Config modification aborted due to concurrent changes")
|
raise PatroniCtlException("Config modification aborted due to concurrent changes")
|
||||||
click.echo("Configuration changed")
|
click.echo("Configuration changed")
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
__version__ = '1.3.1'
|
__version__ = '1.3.2'
|
||||||
|
|||||||
Reference in New Issue
Block a user