fix for #458
parent
565cd12fd3
commit
0e1f5abfdd
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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...
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue