code: func (e *EngineClient) HAUpdate(status seesaw.HAStatus) (bool, error) {
  	engineConn, err := net.DialTimeout("unix", e.Socket, engineTimeout)
  	if err != nil {
  		return false, fmt.Errorf("HAUpdate: Dial failed: %v", err)
  	}
  	engineConn.SetDeadline(time.Now().Add(engineTimeout))
  	engine := rpc.NewClient(engineConn)
  	defer engine.Close()
  
  	var failover bool
  	ctx := ipc.NewTrustedContext(seesaw.SCHA)
  	if err := engine.Call("SeesawEngine.HAUpdate", &ipc.HAStatus{ctx, status}, &failover); err != nil {
  		return false, fmt.Errorf("HAUpdate: SeesawEngine.HAUpdate failed: %v", err)
  	}
  	return failover, nil
  }
docs: // HAUpdate informs the Seesaw Engine of the current HAStatus.
  // The Seesaw Engine may request a failover in response.