mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 20:42:26 +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,
|
||||
convertor: scheme,
|
||||
creator: scheme,
|
||||
defaulter: scheme,
|
||||
}
|
||||
}
|
||||
|
||||
@ -147,6 +148,7 @@ type parameterCodec struct {
|
||||
typer ObjectTyper
|
||||
convertor ObjectConvertor
|
||||
creator ObjectCreater
|
||||
defaulter ObjectDefaulter
|
||||
}
|
||||
|
||||
var _ ParameterCodec = ¶meterCodec{}
|
||||
@ -163,9 +165,17 @@ func (c *parameterCodec) DecodeParameters(parameters url.Values, from schema.Gro
|
||||
}
|
||||
for i := range targetGVKs {
|
||||
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))
|
||||
if err != nil {
|
||||
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 {
|
||||
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)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user