mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-13 05:46:16 +00:00
make the parameter codec include defaulters
This commit is contained in:
parent
149e5a23f0
commit
18552ceeb3
@ -139,6 +139,7 @@ func NewParameterCodec(scheme *Scheme) ParameterCodec {
|
|||||||
typer: scheme,
|
typer: scheme,
|
||||||
convertor: scheme,
|
convertor: scheme,
|
||||||
creator: scheme,
|
creator: scheme,
|
||||||
|
defaulter: scheme,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,6 +148,7 @@ type parameterCodec struct {
|
|||||||
typer ObjectTyper
|
typer ObjectTyper
|
||||||
convertor ObjectConvertor
|
convertor ObjectConvertor
|
||||||
creator ObjectCreater
|
creator ObjectCreater
|
||||||
|
defaulter ObjectDefaulter
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ ParameterCodec = ¶meterCodec{}
|
var _ ParameterCodec = ¶meterCodec{}
|
||||||
@ -163,9 +165,17 @@ func (c *parameterCodec) DecodeParameters(parameters url.Values, from schema.Gro
|
|||||||
}
|
}
|
||||||
for i := range targetGVKs {
|
for i := range targetGVKs {
|
||||||
if targetGVKs[i].GroupVersion() == from {
|
if targetGVKs[i].GroupVersion() == from {
|
||||||
return c.convertor.Convert(¶meters, into, nil)
|
if err := c.convertor.Convert(¶meters, into, nil); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// in the case where we going into the same object we're receiving, default on the outbound object
|
||||||
|
if c.defaulter != nil {
|
||||||
|
c.defaulter.Default(into)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
input, err := c.creator.New(from.WithKind(targetGVKs[0].Kind))
|
input, err := c.creator.New(from.WithKind(targetGVKs[0].Kind))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -173,6 +183,10 @@ func (c *parameterCodec) DecodeParameters(parameters url.Values, from schema.Gro
|
|||||||
if err := c.convertor.Convert(¶meters, input, nil); err != nil {
|
if err := c.convertor.Convert(¶meters, input, nil); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// if we have defaulter, default the input before converting to output
|
||||||
|
if c.defaulter != nil {
|
||||||
|
c.defaulter.Default(input)
|
||||||
|
}
|
||||||
return c.convertor.Convert(input, into, nil)
|
return c.convertor.Convert(input, into, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user