You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2019/09/23 16:35:21 UTC

[camel-k] 02/02: perf(GC): Only enlist resources that support the create verb for garbage collecting

This is an automated email from the ASF dual-hosted git repository.

nferraro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit e3a95a65277e1d9002cdffddc1c9a3cf62ecc477
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Sep 23 14:22:29 2019 +0200

    perf(GC): Only enlist resources that support the create verb for garbage collecting
---
 pkg/util/kubernetes/util.go | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/pkg/util/kubernetes/util.go b/pkg/util/kubernetes/util.go
index 3ba6bf7..7ac67e0 100644
--- a/pkg/util/kubernetes/util.go
+++ b/pkg/util/kubernetes/util.go
@@ -238,11 +238,13 @@ func GetDiscoveryTypesWithVerbs(client client.Client, verbs []string) ([]metav1.
 
 // LookUpResources --
 func LookUpResources(ctx context.Context, client client.Client, namespace string, selectors []string) ([]unstructured.Unstructured, error) {
-	// We only take types that support the "list" verb as they are going
-	// to be iterated and a list query with labels selector is performed
-	// for each of them. That prevents from performing queries that we know
-	// are going to return "MethodNotAllowed".
-	types, err := GetDiscoveryTypesWithVerbs(client, []string{"list"})
+	// We only take types that support the "create" and "list" verbs as:
+	// - they have to be created to be deleted :) so that excludes read-only
+	//   resources, e.g., aggregated APIs
+	// - they are going to be iterated and a list query with labels selector
+	//   is performed for each of them. That prevents from performing queries
+	//   that we know are going to return "MethodNotAllowed".
+	types, err := GetDiscoveryTypesWithVerbs(client, []string{"create", "list"})
 	if err != nil {
 		return nil, err
 	}
@@ -269,10 +271,7 @@ func LookUpResources(ctx context.Context, client client.Client, namespace string
 			},
 		}
 		if err := client.List(ctx, &options, &list); err != nil {
-			if k8serrors.IsNotFound(err) ||
-				k8serrors.IsForbidden(err) ||
-				k8serrors.IsMethodNotSupported(err) ||
-				k8serrors.IsServiceUnavailable(err) {
+			if k8serrors.IsNotFound(err) || k8serrors.IsForbidden(err) {
 				continue
 			}
 			return nil, err