NewGVR builds a new gvr from a group, version, resource.
(s string)
| 56 | |
| 57 | // NewGVR builds a new gvr from a group, version, resource. |
| 58 | func NewGVR(s string) *GVR { |
| 59 | raw := s |
| 60 | tokens := strings.Split(s, ":") |
| 61 | var g, v, r, sr string |
| 62 | if len(tokens) == 2 { |
| 63 | raw, sr = tokens[0], tokens[1] |
| 64 | } |
| 65 | tokens = strings.Split(raw, "/") |
| 66 | switch len(tokens) { |
| 67 | case 3: |
| 68 | g, v, r = tokens[0], tokens[1], tokens[2] |
| 69 | case 2: |
| 70 | v, r = tokens[0], tokens[1] |
| 71 | case 1: |
| 72 | r = tokens[0] |
| 73 | default: |
| 74 | slog.Error("GVR init failed!", slogs.Error, fmt.Errorf("can't parse GVR %q", s)) |
| 75 | } |
| 76 | |
| 77 | gvr := GVR{raw: s, g: g, v: v, r: r, sr: sr} |
| 78 | if cgvr := gvrsCache.get(gvr.String()); cgvr != nil { |
| 79 | return cgvr |
| 80 | } |
| 81 | gvrsCache.add(&gvr) |
| 82 | |
| 83 | return &gvr |
| 84 | } |
| 85 | |
| 86 | func (g *GVR) IsAlias() bool { |
| 87 | return !g.IsK8sRes() |
searching dependent graphs…