Skip to content

Commit

Permalink
Wrap errors for error reports with stack traces (#331)
Browse files Browse the repository at this point in the history
  • Loading branch information
orishoshan committed Jan 4, 2024
1 parent ff9803f commit 71b52a4
Show file tree
Hide file tree
Showing 57 changed files with 527 additions and 459 deletions.
9 changes: 5 additions & 4 deletions src/operator/api/v1alpha2/intents_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"encoding/hex"
"encoding/json"
"fmt"
"github.com/otterize/intents-operator/src/shared/errors"
"strconv"
"strings"

Expand Down Expand Up @@ -305,7 +306,7 @@ func (in *ClientIntents) GetServersWithoutSidecar() (sets.Set[string], error) {
serversList := make([]string, 0)
err := json.Unmarshal([]byte(servers), &serversList)
if err != nil {
return nil, err
return nil, errors.Wrap(err)
}

return sets.New[string](serversList...), nil
Expand All @@ -314,7 +315,7 @@ func (in *ClientIntents) GetServersWithoutSidecar() (sets.Set[string], error) {
func (in *ClientIntents) IsServerMissingSidecar(intent Intent) (bool, error) {
serversSet, err := in.GetServersWithoutSidecar()
if err != nil {
return false, err
return false, errors.Wrap(err)
}
serverIdentity := GetFormattedOtterizeIdentity(intent.GetTargetServerName(), intent.GetTargetServerNamespace(in.Namespace))
return serversSet.Has(serverIdentity), nil
Expand All @@ -327,7 +328,7 @@ func (in *ClientIntentsList) FormatAsOtterizeIntents() ([]*graphqlclient.IntentI
input := intent.ConvertToCloudFormat(clientIntents.Namespace, clientIntents.GetServiceName())
statusInput, err := clientIntentsStatusToCloudFormat(clientIntents, intent)
if err != nil {
return nil, err
return nil, errors.Wrap(err)
}

input.Status = statusInput
Expand Down Expand Up @@ -373,7 +374,7 @@ func clientIntentsStatusToCloudFormat(clientIntents ClientIntents, intent Intent
status.IstioStatus.IsClientMissingSidecar = lo.ToPtr(clientMissingSidecar)
isServerMissingSidecar, err := clientIntents.IsServerMissingSidecar(intent)
if err != nil {
return nil, err
return nil, errors.Wrap(err)
}
status.IstioStatus.IsServerMissingSidecar = lo.ToPtr(isServerMissingSidecar)
return &status, nil
Expand Down
9 changes: 5 additions & 4 deletions src/operator/api/v1alpha3/clientintents_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"encoding/hex"
"encoding/json"
"fmt"
"github.com/otterize/intents-operator/src/shared/errors"
"strconv"
"strings"

Expand Down Expand Up @@ -352,7 +353,7 @@ func (in *ClientIntents) GetServersWithoutSidecar() (sets.Set[string], error) {
serversList := make([]string, 0)
err := json.Unmarshal([]byte(servers), &serversList)
if err != nil {
return nil, err
return nil, errors.Wrap(err)
}

return sets.New[string](serversList...), nil
Expand All @@ -361,7 +362,7 @@ func (in *ClientIntents) GetServersWithoutSidecar() (sets.Set[string], error) {
func (in *ClientIntents) IsServerMissingSidecar(intent Intent) (bool, error) {
serversSet, err := in.GetServersWithoutSidecar()
if err != nil {
return false, err
return false, errors.Wrap(err)
}
serverIdentity := GetFormattedOtterizeIdentity(intent.GetTargetServerName(), intent.GetTargetServerNamespace(in.Namespace))
return serversSet.Has(serverIdentity), nil
Expand All @@ -374,7 +375,7 @@ func (in *ClientIntentsList) FormatAsOtterizeIntents() ([]*graphqlclient.IntentI
input := intent.ConvertToCloudFormat(clientIntents.Namespace, clientIntents.GetServiceName())
statusInput, err := clientIntentsStatusToCloudFormat(clientIntents, intent)
if err != nil {
return nil, err
return nil, errors.Wrap(err)
}

input.Status = statusInput
Expand Down Expand Up @@ -420,7 +421,7 @@ func clientIntentsStatusToCloudFormat(clientIntents ClientIntents, intent Intent
status.IstioStatus.IsClientMissingSidecar = lo.ToPtr(clientMissingSidecar)
isServerMissingSidecar, err := clientIntents.IsServerMissingSidecar(intent)
if err != nil {
return nil, err
return nil, errors.Wrap(err)
}
status.IstioStatus.IsServerMissingSidecar = lo.ToPtr(isServerMissingSidecar)
return &status, nil
Expand Down
7 changes: 4 additions & 3 deletions src/operator/controllers/aws_pod_reconciler/pods.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package aws_pod_reconciler
import (
"context"
otterizev1alpha3 "github.com/otterize/intents-operator/src/operator/api/v1alpha3"
"github.com/otterize/intents-operator/src/shared/errors"
"github.com/otterize/intents-operator/src/shared/injectablerecorder"
"github.com/otterize/intents-operator/src/shared/serviceidresolver"
"github.com/samber/lo"
Expand Down Expand Up @@ -54,12 +55,12 @@ func (p *AWSPodReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr
}

if err != nil {
return ctrl.Result{}, err
return ctrl.Result{}, errors.Wrap(err)
}

serviceID, err := p.serviceIdResolver.ResolvePodToServiceIdentity(ctx, &pod)
if err != nil {
return ctrl.Result{}, err
return ctrl.Result{}, errors.Wrap(err)
}

// If a new pod starts, check if we need to do something for it.
Expand All @@ -70,7 +71,7 @@ func (p *AWSPodReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr
client.MatchingFields{OtterizeClientNameIndexField: serviceID.Name},
&client.ListOptions{Namespace: pod.Namespace})
if err != nil {
return ctrl.Result{}, err
return ctrl.Result{}, errors.Wrap(err)
}

for _, intent := range intents.Items {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package external_traffic
import (
"context"
"github.com/otterize/intents-operator/src/operator/api/v1alpha2"
"github.com/otterize/intents-operator/src/shared/errors"
"github.com/otterize/intents-operator/src/shared/injectablerecorder"
"github.com/samber/lo"
corev1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -63,13 +64,13 @@ func (r *EndpointsReconcilerImpl) Reconcile(ctx context.Context, req ctrl.Reques
}

if err != nil {
return ctrl.Result{}, err
return ctrl.Result{}, errors.Wrap(err)
}

err = r.extNetpolHandler.HandleEndpoints(ctx, endpoints)

if err != nil {
return ctrl.Result{}, err
return ctrl.Result{}, errors.Wrap(err)
}

return ctrl.Result{}, nil
Expand All @@ -87,7 +88,7 @@ func (r *EndpointsReconcilerImpl) InitIngressReferencedServicesIndex(mgr ctrl.Ma
})

if err != nil {
return err
return errors.Wrap(err)
}

return nil
Expand Down
13 changes: 7 additions & 6 deletions src/operator/controllers/external_traffic/ingress_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package external_traffic
import (
"context"
otterizev1alpha3 "github.com/otterize/intents-operator/src/operator/api/v1alpha2"
"github.com/otterize/intents-operator/src/shared/errors"
"github.com/otterize/intents-operator/src/shared/injectablerecorder"
"github.com/samber/lo"
v1 "k8s.io/api/networking/v1"
Expand Down Expand Up @@ -51,13 +52,13 @@ func (r *IngressReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
// if the controller restarts
services, err := r.getServicesReferencedByNetworkPoliciesCreatedForIngress(ctx, req.NamespacedName)
if err != nil {
return ctrl.Result{}, err
return ctrl.Result{}, errors.Wrap(err)
}

for service := range services {
err := r.extNetpolHandler.HandleEndpointsByName(ctx, service, req.Namespace)
if err != nil {
return ctrl.Result{}, err
return ctrl.Result{}, errors.Wrap(err)
}
}
return ctrl.Result{}, nil
Expand All @@ -73,7 +74,7 @@ func (r *IngressReconciler) getServicesReferencedByNetworkPoliciesCreatedForIngr
err := r.List(ctx, netpolList, &client.MatchingFields{otterizev1alpha3.NetworkPoliciesByIngressNameIndexField: ingressName.Name},
&client.ListOptions{Namespace: ingressName.Namespace})
if err != nil {
return nil, err
return nil, errors.Wrap(err)
}

for _, netpol := range netpolList.Items {
Expand All @@ -92,7 +93,7 @@ func (r *IngressReconciler) reconcileIngressCreateOrUpdate(ctx context.Context,

netpolReferencedServices, err := r.getServicesReferencedByNetworkPoliciesCreatedForIngress(ctx, types.NamespacedName{Name: ingress.Name, Namespace: ingress.Namespace})
if err != nil {
return ctrl.Result{}, err
return ctrl.Result{}, errors.Wrap(err)
}

services = services.Union(netpolReferencedServices)
Expand All @@ -101,7 +102,7 @@ func (r *IngressReconciler) reconcileIngressCreateOrUpdate(ctx context.Context,
for service := range services {
err := r.extNetpolHandler.HandleEndpointsByName(ctx, service, ingress.Namespace)
if err != nil {
return ctrl.Result{}, err
return ctrl.Result{}, errors.Wrap(err)
}
}
return ctrl.Result{}, nil
Expand All @@ -125,7 +126,7 @@ func (r *IngressReconciler) InitNetworkPoliciesByIngressNameIndex(mgr ctrl.Manag
})

if err != nil {
return err
return errors.Wrap(err)
}

return nil
Expand Down
Loading

0 comments on commit 71b52a4

Please sign in to comment.