From ace8272244e35e4ecbaad252d77c12f1fe3cd250 Mon Sep 17 00:00:00 2001 From: Mikhail Mazurskiy Date: Tue, 12 Oct 2021 19:43:52 +1100 Subject: [PATCH] Remove unused ResetRESTMapperTask task --- pkg/apply/task/resetmapper_task.go | 61 ------------------- pkg/apply/task/resetmapper_task_test.go | 81 ------------------------- 2 files changed, 142 deletions(-) delete mode 100644 pkg/apply/task/resetmapper_task.go delete mode 100644 pkg/apply/task/resetmapper_task_test.go diff --git a/pkg/apply/task/resetmapper_task.go b/pkg/apply/task/resetmapper_task.go deleted file mode 100644 index 877b8f15..00000000 --- a/pkg/apply/task/resetmapper_task.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2020 The Kubernetes Authors. -// SPDX-License-Identifier: Apache-2.0 - -package task - -import ( - "fmt" - "reflect" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/client-go/restmapper" - "sigs.k8s.io/cli-utils/pkg/apply/taskrunner" -) - -// ResetRESTMapperTask resets the provided RESTMapper. -type ResetRESTMapperTask struct { - Mapper meta.RESTMapper -} - -// Start creates a new goroutine that will unwrap the provided RESTMapper -// to get the underlying DeferredDiscoveryRESTMapper and then reset it. It -// will send a TaskResult on the taskChannel to signal that the task has -// been completed. -func (r *ResetRESTMapperTask) Start(taskContext *taskrunner.TaskContext) { - go func() { - ddRESTMapper, err := extractDeferredDiscoveryRESTMapper(r.Mapper) - if err != nil { - r.sendTaskResult(taskContext, err) - return - } - ddRESTMapper.Reset() - r.sendTaskResult(taskContext, nil) - }() -} - -// extractDeferredDiscoveryRESTMapper unwraps the provided RESTMapper -// interface to get access to the underlying DeferredDiscoveryRESTMapper -// that can be reset. -func extractDeferredDiscoveryRESTMapper(mapper meta.RESTMapper) (*restmapper.DeferredDiscoveryRESTMapper, - error) { - val := reflect.ValueOf(mapper) - if val.Type().Kind() != reflect.Struct { - return nil, fmt.Errorf("unexpected RESTMapper type: %s", val.Type().String()) - } - fv := val.FieldByName("RESTMapper") - ddRESTMapper, ok := fv.Interface().(*restmapper.DeferredDiscoveryRESTMapper) - if !ok { - return nil, fmt.Errorf("unexpected RESTMapper type") - } - return ddRESTMapper, nil -} - -func (r *ResetRESTMapperTask) sendTaskResult(taskContext *taskrunner.TaskContext, err error) { - taskContext.TaskChannel() <- taskrunner.TaskResult{ - Err: err, - } -} - -// ClearTimeout doesn't do anything as ResetRESTMapperTask doesn't support -// timeouts. -func (r *ResetRESTMapperTask) ClearTimeout() {} diff --git a/pkg/apply/task/resetmapper_task_test.go b/pkg/apply/task/resetmapper_task_test.go deleted file mode 100644 index f18d2ef5..00000000 --- a/pkg/apply/task/resetmapper_task_test.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2020 The Kubernetes Authors. -// SPDX-License-Identifier: Apache-2.0 - -package task - -import ( - "testing" - - "github.com/stretchr/testify/assert" - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/client-go/discovery" - "k8s.io/client-go/restmapper" - "sigs.k8s.io/cli-utils/pkg/apply/cache" - "sigs.k8s.io/cli-utils/pkg/apply/event" - "sigs.k8s.io/cli-utils/pkg/apply/taskrunner" - "sigs.k8s.io/cli-utils/pkg/testutil" -) - -func TestResetRESTMapperTask(t *testing.T) { - testCases := map[string]struct { - toRESTMapper func() (meta.RESTMapper, *fakeCachedDiscoveryClient) - expectErr bool - expectedErrMessage string - }{ - "correct wrapped RESTMapper": { - toRESTMapper: func() (meta.RESTMapper, *fakeCachedDiscoveryClient) { - discoveryClient := &fakeCachedDiscoveryClient{} - ddRESTMapper := restmapper.NewDeferredDiscoveryRESTMapper(discoveryClient) - return restmapper.NewShortcutExpander(ddRESTMapper, discoveryClient), discoveryClient - }, - expectErr: false, - }, - "incorrect wrapped RESTMapper": { - toRESTMapper: func() (meta.RESTMapper, *fakeCachedDiscoveryClient) { - return testutil.NewFakeRESTMapper(), nil - }, - expectErr: true, - expectedErrMessage: "unexpected RESTMapper type", - }, - } - - for tn, tc := range testCases { - t.Run(tn, func(t *testing.T) { - eventChannel := make(chan event.Event) - defer close(eventChannel) - resourceCache := cache.NewResourceCacheMap() - taskContext := taskrunner.NewTaskContext(eventChannel, resourceCache) - - mapper, discoveryClient := tc.toRESTMapper() - - resetRESTMapperTask := &ResetRESTMapperTask{ - Mapper: mapper, - } - - resetRESTMapperTask.Start(taskContext) - - result := <-taskContext.TaskChannel() - - if tc.expectErr { - assert.Error(t, result.Err) - assert.Contains(t, result.Err.Error(), tc.expectedErrMessage) - return - } - - assert.True(t, discoveryClient.invalidated) - }) - } -} - -type fakeCachedDiscoveryClient struct { - discovery.DiscoveryInterface - invalidated bool -} - -func (d *fakeCachedDiscoveryClient) Fresh() bool { - return true -} - -func (d *fakeCachedDiscoveryClient) Invalidate() { - d.invalidated = true -}