Skip to content
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 10 additions & 12 deletions pkg/cloudevents/clients/addon/wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@ package addon
import (
"context"

"open-cluster-management.io/sdk-go/pkg/cloudevents/clients/addon/v1beta1"

"k8s.io/client-go/discovery"

addonapiv1alpha1 "open-cluster-management.io/api/addon/v1alpha1"
addonapiv1beta1 "open-cluster-management.io/api/addon/v1beta1"
addonclientset "open-cluster-management.io/api/client/addon/clientset/versioned"
addonv1alpha1client "open-cluster-management.io/api/client/addon/clientset/versioned/typed/addon/v1alpha1"
addonv1v1beta1client "open-cluster-management.io/api/client/addon/clientset/versioned/typed/addon/v1beta1"

"open-cluster-management.io/sdk-go/pkg/cloudevents/clients/addon/v1alpha1"
"open-cluster-management.io/sdk-go/pkg/cloudevents/clients/addon/v1beta1"
"open-cluster-management.io/sdk-go/pkg/cloudevents/clients/options"
)

Expand All @@ -33,21 +32,20 @@ func (a AddonClientSetWrapper) AddonV1alpha1() addonv1alpha1client.AddonV1alpha1
}

func (a AddonClientSetWrapper) AddonV1beta1() addonv1v1beta1client.AddonV1beta1Interface {
if a.betaClient == nil {
panic("AddonV1beta1 is not initialized")
}
return a.betaClient
}

// ManagedClusterAddOnInterface returns a client for ManagedClusterAddOn
func ManagedClusterAddOnInterface(ctx context.Context, opt *options.GenericClientOptions[*addonapiv1alpha1.ManagedClusterAddOn]) (addonclientset.Interface, error) {
cloudEventsClient, err := opt.AgentClient(ctx)
func ManagedClusterAddOnInterface(
ctx context.Context,
v1beta1Opt *options.GenericClientOptions[*addonapiv1beta1.ManagedClusterAddOn]) (addonclientset.Interface, error) {
v1beta1ceClient, err := v1beta1Opt.AgentClient(ctx)
if err != nil {
return nil, err
}
v1beta1AddonClient := v1beta1.NewManagedClusterAddOnClient(v1beta1ceClient, v1beta1Opt.WatcherStore())

addonClient := v1alpha1.NewManagedClusterAddOnClient(cloudEventsClient, opt.WatcherStore())

// TODO switch to v1beta1
return &AddonClientSetWrapper{alphaClient: v1alpha1.NewAddonClientWrapper(addonClient)}, nil
return &AddonClientSetWrapper{
betaClient: v1beta1.NewAddonClientWrapper(v1beta1AddonClient),
}, nil
Comment thread
coderabbitai[bot] marked this conversation as resolved.
}
12 changes: 6 additions & 6 deletions pkg/cloudevents/clients/errors/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@ import (

grpcstatus "google.golang.org/grpc/status"

"k8s.io/apimachinery/pkg/api/errors"
apierros "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
)

const StatusReasonPublishError metav1.StatusReason = "PublishError"

// ToStatusError converts the err to a kube status error
func ToStatusError(qualifiedResource schema.GroupResource, name string, err error) *errors.StatusError {
func ToStatusError(qualifiedResource schema.GroupResource, name string, err error) *apierros.StatusError {
grpcErr, ok := grpcstatus.FromError(err)
if !ok {
return NewPublishError(qualifiedResource, name, err)
}

var statusErr errors.StatusError
var statusErr apierros.StatusError
if unmarshalErr := json.Unmarshal([]byte(grpcErr.Message()), &statusErr); unmarshalErr != nil {
return NewPublishError(qualifiedResource, name, err)
}
Expand All @@ -30,8 +30,8 @@ func ToStatusError(qualifiedResource schema.GroupResource, name string, err erro
}

// NewPublishError returns an error indicating a resource could not be published, and the client can try again.
func NewPublishError(qualifiedResource schema.GroupResource, name string, err error) *errors.StatusError {
return &errors.StatusError{
func NewPublishError(qualifiedResource schema.GroupResource, name string, err error) *apierros.StatusError {
return &apierros.StatusError{
ErrStatus: metav1.Status{
Status: metav1.StatusFailure,
Code: http.StatusInternalServerError,
Expand All @@ -50,5 +50,5 @@ func NewPublishError(qualifiedResource schema.GroupResource, name string, err er
// IsPublishError determines if err is a publish error which indicates that the request can be retried
// by the client.
func IsPublishError(err error) bool {
return errors.ReasonForError(err) == StatusReasonPublishError
return apierros.ReasonForError(err) == StatusReasonPublishError
}
Loading