Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: return KError instead of errors in AlterConfigs and DescribeConfig #2472

Merged
merged 1 commit into from Jan 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 2 additions & 8 deletions admin.go
Expand Up @@ -684,11 +684,8 @@ func (ca *clusterAdmin) DescribeConfig(resource ConfigResource) ([]ConfigEntry,

for _, rspResource := range rsp.Resources {
if rspResource.Name == resource.Name {
if rspResource.ErrorMsg != "" {
return nil, errors.New(rspResource.ErrorMsg)
}
if rspResource.ErrorCode != 0 {
return nil, KError(rspResource.ErrorCode)
return nil, &DescribeConfigError{Err: KError(rspResource.ErrorCode), ErrMsg: rspResource.ErrorMsg}
}
for _, cfgEntry := range rspResource.Configs {
entries = append(entries, *cfgEntry)
Expand Down Expand Up @@ -739,11 +736,8 @@ func (ca *clusterAdmin) AlterConfig(resourceType ConfigResourceType, name string

for _, rspResource := range rsp.Resources {
if rspResource.Name == name {
if rspResource.ErrorMsg != "" {
return errors.New(rspResource.ErrorMsg)
}
if rspResource.ErrorCode != 0 {
return KError(rspResource.ErrorCode)
return &AlterConfigError{Err: KError(rspResource.ErrorCode), ErrMsg: rspResource.ErrorMsg}
}
}
}
Expand Down
18 changes: 17 additions & 1 deletion alter_configs_response.go
@@ -1,13 +1,29 @@
package sarama

import "time"
import (
"fmt"
"time"
)

// AlterConfigsResponse is a response type for alter config
type AlterConfigsResponse struct {
ThrottleTime time.Duration
Resources []*AlterConfigsResourceResponse
}

type AlterConfigError struct {
Err KError
ErrMsg string
}

func (c *AlterConfigError) Error() string {
text := c.Err.Error()
if c.ErrMsg != "" {
text = fmt.Sprintf("%s - %s", text, c.ErrMsg)
}
return text
}

// AlterConfigsResourceResponse is a response type for alter config resource
type AlterConfigsResourceResponse struct {
ErrorCode int16
Expand Down
13 changes: 13 additions & 0 deletions describe_configs_response.go
Expand Up @@ -34,6 +34,19 @@ const (
SourceDefault
)

type DescribeConfigError struct {
Err KError
ErrMsg string
}

func (c *DescribeConfigError) Error() string {
text := c.Err.Error()
if c.ErrMsg != "" {
text = fmt.Sprintf("%s - %s", text, c.ErrMsg)
}
return text
}

type DescribeConfigsResponse struct {
Version int16
ThrottleTime time.Duration
Expand Down