k9s/internal/watch/helper.go

55 lines
1.1 KiB
Go

// SPDX-License-Identifier: Apache-2.0
// Copyright Authors of K9s
package watch
import (
"fmt"
"log/slog"
"path"
"strings"
"k8s.io/apimachinery/pkg/runtime/schema"
)
func toGVR(gvr string) schema.GroupVersionResource {
tokens := strings.Split(gvr, "/")
if len(tokens) < 3 {
tokens = append([]string{""}, tokens...)
}
return schema.GroupVersionResource{
Group: tokens[0],
Version: tokens[1],
Resource: tokens[2],
}
}
func namespaced(n string) (ns, res string) {
ns, res = path.Split(n)
return strings.Trim(ns, "/"), res
}
// DumpFactory for debug.
func DumpFactory(f *Factory) {
slog.Debug("----------- FACTORIES -------------")
for ns := range f.factories {
slog.Debug(fmt.Sprintf(" Factory for NS %q", ns))
}
slog.Debug("-----------------------------------")
}
// DebugFactory for debug.
func DebugFactory(f *Factory, ns, gvr string) {
slog.Debug(fmt.Sprintf("----------- DEBUG FACTORY (%s) -------------", gvr))
fac, ok := f.factories[ns]
if !ok {
return
}
inf := fac.ForResource(toGVR(gvr))
for i, k := range inf.Informer().GetStore().ListKeys() {
slog.Debug(fmt.Sprintf("%d -- %s", i, k))
}
}