@@ -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' ):
0 commit comments