...
1
16
17 package resourcequota
18
19 import (
20 "context"
21
22 "k8s.io/apimachinery/pkg/runtime"
23 "k8s.io/apimachinery/pkg/util/validation/field"
24 "k8s.io/apiserver/pkg/storage/names"
25 "k8s.io/kubernetes/pkg/api/legacyscheme"
26 api "k8s.io/kubernetes/pkg/apis/core"
27 "k8s.io/kubernetes/pkg/apis/core/validation"
28 "sigs.k8s.io/structured-merge-diff/v4/fieldpath"
29 )
30
31
32 type resourcequotaStrategy struct {
33 runtime.ObjectTyper
34 names.NameGenerator
35 }
36
37
38
39 var Strategy = resourcequotaStrategy{legacyscheme.Scheme, names.SimpleNameGenerator}
40
41
42 func (resourcequotaStrategy) NamespaceScoped() bool {
43 return true
44 }
45
46
47
48 func (resourcequotaStrategy) GetResetFields() map[fieldpath.APIVersion]*fieldpath.Set {
49 fields := map[fieldpath.APIVersion]*fieldpath.Set{
50 "v1": fieldpath.NewSet(
51 fieldpath.MakePathOrDie("status"),
52 ),
53 }
54
55 return fields
56 }
57
58
59 func (resourcequotaStrategy) PrepareForCreate(ctx context.Context, obj runtime.Object) {
60 resourcequota := obj.(*api.ResourceQuota)
61 resourcequota.Status = api.ResourceQuotaStatus{}
62 }
63
64
65 func (resourcequotaStrategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
66 newResourcequota := obj.(*api.ResourceQuota)
67 oldResourcequota := old.(*api.ResourceQuota)
68 newResourcequota.Status = oldResourcequota.Status
69 }
70
71
72 func (resourcequotaStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList {
73 resourcequota := obj.(*api.ResourceQuota)
74 return validation.ValidateResourceQuota(resourcequota)
75 }
76
77
78 func (resourcequotaStrategy) WarningsOnCreate(ctx context.Context, obj runtime.Object) []string {
79 return nil
80 }
81
82
83 func (resourcequotaStrategy) Canonicalize(obj runtime.Object) {
84 }
85
86
87 func (resourcequotaStrategy) AllowCreateOnUpdate() bool {
88 return false
89 }
90
91
92 func (resourcequotaStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
93 newObj, oldObj := obj.(*api.ResourceQuota), old.(*api.ResourceQuota)
94 return validation.ValidateResourceQuotaUpdate(newObj, oldObj)
95 }
96
97
98 func (resourcequotaStrategy) WarningsOnUpdate(ctx context.Context, obj, old runtime.Object) []string {
99 return nil
100 }
101
102 func (resourcequotaStrategy) AllowUnconditionalUpdate() bool {
103 return true
104 }
105
106 type resourcequotaStatusStrategy struct {
107 resourcequotaStrategy
108 }
109
110
111 var StatusStrategy = resourcequotaStatusStrategy{Strategy}
112
113
114
115 func (resourcequotaStatusStrategy) GetResetFields() map[fieldpath.APIVersion]*fieldpath.Set {
116 fields := map[fieldpath.APIVersion]*fieldpath.Set{
117 "v1": fieldpath.NewSet(
118 fieldpath.MakePathOrDie("spec"),
119 ),
120 }
121
122 return fields
123 }
124
125 func (resourcequotaStatusStrategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
126 newResourcequota := obj.(*api.ResourceQuota)
127 oldResourcequota := old.(*api.ResourceQuota)
128 newResourcequota.Spec = oldResourcequota.Spec
129 }
130
131 func (resourcequotaStatusStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
132 return validation.ValidateResourceQuotaStatusUpdate(obj.(*api.ResourceQuota), old.(*api.ResourceQuota))
133 }
134
135
136 func (resourcequotaStatusStrategy) WarningsOnUpdate(ctx context.Context, obj, old runtime.Object) []string {
137 return nil
138 }
139
View as plain text