From 92bd181ac0ff5f4d48cd921b5c3098bee807a430 Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Fri, 16 Aug 2024 08:10:03 +0800 Subject: [PATCH] enable "jump to owner" for more kinds (#2763) --- internal/view/cm.go | 4 +++- internal/view/cm_test.go | 2 +- internal/view/command.go | 6 +++++- internal/view/crd.go | 2 +- internal/view/cronjob.go | 4 +++- internal/view/dp.go | 4 +++- internal/view/dp_test.go | 2 +- internal/view/ds.go | 4 +++- internal/view/ds_test.go | 2 +- internal/view/pvc.go | 2 +- internal/view/pvc_test.go | 2 +- internal/view/sa.go | 2 +- internal/view/secret.go | 2 +- internal/view/secret_test.go | 2 +- internal/view/sts.go | 4 +++- internal/view/sts_test.go | 2 +- internal/view/svc.go | 4 +++- internal/view/svc_test.go | 2 +- 18 files changed, 34 insertions(+), 18 deletions(-) diff --git a/internal/view/cm.go b/internal/view/cm.go index 32d3e47c..3a18477d 100644 --- a/internal/view/cm.go +++ b/internal/view/cm.go @@ -21,7 +21,9 @@ type ConfigMap struct { // NewConfigMap returns a new viewer. func NewConfigMap(gvr client.GVR) ResourceViewer { s := ConfigMap{ - ResourceViewer: NewBrowser(gvr), + ResourceViewer: NewOwnerExtender( + NewBrowser(gvr), + ), } s.AddBindKeysFn(s.bindKeys) diff --git a/internal/view/cm_test.go b/internal/view/cm_test.go index 02781af4..6e787def 100644 --- a/internal/view/cm_test.go +++ b/internal/view/cm_test.go @@ -16,5 +16,5 @@ func TestConfigMapNew(t *testing.T) { assert.Nil(t, s.Init(makeCtx())) assert.Equal(t, "ConfigMaps", s.Name()) - assert.Equal(t, 6, len(s.Hints())) + assert.Equal(t, 7, len(s.Hints())) } diff --git a/internal/view/command.go b/internal/view/command.go index befa0b8d..318f8f42 100644 --- a/internal/view/command.go +++ b/internal/view/command.go @@ -286,7 +286,11 @@ func (c *Command) viewMetaFor(p *cmd.Interpreter) (client.GVR, *MetaViewer, erro p.Amend(ap) } - v := MetaViewer{viewerFn: NewBrowser} + v := MetaViewer{ + viewerFn: func(gvr client.GVR) ResourceViewer { + return NewOwnerExtender(NewBrowser(gvr)) + }, + } if mv, ok := customViewers[gvr]; ok { v = mv } diff --git a/internal/view/crd.go b/internal/view/crd.go index 7ff1a1f9..36f5e40d 100644 --- a/internal/view/crd.go +++ b/internal/view/crd.go @@ -16,7 +16,7 @@ type CRD struct { // NewCRD returns a new viewer. func NewCRD(gvr client.GVR) ResourceViewer { s := CRD{ - ResourceViewer: NewBrowser(gvr), + ResourceViewer: NewOwnerExtender(NewBrowser(gvr)), } s.AddBindKeysFn(s.bindKeys) s.GetTable().SetEnterFn(s.showCRD) diff --git a/internal/view/cronjob.go b/internal/view/cronjob.go index 864a3381..5b1411cf 100644 --- a/internal/view/cronjob.go +++ b/internal/view/cronjob.go @@ -35,7 +35,9 @@ type CronJob struct { // NewCronJob returns a new viewer. func NewCronJob(gvr client.GVR) ResourceViewer { - c := CronJob{ResourceViewer: NewVulnerabilityExtender(NewBrowser(gvr))} + c := CronJob{ResourceViewer: NewVulnerabilityExtender( + NewOwnerExtender(NewBrowser(gvr)), + )} c.AddBindKeysFn(c.bindKeys) c.GetTable().SetEnterFn(c.showJobs) diff --git a/internal/view/dp.go b/internal/view/dp.go index 6db577dd..3c6760c8 100644 --- a/internal/view/dp.go +++ b/internal/view/dp.go @@ -28,7 +28,9 @@ func NewDeploy(gvr client.GVR) ResourceViewer { NewRestartExtender( NewScaleExtender( NewImageExtender( - NewLogsExtender(NewBrowser(gvr), d.logOptions), + NewOwnerExtender( + NewLogsExtender(NewBrowser(gvr), d.logOptions), + ), ), ), ), diff --git a/internal/view/dp_test.go b/internal/view/dp_test.go index aa2935c1..a3e8a51f 100644 --- a/internal/view/dp_test.go +++ b/internal/view/dp_test.go @@ -16,5 +16,5 @@ func TestDeploy(t *testing.T) { assert.Nil(t, v.Init(makeCtx())) assert.Equal(t, "Deployments", v.Name()) - assert.Equal(t, 15, len(v.Hints())) + assert.Equal(t, 16, len(v.Hints())) } diff --git a/internal/view/ds.go b/internal/view/ds.go index 6e89f421..08aad213 100644 --- a/internal/view/ds.go +++ b/internal/view/ds.go @@ -24,7 +24,9 @@ func NewDaemonSet(gvr client.GVR) ResourceViewer { NewVulnerabilityExtender( NewRestartExtender( NewImageExtender( - NewLogsExtender(NewBrowser(gvr), d.logOptions), + NewOwnerExtender( + NewLogsExtender(NewBrowser(gvr), d.logOptions), + ), ), ), ), diff --git a/internal/view/ds_test.go b/internal/view/ds_test.go index 2a73445d..94545218 100644 --- a/internal/view/ds_test.go +++ b/internal/view/ds_test.go @@ -16,5 +16,5 @@ func TestDaemonSet(t *testing.T) { assert.Nil(t, v.Init(makeCtx())) assert.Equal(t, "DaemonSets", v.Name()) - assert.Equal(t, 16, len(v.Hints())) + assert.Equal(t, 17, len(v.Hints())) } diff --git a/internal/view/pvc.go b/internal/view/pvc.go index 27d15749..b071ca4c 100644 --- a/internal/view/pvc.go +++ b/internal/view/pvc.go @@ -18,7 +18,7 @@ type PersistentVolumeClaim struct { // NewPersistentVolumeClaim returns a new viewer. func NewPersistentVolumeClaim(gvr client.GVR) ResourceViewer { v := PersistentVolumeClaim{ - ResourceViewer: NewBrowser(gvr), + ResourceViewer: NewOwnerExtender(NewBrowser(gvr)), } v.AddBindKeysFn(v.bindKeys) diff --git a/internal/view/pvc_test.go b/internal/view/pvc_test.go index cdaaaaf2..7434729b 100644 --- a/internal/view/pvc_test.go +++ b/internal/view/pvc_test.go @@ -16,5 +16,5 @@ func TestPVCNew(t *testing.T) { assert.Nil(t, v.Init(makeCtx())) assert.Equal(t, "PersistentVolumeClaims", v.Name()) - assert.Equal(t, 10, len(v.Hints())) + assert.Equal(t, 11, len(v.Hints())) } diff --git a/internal/view/sa.go b/internal/view/sa.go index 63145e7c..358a0240 100644 --- a/internal/view/sa.go +++ b/internal/view/sa.go @@ -21,7 +21,7 @@ type ServiceAccount struct { // NewServiceAccount returns a new viewer. func NewServiceAccount(gvr client.GVR) ResourceViewer { s := ServiceAccount{ - ResourceViewer: NewBrowser(gvr), + ResourceViewer: NewOwnerExtender(NewBrowser(gvr)), } s.AddBindKeysFn(s.bindKeys) s.SetContextFn(s.subjectCtx) diff --git a/internal/view/secret.go b/internal/view/secret.go index d59e77ee..1db27526 100644 --- a/internal/view/secret.go +++ b/internal/view/secret.go @@ -21,7 +21,7 @@ type Secret struct { // NewSecret returns a new viewer. func NewSecret(gvr client.GVR) ResourceViewer { s := Secret{ - ResourceViewer: NewBrowser(gvr), + ResourceViewer: NewOwnerExtender(NewBrowser(gvr)), } s.AddBindKeysFn(s.bindKeys) diff --git a/internal/view/secret_test.go b/internal/view/secret_test.go index fc07d682..a02972af 100644 --- a/internal/view/secret_test.go +++ b/internal/view/secret_test.go @@ -16,5 +16,5 @@ func TestSecretNew(t *testing.T) { assert.Nil(t, s.Init(makeCtx())) assert.Equal(t, "Secrets", s.Name()) - assert.Equal(t, 7, len(s.Hints())) + assert.Equal(t, 8, len(s.Hints())) } diff --git a/internal/view/sts.go b/internal/view/sts.go index 18636d9a..fa25e4d4 100644 --- a/internal/view/sts.go +++ b/internal/view/sts.go @@ -25,7 +25,9 @@ func NewStatefulSet(gvr client.GVR) ResourceViewer { NewRestartExtender( NewScaleExtender( NewImageExtender( - NewLogsExtender(NewBrowser(gvr), s.logOptions), + NewOwnerExtender( + NewLogsExtender(NewBrowser(gvr), s.logOptions), + ), ), ), ), diff --git a/internal/view/sts_test.go b/internal/view/sts_test.go index 5651fd38..44551945 100644 --- a/internal/view/sts_test.go +++ b/internal/view/sts_test.go @@ -16,5 +16,5 @@ func TestStatefulSetNew(t *testing.T) { assert.Nil(t, s.Init(makeCtx())) assert.Equal(t, "StatefulSets", s.Name()) - assert.Equal(t, 13, len(s.Hints())) + assert.Equal(t, 14, len(s.Hints())) } diff --git a/internal/view/svc.go b/internal/view/svc.go index 15171168..9c92a8ef 100644 --- a/internal/view/svc.go +++ b/internal/view/svc.go @@ -35,7 +35,9 @@ type Service struct { func NewService(gvr client.GVR) ResourceViewer { s := Service{ ResourceViewer: NewPortForwardExtender( - NewLogsExtender(NewBrowser(gvr), nil), + NewOwnerExtender( + NewLogsExtender(NewBrowser(gvr), nil), + ), ), } s.AddBindKeysFn(s.bindKeys) diff --git a/internal/view/svc_test.go b/internal/view/svc_test.go index cc50f92f..19978d8f 100644 --- a/internal/view/svc_test.go +++ b/internal/view/svc_test.go @@ -173,5 +173,5 @@ func TestServiceNew(t *testing.T) { assert.Nil(t, s.Init(makeCtx())) assert.Equal(t, "Services", s.Name()) - assert.Equal(t, 11, len(s.Hints())) + assert.Equal(t, 12, len(s.Hints())) }