mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 07:20:13 +00:00
wrap extractor errors
This commit is contained in:
parent
7bfc420351
commit
479e2ae307
@ -1,6 +1,7 @@
|
|||||||
package v1
|
package v1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -59,7 +60,7 @@ func (c *gvkParserCache) objectTypeForGVK(gvk schema.GroupVersionKind) (*typed.P
|
|||||||
defer c.mu.Unlock()
|
defer c.mu.Unlock()
|
||||||
// if the ttl on the openAPISchema has expired,
|
// if the ttl on the openAPISchema has expired,
|
||||||
// regenerate the gvk parser
|
// regenerate the gvk parser
|
||||||
if time.Now().After(c.lastChecked.Add(openAPISchemaTTL)) {
|
if time.Since(c.lastChecked) > openAPISchemaTTL {
|
||||||
c.lastChecked = time.Now()
|
c.lastChecked = time.Now()
|
||||||
parser, err := regenerateGVKParser(c.discoveryClient)
|
parser, err := regenerateGVKParser(c.discoveryClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -77,11 +78,9 @@ type extractor struct {
|
|||||||
// NewUnstructuredExtractor creates the extractor with which you can extract the applied configuration
|
// NewUnstructuredExtractor creates the extractor with which you can extract the applied configuration
|
||||||
// for a given manager from an unstructured object.
|
// for a given manager from an unstructured object.
|
||||||
func NewUnstructuredExtractor(dc discovery.DiscoveryInterface) (UnstructuredExtractor, error) {
|
func NewUnstructuredExtractor(dc discovery.DiscoveryInterface) (UnstructuredExtractor, error) {
|
||||||
// TODO: expose ttl as an argument if we want to.
|
|
||||||
|
|
||||||
parser, err := regenerateGVKParser(dc)
|
parser, err := regenerateGVKParser(dc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("failed generating initial GVK Parser: %v", err)
|
||||||
}
|
}
|
||||||
return &extractor{
|
return &extractor{
|
||||||
cache: &gvkParserCache{
|
cache: &gvkParserCache{
|
||||||
@ -108,12 +107,12 @@ func (e *extractor) extractUnstructured(object *unstructured.Unstructured, field
|
|||||||
gvk := object.GetObjectKind().GroupVersionKind()
|
gvk := object.GetObjectKind().GroupVersionKind()
|
||||||
objectType, err := e.cache.objectTypeForGVK(gvk)
|
objectType, err := e.cache.objectTypeForGVK(gvk)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("failed to fetch the objectType: %v", err)
|
||||||
}
|
}
|
||||||
result := &unstructured.Unstructured{}
|
result := &unstructured.Unstructured{}
|
||||||
err = managedfields.ExtractInto(object, *objectType, fieldManager, result, subresource)
|
err = managedfields.ExtractInto(object, *objectType, fieldManager, result, subresource)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("failed calling ExtractInto for unstructured: %v", err)
|
||||||
}
|
}
|
||||||
result.SetName(object.GetName())
|
result.SetName(object.GetName())
|
||||||
result.SetNamespace(object.GetNamespace())
|
result.SetNamespace(object.GetNamespace())
|
||||||
|
Loading…
Reference in New Issue
Block a user