55 lines
1.1 KiB
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))
|
|
}
|
|
}
|