diff --git a/service/src/model/general.go b/service/src/model/general.go index 520fec7a..905cf88b 100644 --- a/service/src/model/general.go +++ b/service/src/model/general.go @@ -88,6 +88,7 @@ const ( type Sidecar struct { Host string `json:"host" form:"host"` Port int `json:"port" form:"port"` + Name *string `json:"name" form:"name"` Status *SidecarStatus `json:"status,omitempty" form:"status"` } diff --git a/service/src/service/patroni.go b/service/src/service/patroni.go index b2942942..22c259a8 100644 --- a/service/src/service/patroni.go +++ b/service/src/service/patroni.go @@ -74,7 +74,7 @@ func (p *patroniInstanceService) Overview(instance InstanceRequest) ([]Instance, Lag: lag, PendingRestart: patroniInstance.PendingRestart, Database: Database{Host: patroniInstance.Host, Port: patroniInstance.Port}, - Sidecar: Sidecar{Host: host, Port: port, Status: &sidecarStatus}, + Sidecar: Sidecar{Host: host, Port: port, Name: &patroniInstance.Name, Status: &sidecarStatus}, ScheduledRestart: scheduledRestart, ScheduledSwitchover: scheduledSwitchover, }) diff --git a/web/src/component/shared/actions/FailoverButton.tsx b/web/src/component/shared/actions/FailoverButton.tsx index 5aa81aa3..fac87449 100644 --- a/web/src/component/shared/actions/FailoverButton.tsx +++ b/web/src/component/shared/actions/FailoverButton.tsx @@ -12,8 +12,8 @@ export function FailoverButton(props: Props) { const {request, cluster, disabled} = props const failover = useRouterInstanceFailover(cluster) - - const body = {candidate: request.sidecar.host} + // NOTE: in patroni we cannot use host for leader and candidate, we need to send patroni.name + const body = {candidate: request.sidecar.name} return ( () const switchover = useRouterInstanceSwitchover(cluster) - const body = {leader: request.sidecar.host, candidate, scheduled_at: schedule} + // NOTE: in patroni we cannot use host for leader and candidate, we need to send patroni.name + const body = {leader: request.sidecar.name, candidate, scheduled_at: schedule} return ( setCandidates(e.target.value)} fullWidth={true} + variant={"outlined"} > none (will be chosen randomly) {candidates.map(sidecar => ( - {sidecar.host} + {sidecar.host} ))} diff --git a/web/src/type/general.ts b/web/src/type/general.ts index eef15777..bbba784d 100644 --- a/web/src/type/general.ts +++ b/web/src/type/general.ts @@ -80,6 +80,7 @@ export enum SidecarStatus { export interface Sidecar { host: string, port: number, + name?: string, status?: SidecarStatus, }