...
1
16
17 package resourceclassparameters
18
19 import (
20 "context"
21 "errors"
22
23 "k8s.io/apimachinery/pkg/fields"
24 "k8s.io/apimachinery/pkg/labels"
25 "k8s.io/apimachinery/pkg/runtime"
26 "k8s.io/apimachinery/pkg/util/validation/field"
27 "k8s.io/apiserver/pkg/registry/generic"
28 "k8s.io/apiserver/pkg/storage"
29 "k8s.io/apiserver/pkg/storage/names"
30 "k8s.io/kubernetes/pkg/api/legacyscheme"
31 "k8s.io/kubernetes/pkg/apis/resource"
32 "k8s.io/kubernetes/pkg/apis/resource/validation"
33 )
34
35
36 type resourceClassParametersStrategy struct {
37 runtime.ObjectTyper
38 names.NameGenerator
39 }
40
41 var Strategy = resourceClassParametersStrategy{legacyscheme.Scheme, names.SimpleNameGenerator}
42
43 func (resourceClassParametersStrategy) NamespaceScoped() bool {
44 return true
45 }
46
47 func (resourceClassParametersStrategy) PrepareForCreate(ctx context.Context, obj runtime.Object) {
48 }
49
50 func (resourceClassParametersStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList {
51 resourceClassParameters := obj.(*resource.ResourceClassParameters)
52 return validation.ValidateResourceClassParameters(resourceClassParameters)
53 }
54
55 func (resourceClassParametersStrategy) WarningsOnCreate(ctx context.Context, obj runtime.Object) []string {
56 return nil
57 }
58
59 func (resourceClassParametersStrategy) Canonicalize(obj runtime.Object) {
60 }
61
62 func (resourceClassParametersStrategy) AllowCreateOnUpdate() bool {
63 return false
64 }
65
66 func (resourceClassParametersStrategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
67 }
68
69 func (resourceClassParametersStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
70 return validation.ValidateResourceClassParametersUpdate(obj.(*resource.ResourceClassParameters), old.(*resource.ResourceClassParameters))
71 }
72
73 func (resourceClassParametersStrategy) WarningsOnUpdate(ctx context.Context, obj, old runtime.Object) []string {
74 return nil
75 }
76
77 func (resourceClassParametersStrategy) AllowUnconditionalUpdate() bool {
78 return true
79 }
80
81
82 func Match(label labels.Selector, field fields.Selector) storage.SelectionPredicate {
83 return storage.SelectionPredicate{
84 Label: label,
85 Field: field,
86 GetAttrs: GetAttrs,
87 }
88 }
89
90
91 func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, error) {
92 parameters, ok := obj.(*resource.ResourceClassParameters)
93 if !ok {
94 return nil, nil, errors.New("not a resourceclassparameters")
95 }
96 return labels.Set(parameters.Labels), toSelectableFields(parameters), nil
97 }
98
99
100 func toSelectableFields(class *resource.ResourceClassParameters) fields.Set {
101 fields := generic.ObjectMetaFieldsSet(&class.ObjectMeta, true)
102 return fields
103 }
104
View as plain text