evcc icon indicating copy to clipboard operation
evcc copied to clipboard

Add error class for config file issues

Open andig opened this issue 1 year ago • 6 comments

Fix https://github.com/evcc-io/evcc/issues/14373, replace https://github.com/evcc-io/evcc/pull/14375

TODO:

  • [ ] No auth prompt if fatal error (yaml or db init) @naltatis

andig avatar Jun 20 '24 18:06 andig

@naltatis ich glaube das funktioniert noch nicht wie gewünscht weil der YAML Error jetzt eine ganz andere Struktur bekommt und damit die line/column Information verliert. Mir ist noch nichts Schlaues eingefallen.

Workaround: wir drehen das Thema Config File zurück (nicht aber DB) und Du überlegst Dir eine andere Erkennung für diesen Fehlertyp?

andig avatar Jun 21 '24 15:06 andig

Workaround: wir drehen das Thema Config File zurück (nicht aber DB) und Du überlegst Dir eine andere Erkennung für diesen Fehlertyp?

Hm, dann würde ich ja nicht mehr rausbekommen, ob die DB gefunden/initialiisiert wurde oder nicht. Oder übersehe ich was?

naltatis avatar Jun 21 '24 17:06 naltatis

Ja, wie gehabt: wenn yaml error (ob mit Class oder ohne) dann keine DB. Ebenso wenn DB Class error.

andig avatar Jun 21 '24 17:06 andig

Oder: wir machen das Wrapping fürs Config file anders, analog:

func jsonError(w http.ResponseWriter, status int, err error) {
	w.WriteHeader(status)

	res := struct {
		Error string `json:"error"`
		Line  int    `json:"line,omitempty"`
	}{
		Error: err.Error(),
	}

	var (
		ype *yaml.ParserError
		yue yaml.UnmarshalError
	)
	switch {
	case errors.As(err, &ype):
		res.Line = ype.Line
	case errors.As(err, &yue):
		res.Line = yue.Line
	}

	jsonWrite(w, res)
}

Das bringt mich auf folgende Frage: was würdest Du erwarten, wenn es bei UI Config bei einem Gerät zu einem YAML Error käme beim Start? Auch dort würden wir aktuell die strukturierte Zeileninformation verschlucken.

andig avatar Jun 22 '24 08:06 andig

@naltatis nochmal angehübscht falls etwas Unvorhergesehenes passiert. Kann rein?

andig avatar Jun 29 '24 14:06 andig

Hier fehlt noch der Gegenpart im UI. Kümmer ich mich drum ...

naltatis avatar Jun 29 '24 18:06 naltatis

UI kann nun mit den Fehlerzuständen sauber umgehen. Kann rein ...

naltatis avatar Jul 09 '24 21:07 naltatis