diff --git a/internal/client/gvr.go b/internal/client/gvr.go index c22e5f81..eaa278d0 100644 --- a/internal/client/gvr.go +++ b/internal/client/gvr.go @@ -12,7 +12,7 @@ import ( ) // GVR represents a kubernetes resource schema as a string. -// Format is group/version/resources +// Format is group/version/resources:subresource type GVR struct { raw, g, v, r, sr string } @@ -35,7 +35,7 @@ func NewGVR(gvr string) GVR { case 1: r = tokens[0] default: - panic(fmt.Sprintf("can't parse GVR %q", gvr)) + log.Error().Err(fmt.Errorf("can't parse GVR %q", gvr)).Msg("GVR init failed!") } return GVR{raw: gvr, g: g, v: v, r: r, sr: sr} diff --git a/internal/model/node.go b/internal/model/node.go index 8386239b..567b87f6 100644 --- a/internal/model/node.go +++ b/internal/model/node.go @@ -3,7 +3,6 @@ package model import ( "context" "fmt" - "time" "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/dao" @@ -23,10 +22,6 @@ type Node struct { // List returns a collection of node resources. func (n *Node) List(ctx context.Context) ([]runtime.Object, error) { - defer func(t time.Time) { - log.Debug().Msgf("LIST NODES elapsed %v", time.Since(t)) - }(time.Now()) - nmx, ok := ctx.Value(internal.KeyMetrics).(*mv1beta1.NodeMetricsList) if !ok { log.Warn().Msgf("No node metrics available in context") @@ -54,10 +49,6 @@ func (n *Node) List(ctx context.Context) ([]runtime.Object, error) { // Hydrate returns nodes as rows. func (n *Node) Hydrate(oo []runtime.Object, rr render.Rows, re Renderer) error { - defer func(t time.Time) { - log.Debug().Msgf("HYDRATE NODES elapsed %v", time.Since(t)) - }(time.Now()) - for i, o := range oo { nmx, ok := o.(*render.NodeWithMetrics) if !ok { diff --git a/internal/model/pod.go b/internal/model/pod.go index 2ce20185..052c63b8 100644 --- a/internal/model/pod.go +++ b/internal/model/pod.go @@ -3,7 +3,6 @@ package model import ( "context" "fmt" - "time" "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/render" @@ -21,10 +20,6 @@ type Pod struct { // List returns a collection of nodes. func (p *Pod) List(ctx context.Context) ([]runtime.Object, error) { - defer func(t time.Time) { - log.Debug().Msgf("LIST PODS elapsed %v", time.Since(t)) - }(time.Now()) - oo, err := p.Resource.List(ctx) if err != nil { return oo, err @@ -70,10 +65,6 @@ func (p *Pod) List(ctx context.Context) ([]runtime.Object, error) { // Hydrate returns pod resources as rows. func (p *Pod) Hydrate(oo []runtime.Object, rr render.Rows, re Renderer) error { - defer func(t time.Time) { - log.Debug().Msgf("HYDRATE PODS elapsed %v", time.Since(t)) - }(time.Now()) - var index int for _, o := range oo { po, ok := o.(*render.PodWithMetrics) diff --git a/internal/view/browser.go b/internal/view/browser.go index ab3be1d4..7feb2bd4 100644 --- a/internal/view/browser.go +++ b/internal/view/browser.go @@ -218,7 +218,7 @@ func (b *Browser) deleteCmd(evt *tcell.EventKey) *tcell.EventKey { b.Stop() defer b.Start() { - msg := fmt.Sprintf("Delete %s %s?", b.gvr, selections[0]) + msg := fmt.Sprintf("Delete %s %s?", b.gvr.ToR(), selections[0]) if len(selections) > 1 { msg = fmt.Sprintf("Delete %d marked %s?", len(selections), b.gvr) } diff --git a/internal/view/dp.go b/internal/view/dp.go index 7b70f9f2..26d7074b 100644 --- a/internal/view/dp.go +++ b/internal/view/dp.go @@ -1,8 +1,6 @@ package view import ( - "strings" - "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" @@ -55,7 +53,7 @@ func (d *Deploy) showPods(app *App, _, _, path string) { app.Flash().Err(err) } - showPodsFromSelector(app, strings.Replace(path, "/", "::", 1), dp.Spec.Selector) + showPodsFromSelector(app, path, dp.Spec.Selector) } // Helpers... diff --git a/internal/view/ds.go b/internal/view/ds.go index a75b8998..f3e6b863 100644 --- a/internal/view/ds.go +++ b/internal/view/ds.go @@ -1,8 +1,6 @@ package view import ( - "strings" - "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" @@ -54,5 +52,5 @@ func (d *DaemonSet) showPods(app *App, _, _, path string) { d.App().Flash().Err(err) } - showPodsFromSelector(app, strings.Replace(path, "/", "::", 1), ds.Spec.Selector) + showPodsFromSelector(app, path, ds.Spec.Selector) } diff --git a/internal/view/logs_extender.go b/internal/view/logs_extender.go index 9dc21181..c5a46425 100644 --- a/internal/view/logs_extender.go +++ b/internal/view/logs_extender.go @@ -41,7 +41,8 @@ func (l *LogsExtender) logsCmd(prev bool) func(evt *tcell.EventKey) *tcell.Event if path == "" { return nil } - if isResourcePath(l.GetTable().Path) { + + if !isResourcePath(path) { path = l.GetTable().Path } l.showLogs(path, prev) diff --git a/internal/view/sts.go b/internal/view/sts.go index bf6cc99b..762d1c2b 100644 --- a/internal/view/sts.go +++ b/internal/view/sts.go @@ -1,8 +1,6 @@ package view import ( - "strings" - "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" @@ -46,7 +44,7 @@ func (s *StatefulSet) showPods(app *App, _, gvr, path string) { return } - showPodsFromSelector(app, strings.Replace(path, "/", "::", 1), sts.Spec.Selector) + showPodsFromSelector(app, path, sts.Spec.Selector) } func (s *StatefulSet) sts(path string) (*appsv1.StatefulSet, error) { diff --git a/internal/view/svc.go b/internal/view/svc.go index bd971945..2454846e 100644 --- a/internal/view/svc.go +++ b/internal/view/svc.go @@ -60,7 +60,7 @@ func (s *Service) showPods(app *App, ns, gvr, path string) { return } - showPodsWithLabels(app, strings.Replace(path, "/", "::", 1), svc.Spec.Selector) + showPodsWithLabels(app, path, svc.Spec.Selector) } func (s *Service) benchStopCmd(evt *tcell.EventKey) *tcell.EventKey { diff --git a/internal/watch/factory.go b/internal/watch/factory.go index ba51737f..fb4be077 100644 --- a/internal/watch/factory.go +++ b/internal/watch/factory.go @@ -62,11 +62,6 @@ func (f *Factory) Terminate() { // List returns a resource collection. func (f *Factory) List(gvr, ns string, wait bool, sel labels.Selector) ([]runtime.Object, error) { - defer func(t time.Time) { - log.Debug().Msgf("LIST elapsed %v", time.Since(t)) - }(time.Now()) - - Dump(f) log.Debug().Msgf("List %q:%q", ns, gvr) inf, err := f.CanForResource(ns, gvr, []string{"list", "watch"}) if err != nil { @@ -84,10 +79,6 @@ func (f *Factory) List(gvr, ns string, wait bool, sel labels.Selector) ([]runtim // Get retrieves a given resource. func (f *Factory) Get(gvr, path string, wait bool, sel labels.Selector) (runtime.Object, error) { - defer func(t time.Time) { - log.Debug().Msgf("GET elapsed %v", time.Since(t)) - }(time.Now()) - ns, n := namespaced(path) inf, err := f.CanForResource(ns, gvr, []string{"get"}) if err != nil {