1
1
package v1alpha1
2
2
3
3
import (
4
+ "context"
5
+
4
6
xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
7
+ "github.com/crossplane/crossplane-runtime/pkg/reference"
8
+ "github.com/pkg/errors"
5
9
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
10
+ "sigs.k8s.io/controller-runtime/pkg/client"
6
11
)
7
12
8
13
// +kubebuilder:object:root=true
@@ -13,6 +18,7 @@ import (
13
18
// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
14
19
// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
15
20
// +kubebuilder:printcolumn:name="ROLE",type="string",JSONPath=".spec.forProvider.role"
21
+ // +kubebuilder:printcolumn:name="TARGET_ROLE",type="string",JSONPath=".spec.forProvider.targetRole"
16
22
// +kubebuilder:printcolumn:name="SCHEMA",type="string",JSONPath=".spec.forProvider.schema"
17
23
// +kubebuilder:printcolumn:name="DATABASE",type="string",JSONPath=".spec.forProvider.database"
18
24
// +kubebuilder:printcolumn:name="PRIVILEGES",type="string",JSONPath=".spec.forProvider.privileges"
@@ -49,7 +55,7 @@ type DefaultPrivilegesParameters struct {
49
55
TargetRole * string `json:"targetRole"`
50
56
51
57
// ObjectType to which the privileges are granted.
52
- // +kubebuilder:validation:Enum=table;sequence;function;schema
58
+ // +kubebuilder:validation:Enum=table;sequence;function;schema;type
53
59
// +required
54
60
ObjectType * string `json:"objectType,omitempty"`
55
61
@@ -113,50 +119,50 @@ type DefaultPrivilegesList struct {
113
119
}
114
120
115
121
// ResolveReferences of this DefaultPrivileges.
116
- // func (mg *DefaultPrivileges) ResolveReferences(ctx context.Context, c client.Reader) error {
117
- // r := reference.NewAPIResolver(c, mg)
118
-
119
- // // Resolve spec.forProvider.database
120
- // rsp, err := r.Resolve(ctx, reference.ResolutionRequest{
121
- // CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.Database),
122
- // Reference: mg.Spec.ForProvider.DatabaseRef,
123
- // Selector: mg.Spec.ForProvider.DatabaseSelector,
124
- // To: reference.To{Managed: &Database{}, List: &DatabaseList{}},
125
- // Extract: reference.ExternalName(),
126
- // })
127
- // if err != nil {
128
- // return errors.Wrap(err, "spec.forProvider.database")
129
- // }
130
- // mg.Spec.ForProvider.Database = reference.ToPtrValue(rsp.ResolvedValue)
131
- // mg.Spec.ForProvider.DatabaseRef = rsp.ResolvedReference
132
-
133
- // // Resolve spec.forProvider.role
134
- // rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
135
- // CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.Role),
136
- // Reference: mg.Spec.ForProvider.RoleRef,
137
- // Selector: mg.Spec.ForProvider.RoleSelector,
138
- // To: reference.To{Managed: &Role{}, List: &RoleList{}},
139
- // Extract: reference.ExternalName(),
140
- // })
141
- // if err != nil {
142
- // return errors.Wrap(err, "spec.forProvider.role")
143
- // }
144
- // mg.Spec.ForProvider.Role = reference.ToPtrValue(rsp.ResolvedValue)
145
- // mg.Spec.ForProvider.RoleRef = rsp.ResolvedReference
146
-
147
- // // Resolve spec.forProvider.schema
148
- // rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
149
- // CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.Schema),
150
- // Reference: mg.Spec.ForProvider.SchemaRef,
151
- // Selector: mg.Spec.ForProvider.SchemaSelector,
152
- // To: reference.To{Managed: &Role{}, List: &RoleList{}},
153
- // Extract: reference.ExternalName(),
154
- // })
155
- // if err != nil {
156
- // return errors.Wrap(err, "spec.forProvider.schema")
157
- // }
158
- // mg.Spec.ForProvider.Schema = reference.ToPtrValue(rsp.ResolvedValue)
159
- // mg.Spec.ForProvider.SchemaRef = rsp.ResolvedReference
160
-
161
- // return nil
162
- // }
122
+ func (mg * DefaultPrivileges ) ResolveReferences (ctx context.Context , c client.Reader ) error {
123
+ r := reference .NewAPIResolver (c , mg )
124
+
125
+ // Resolve spec.forProvider.database
126
+ rsp , err := r .Resolve (ctx , reference.ResolutionRequest {
127
+ CurrentValue : reference .FromPtrValue (mg .Spec .ForProvider .Database ),
128
+ Reference : mg .Spec .ForProvider .DatabaseRef ,
129
+ Selector : mg .Spec .ForProvider .DatabaseSelector ,
130
+ To : reference.To {Managed : & Database {}, List : & DatabaseList {}},
131
+ Extract : reference .ExternalName (),
132
+ })
133
+ if err != nil {
134
+ return errors .Wrap (err , "spec.forProvider.database" )
135
+ }
136
+ mg .Spec .ForProvider .Database = reference .ToPtrValue (rsp .ResolvedValue )
137
+ mg .Spec .ForProvider .DatabaseRef = rsp .ResolvedReference
138
+
139
+ // Resolve spec.forProvider.role
140
+ rsp , err = r .Resolve (ctx , reference.ResolutionRequest {
141
+ CurrentValue : reference .FromPtrValue (mg .Spec .ForProvider .Role ),
142
+ Reference : mg .Spec .ForProvider .RoleRef ,
143
+ Selector : mg .Spec .ForProvider .RoleSelector ,
144
+ To : reference.To {Managed : & Role {}, List : & RoleList {}},
145
+ Extract : reference .ExternalName (),
146
+ })
147
+ if err != nil {
148
+ return errors .Wrap (err , "spec.forProvider.role" )
149
+ }
150
+ mg .Spec .ForProvider .Role = reference .ToPtrValue (rsp .ResolvedValue )
151
+ mg .Spec .ForProvider .RoleRef = rsp .ResolvedReference
152
+
153
+ // Resolve spec.forProvider.schema
154
+ rsp , err = r .Resolve (ctx , reference.ResolutionRequest {
155
+ CurrentValue : reference .FromPtrValue (mg .Spec .ForProvider .Schema ),
156
+ Reference : mg .Spec .ForProvider .SchemaRef ,
157
+ Selector : mg .Spec .ForProvider .SchemaSelector ,
158
+ To : reference.To {Managed : & Role {}, List : & RoleList {}},
159
+ Extract : reference .ExternalName (),
160
+ })
161
+ if err != nil {
162
+ return errors .Wrap (err , "spec.forProvider.schema" )
163
+ }
164
+ mg .Spec .ForProvider .Schema = reference .ToPtrValue (rsp .ResolvedValue )
165
+ mg .Spec .ForProvider .SchemaRef = rsp .ResolvedReference
166
+
167
+ return nil
168
+ }
0 commit comments