refactor(errors): simplify gperr.Builder usage

This commit is contained in:
yusing
2025-10-09 00:28:22 +08:00
parent bb5f0cdf09
commit d08be872a0
8 changed files with 13 additions and 19 deletions

Submodule goutils updated: 21e3d06e6b...66b3d4cbeb

View File

@@ -57,7 +57,7 @@ func validateFile(fileType FileType, content []byte) gperr.Error {
return config.Validate(content)
case FileTypeMiddleware:
errs := gperr.NewBuilder("middleware errors")
middleware.BuildMiddlewaresFromYAML("", content, errs)
middleware.BuildMiddlewaresFromYAML("", content, &errs)
return errs.Error()
}
return provider.Validate(content)

View File

@@ -62,7 +62,7 @@ func TestCIDRWhitelistValidation(t *testing.T) {
func TestCIDRWhitelist(t *testing.T) {
errs := gperr.NewBuilder("")
mids := BuildMiddlewaresFromYAML("", testCIDRWhitelistCompose, errs)
mids := BuildMiddlewaresFromYAML("", testCIDRWhitelistCompose, &errs)
expect.NoError(t, errs.Error())
deny = mids["deny@file"]
accept = mids["accept@file"]

View File

@@ -14,7 +14,7 @@ var testMiddlewareCompose []byte
func TestBuild(t *testing.T) {
errs := gperr.NewBuilder("")
middlewares := BuildMiddlewaresFromYAML("", testMiddlewareCompose, errs)
middlewares := BuildMiddlewaresFromYAML("", testMiddlewareCompose, &errs)
expect.NoError(t, errs.Error())
expect.Must(json.MarshalIndent(middlewares, "", " "))
// t.Log(string(data))

View File

@@ -73,7 +73,7 @@ func LoadComposeFiles() {
}
for _, defFile := range middlewareDefs {
voidErrs := gperr.NewBuilder("") // ignore these errors, will be added in next step
mws := BuildMiddlewaresFromComposeFile(defFile, voidErrs)
mws := BuildMiddlewaresFromComposeFile(defFile, &voidErrs)
if len(mws) == 0 {
continue
}
@@ -92,7 +92,7 @@ func LoadComposeFiles() {
}
// build again to resolve cross references
for _, defFile := range middlewareDefs {
mws := BuildMiddlewaresFromComposeFile(defFile, errs)
mws := BuildMiddlewaresFromComposeFile(defFile, &errs)
if len(mws) == 0 {
continue
}

View File

@@ -12,7 +12,7 @@ import (
type EventHandler struct {
provider *Provider
errs *gperr.Builder
errs gperr.Builder
}
func (p *Provider) newEventHandler() *EventHandler {

View File

@@ -219,19 +219,19 @@ func (r *Route) Validate() gperr.Error {
switch r.Scheme {
case route.SchemeFileServer:
r.ProxyURL = gperr.Collect(errs, nettypes.ParseURL, "file://"+r.Root)
r.ProxyURL = gperr.Collect(&errs, nettypes.ParseURL, "file://"+r.Root)
r.Host = ""
r.Port.Proxy = 0
case route.SchemeHTTP, route.SchemeHTTPS:
if r.Port.Listening != 0 {
errs.Addf("unexpected listening port for %s scheme", r.Scheme)
}
r.ProxyURL = gperr.Collect(errs, nettypes.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy))
r.ProxyURL = gperr.Collect(&errs, nettypes.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy))
case route.SchemeTCP, route.SchemeUDP:
if !r.ShouldExclude() {
r.LisURL = gperr.Collect(errs, nettypes.ParseURL, fmt.Sprintf("%s://:%d", r.Scheme, r.Port.Listening))
r.LisURL = gperr.Collect(&errs, nettypes.ParseURL, fmt.Sprintf("%s://:%d", r.Scheme, r.Port.Listening))
}
r.ProxyURL = gperr.Collect(errs, nettypes.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy))
r.ProxyURL = gperr.Collect(&errs, nettypes.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy))
}
if !r.UseHealthCheck() && (r.UseLoadBalance() || r.UseIdleWatcher()) {

View File

@@ -54,21 +54,15 @@ type (
} // @name ContainerImage
ContainerError struct {
errs *gperr.Builder
errs gperr.Builder
}
)
func (e *ContainerError) Add(err error) {
if e.errs == nil {
e.errs = gperr.NewBuilder()
}
e.errs.Add(err)
}
func (e *ContainerError) Error() string {
if e.errs == nil {
return "<niL>"
}
return e.errs.String()
}
@@ -77,6 +71,6 @@ func (e *ContainerError) Unwrap() error {
}
func (e *ContainerError) MarshalJSON() ([]byte, error) {
err := e.errs.Error().(interface{ Plain() []byte })
err := e.errs.Error().(gperr.PlainError)
return sonic.Marshal(string(err.Plain()))
}