Skip to content

Commit 2335fe5

Browse files
author
avandras
committed
Solve a small logic issue
1 parent c1a27a2 commit 2335fe5

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

patroni/ctl.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1414,7 +1414,8 @@ def _do_multisite_switchover(cluster_name: str, group: Optional[int],
14141414
raise PatroniCtlException('This cluster has no leader')
14151415

14161416
if cluster.leader and cluster.leader.multisite:
1417-
leader_site = cluster.leader.multisite.get('name')
1417+
leader_site = (cluster.leader.multisite.get('name') if not cluster.leader.multisite.get('standby_config') else
1418+
cluster.leader.multisite.get('standby_config', {}).get('leader_site'))
14181419
else:
14191420
raise PatroniCtlException('Multisite is not active or there is no leader site, cannot switch sites')
14201421

@@ -1498,7 +1499,7 @@ def _do_multisite_switchover(cluster_name: str, group: Optional[int],
14981499
logging.exception(r)
14991500
logging.warning('Failing over to DCS')
15001501
click.echo('{0} Could not perform site switchover using Patroni API, falling back to DCS'.format(timestamp()))
1501-
dcs.manual_failover(switchover_leader, candidate, scheduled_at=scheduled_at)
1502+
dcs.manual_failover(leader=switchover_leader, candidate='', target_site=candidate, scheduled_at=scheduled_at)
15021503

15031504
output_members(cluster, cluster_name, group=group)
15041505

@@ -1678,7 +1679,8 @@ def get_cluster_service_info(cluster: Dict[str, Any]) -> List[str]:
16781679
info = f"Multisite {cluster['multisite']['name'] or ''} is {cluster['multisite']['status'].lower()}"
16791680
standby_config = cluster['multisite'].get('standby_config', {})
16801681
if standby_config and standby_config.get('host'):
1681-
info += f", replicating from {standby_config['host']}:{standby_config.get('port', 5432)}"
1682+
info += f", replicating from {standby_config['leader_site']}"
1683+
info += f" ({standby_config['host']}:{standby_config.get('port', 5432)})"
16821684
service_info.append(info)
16831685

16841686
if cluster.get('pause'):

patroni/multisite.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ def _set_standby_config(self, other: Member):
172172
'host': other.data['host'],
173173
'port': other.data['port'],
174174
'create_replica_methods': ['basebackup'],
175+
'leader_site': other.name,
175176
}
176177
except KeyError:
177178
old_conf = self._standby_config

0 commit comments

Comments
 (0)