Minor cleanup of jsonFallbackEncoder

This commit is contained in:
wojtekt 2019-09-22 13:50:05 +02:00
parent ef69b488bd
commit cd24a0e5fa
5 changed files with 15 additions and 24 deletions

View File

@ -186,7 +186,7 @@ func (o *ConvertOptions) RunConvert() error {
}
internalEncoder := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...)
internalVersionJSONEncoder := unstructured.JSONFallbackEncoder{Encoder: internalEncoder}
internalVersionJSONEncoder := unstructured.NewJSONFallbackEncoder(internalEncoder)
objects, err := asVersionedObject(infos, !singleItemImplied, specifiedOutputVersion, internalVersionJSONEncoder)
if err != nil {
return err

View File

@ -460,12 +460,18 @@ func (s unstructuredJSONScheme) decodeToList(data []byte, list *UnstructuredList
return nil
}
type JSONFallbackEncoder struct {
runtime.Encoder
type jsonFallbackEncoder struct {
encoder runtime.Encoder
}
func (c JSONFallbackEncoder) Encode(obj runtime.Object, w io.Writer) error {
err := c.Encoder.Encode(obj, w)
func NewJSONFallbackEncoder(encoder runtime.Encoder) runtime.Encoder {
return &jsonFallbackEncoder{
encoder: encoder,
}
}
func (c *jsonFallbackEncoder) Encode(obj runtime.Object, w io.Writer) error {
err := c.encoder.Encode(obj, w)
if runtime.IsNotRegisteredError(err) {
switch obj.(type) {
case *Unstructured, *UnstructuredList:

View File

@ -260,21 +260,6 @@ func (disabledGroupVersioner) KindForGroupVersionKinds(kinds []schema.GroupVersi
return schema.GroupVersionKind{}, false
}
// GroupVersioners implements GroupVersioner and resolves to the first exact match for any kind.
type GroupVersioners []GroupVersioner
// KindForGroupVersionKinds returns the first match of any of the group versioners, or false if no match occurred.
func (gvs GroupVersioners) KindForGroupVersionKinds(kinds []schema.GroupVersionKind) (schema.GroupVersionKind, bool) {
for _, gv := range gvs {
target, ok := gv.KindForGroupVersionKinds(kinds)
if !ok {
continue
}
return target, true
}
return schema.GroupVersionKind{}, false
}
// Assert that schema.GroupVersion and GroupVersions implement GroupVersioner
var _ GroupVersioner = schema.GroupVersion{}
var _ GroupVersioner = schema.GroupVersions{}

View File

@ -199,7 +199,7 @@ func annotateRuntimeObject(t *testing.T, originalObj, currentObj runtime.Object,
originalLabels := originalAccessor.GetLabels()
originalLabels["DELETE_ME"] = "DELETE_ME"
originalAccessor.SetLabels(originalLabels)
original, err := runtime.Encode(unstructured.JSONFallbackEncoder{Encoder: codec}, originalObj)
original, err := runtime.Encode(unstructured.NewJSONFallbackEncoder(codec), originalObj)
if err != nil {
t.Fatal(err)
}
@ -215,7 +215,7 @@ func annotateRuntimeObject(t *testing.T, originalObj, currentObj runtime.Object,
}
currentAnnotations[corev1.LastAppliedConfigAnnotation] = string(original)
currentAccessor.SetAnnotations(currentAnnotations)
current, err := runtime.Encode(unstructured.JSONFallbackEncoder{Encoder: codec}, currentObj)
current, err := runtime.Encode(unstructured.NewJSONFallbackEncoder(codec), currentObj)
if err != nil {
t.Fatal(err)
}
@ -1030,7 +1030,7 @@ func TestUnstructuredIdempotentApply(t *testing.T) {
cmdtesting.InitTestErrorHandler(t)
serversideObject := readUnstructuredFromFile(t, filenameWidgetServerside)
serversideData, err := runtime.Encode(unstructured.JSONFallbackEncoder{Encoder: codec}, serversideObject)
serversideData, err := runtime.Encode(unstructured.NewJSONFallbackEncoder(codec), serversideObject)
if err != nil {
t.Fatal(err)
}

View File

@ -35,5 +35,5 @@ var ParameterCodec = runtime.NewParameterCodec(Scheme)
// DefaultJSONEncoder returns a default encoder for our scheme
func DefaultJSONEncoder() runtime.Encoder {
return unstructured.JSONFallbackEncoder{Encoder: Codecs.LegacyCodec(Scheme.PrioritizedVersionsAllGroups()...)}
return unstructured.NewJSONFallbackEncoder(Codecs.LegacyCodec(Scheme.PrioritizedVersionsAllGroups()...))
}