Skip to content

Commit 2be30da

Browse files
author
avandras
committed
Solve a small logic issue
1 parent a7d7466 commit 2be30da

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
@@ -1424,7 +1424,8 @@ def _do_multisite_switchover(cluster_name: str, group: Optional[int],
14241424
raise PatroniCtlException('This cluster has no leader')
14251425

14261426
if cluster.leader and cluster.leader.multisite:
1427-
leader_site = cluster.leader.multisite.get('name')
1427+
leader_site = (cluster.leader.multisite.get('name') if not cluster.leader.multisite.get('standby_config') else
1428+
cluster.leader.multisite.get('standby_config', {}).get('leader_site'))
14281429
else:
14291430
raise PatroniCtlException('Multisite is not active or there is no leader site, cannot switch sites')
14301431

@@ -1508,7 +1509,7 @@ def _do_multisite_switchover(cluster_name: str, group: Optional[int],
15081509
logging.exception(r)
15091510
logging.warning('Failing over to DCS')
15101511
click.echo('{0} Could not perform site switchover using Patroni API, falling back to DCS'.format(timestamp()))
1511-
dcs.manual_failover(switchover_leader, candidate, scheduled_at=scheduled_at)
1512+
dcs.manual_failover(leader=switchover_leader, candidate='', target_site=candidate, scheduled_at=scheduled_at)
15121513

15131514
output_members(cluster, cluster_name, group=group)
15141515

@@ -1688,7 +1689,8 @@ def get_cluster_service_info(cluster: Dict[str, Any]) -> List[str]:
16881689
info = f"Multisite {cluster['multisite']['name'] or ''} is {cluster['multisite']['status'].lower()}"
16891690
standby_config = cluster['multisite'].get('standby_config', {})
16901691
if standby_config and standby_config.get('host'):
1691-
info += f", replicating from {standby_config['host']}:{standby_config.get('port', 5432)}"
1692+
info += f", replicating from {standby_config['leader_site']}"
1693+
info += f" ({standby_config['host']}:{standby_config.get('port', 5432)})"
16921694
service_info.append(info)
16931695

16941696
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)