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