MCPcopy Create free account
hub / github.com/cozystack/cozystack / getUnstructuredObject

Function getUnstructuredObject

pkg/lineage/lineage.go:153–190  ·  view source on GitHub ↗
(
	ctx context.Context,
	client dynamic.Interface,
	mapper meta.RESTMapper,
	apiVersion, kind, namespace, name string,
)

Source from the content-addressed store, hash-verified

151}
152
153func getUnstructuredObject(
154 ctx context.Context,
155 client dynamic.Interface,
156 mapper meta.RESTMapper,
157 apiVersion, kind, namespace, name string,
158) (*unstructured.Unstructured, error) {
159 l := log.FromContext(ctx)
160 gv, err := schema.ParseGroupVersion(apiVersion)
161 if err != nil {
162 l.Error(
163 err, "failed to parse groupversion",
164 "apiVersion", apiVersion,
165 )
166 return nil, err
167 }
168 gvk := schema.GroupVersionKind{
169 Group: gv.Group,
170 Version: gv.Version,
171 Kind: kind,
172 }
173
174 mapping, err := mapper.RESTMapping(gvk.GroupKind(), gvk.Version)
175 if err != nil {
176 l.Error(err, "Could not map GVK "+gvk.String())
177 return nil, err
178 }
179
180 ns := namespace
181 if mapping.Scope.Name() != meta.RESTScopeNameNamespace {
182 ns = ""
183 }
184
185 ownerObj, err := client.Resource(mapping.Resource).Namespace(ns).Get(ctx, name, metav1.GetOptions{})
186 if err != nil {
187 return nil, err
188 }
189 return ownerObj, nil
190}
191
192func helmReleaseFromUnstructured(obj *unstructured.Unstructured) *helmv2.HelmRelease {
193 if obj.GetAPIVersion() == HRAPIVersion && obj.GetKind() == HRKind {

Callers 2

GetUnstructuredMethod · 0.85
WalkOwnershipGraphFunction · 0.85

Calls 4

StringMethod · 0.80
GetMethod · 0.65
ErrorMethod · 0.45
RESTMappingMethod · 0.45

Tested by

no test coverage detected