...
1 package v1
2
3 import "k8s.io/apimachinery/pkg/runtime"
4
5 var _ runtime.NestedObjectDecoder = &MasterConfig{}
6
7
8
9 func (c *MasterConfig) DecodeNestedObjects(d runtime.Decoder) error {
10
11
12 for k, v := range c.AdmissionConfig.PluginConfig {
13 DecodeNestedRawExtensionOrUnknown(d, &v.Configuration)
14 c.AdmissionConfig.PluginConfig[k] = v
15 }
16 if c.OAuthConfig != nil {
17 for i := range c.OAuthConfig.IdentityProviders {
18 DecodeNestedRawExtensionOrUnknown(d, &c.OAuthConfig.IdentityProviders[i].Provider)
19 }
20 }
21 DecodeNestedRawExtensionOrUnknown(d, &c.AuditConfig.PolicyConfiguration)
22 return nil
23 }
24
25 var _ runtime.NestedObjectEncoder = &MasterConfig{}
26
27
28
29 func (c *MasterConfig) EncodeNestedObjects(e runtime.Encoder) error {
30 for k, v := range c.AdmissionConfig.PluginConfig {
31 if err := EncodeNestedRawExtension(e, &v.Configuration); err != nil {
32 return err
33 }
34 c.AdmissionConfig.PluginConfig[k] = v
35 }
36 if c.OAuthConfig != nil {
37 for i := range c.OAuthConfig.IdentityProviders {
38 if err := EncodeNestedRawExtension(e, &c.OAuthConfig.IdentityProviders[i].Provider); err != nil {
39 return err
40 }
41 }
42 }
43 if err := EncodeNestedRawExtension(e, &c.AuditConfig.PolicyConfiguration); err != nil {
44 return err
45 }
46 return nil
47 }
48
49
50 func DecodeNestedRawExtensionOrUnknown(d runtime.Decoder, ext *runtime.RawExtension) {
51 if ext.Raw == nil || ext.Object != nil {
52 return
53 }
54 obj, gvk, err := d.Decode(ext.Raw, nil, nil)
55 if err != nil {
56 unk := &runtime.Unknown{Raw: ext.Raw}
57 if runtime.IsNotRegisteredError(err) {
58 if _, gvk, err := d.Decode(ext.Raw, nil, unk); err == nil {
59 unk.APIVersion = gvk.GroupVersion().String()
60 unk.Kind = gvk.Kind
61 ext.Object = unk
62 return
63 }
64 }
65
66 if gvk != nil {
67 unk.APIVersion = gvk.GroupVersion().String()
68 unk.Kind = gvk.Kind
69 }
70 obj = unk
71 }
72 ext.Object = obj
73 }
74
75
76
77 func EncodeNestedRawExtension(e runtime.Encoder, ext *runtime.RawExtension) error {
78 if ext.Raw != nil || ext.Object == nil {
79 return nil
80 }
81 data, err := runtime.Encode(e, ext.Object)
82 if err != nil {
83 return err
84 }
85 ext.Raw = data
86 return nil
87 }
88
View as plain text