Skip to content

Commit a45a7a7

Browse files
crenshaw-devschakrad
authored andcommitted
chore: better error messages (argoproj#11738)
* chore: better error messages Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * Update util/db/cluster.go Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> Signed-off-by: schakrad <chakradari.sindhu@gmail.com>
1 parent d682dec commit a45a7a7

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

controller/appcontroller.go

+11-7
Original file line numberDiff line numberDiff line change
@@ -417,15 +417,15 @@ func (ctrl *ApplicationController) getResourceTree(a *appv1.Application, managed
417417
nodes := make([]appv1.ResourceNode, 0)
418418
proj, err := ctrl.getAppProj(a)
419419
if err != nil {
420-
return nil, err
420+
return nil, fmt.Errorf("failed to get project: %w", err)
421421
}
422422

423423
orphanedNodesMap := make(map[kube.ResourceKey]appv1.ResourceNode)
424424
warnOrphaned := true
425425
if proj.Spec.OrphanedResources != nil {
426426
orphanedNodesMap, err = ctrl.stateCache.GetNamespaceTopLevelResources(a.Spec.Destination.Server, a.Spec.Destination.Namespace)
427427
if err != nil {
428-
return nil, err
428+
return nil, fmt.Errorf("failed to get namespace top-level resources: %w", err)
429429
}
430430
warnOrphaned = proj.Spec.OrphanedResources.IsWarn()
431431
}
@@ -435,12 +435,12 @@ func (ctrl *ApplicationController) getResourceTree(a *appv1.Application, managed
435435
var live = &unstructured.Unstructured{}
436436
err := json.Unmarshal([]byte(managedResource.LiveState), &live)
437437
if err != nil {
438-
return nil, err
438+
return nil, fmt.Errorf("failed to unmarshal live state of managed resources: %w", err)
439439
}
440440
var target = &unstructured.Unstructured{}
441441
err = json.Unmarshal([]byte(managedResource.TargetState), &target)
442442
if err != nil {
443-
return nil, err
443+
return nil, fmt.Errorf("failed to unmarshal target state of managed resources: %w", err)
444444
}
445445

446446
if live == nil {
@@ -456,7 +456,11 @@ func (ctrl *ApplicationController) getResourceTree(a *appv1.Application, managed
456456
} else {
457457
err := ctrl.stateCache.IterateHierarchy(a.Spec.Destination.Server, kube.GetResourceKey(live), func(child appv1.ResourceNode, appName string) bool {
458458
permitted, _ := proj.IsResourcePermitted(schema.GroupKind{Group: child.ResourceRef.Group, Kind: child.ResourceRef.Kind}, child.Namespace, a.Spec.Destination, func(project string) ([]*appv1.Cluster, error) {
459-
return ctrl.db.GetProjectClusters(context.TODO(), project)
459+
clusters, err := ctrl.db.GetProjectClusters(context.TODO(), project)
460+
if err != nil {
461+
return nil, fmt.Errorf("failed to get project clusters: %w", err)
462+
}
463+
return clusters, nil
460464
})
461465
if !permitted {
462466
return false
@@ -465,7 +469,7 @@ func (ctrl *ApplicationController) getResourceTree(a *appv1.Application, managed
465469
return true
466470
})
467471
if err != nil {
468-
return nil, err
472+
return nil, fmt.Errorf("failed to iterate resource hierarchy: %w", err)
469473
}
470474
}
471475
}
@@ -514,7 +518,7 @@ func (ctrl *ApplicationController) getResourceTree(a *appv1.Application, managed
514518

515519
hosts, err := ctrl.getAppHosts(a, nodes)
516520
if err != nil {
517-
return nil, err
521+
return nil, fmt.Errorf("failed to get app hosts: %w", err)
518522
}
519523
return &appv1.ApplicationTree{Nodes: nodes, OrphanedNodes: orphanedNodes, Hosts: hosts}, nil
520524
}

util/db/cluster.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package db
22

33
import (
4+
"context"
45
"encoding/json"
56
"fmt"
67
"strconv"
78
"strings"
89
"sync"
910
"time"
1011

11-
"context"
1212
log "github.com/sirupsen/logrus"
1313
"google.golang.org/grpc/codes"
1414
"google.golang.org/grpc/status"
@@ -233,17 +233,17 @@ func (db *db) GetCluster(_ context.Context, server string) (*appv1.Cluster, erro
233233
func (db *db) GetProjectClusters(ctx context.Context, project string) ([]*appv1.Cluster, error) {
234234
informer, err := db.settingsMgr.GetSecretsInformer()
235235
if err != nil {
236-
return nil, err
236+
return nil, fmt.Errorf("failed to get secrets informer: %w", err)
237237
}
238238
secrets, err := informer.GetIndexer().ByIndex(settings.ByProjectClusterIndexer, project)
239239
if err != nil {
240-
return nil, err
240+
return nil, fmt.Errorf("failed to get index by project cluster indexer for project %q: %w", project, err)
241241
}
242242
var res []*appv1.Cluster
243243
for i := range secrets {
244244
cluster, err := secretToCluster(secrets[i].(*apiv1.Secret))
245245
if err != nil {
246-
return nil, err
246+
return nil, fmt.Errorf("failed to convert secret to cluster: %w", err)
247247
}
248248
res = append(res, cluster)
249249
}
@@ -368,7 +368,7 @@ func secretToCluster(s *apiv1.Secret) (*appv1.Cluster, error) {
368368
if len(s.Data["config"]) > 0 {
369369
err := json.Unmarshal(s.Data["config"], &config)
370370
if err != nil {
371-
return nil, err
371+
return nil, fmt.Errorf("failed to unmarshal cluster config: %w", err)
372372
}
373373
}
374374

0 commit comments

Comments
 (0)