11package v1alpha1
22
33import (
4+ "context"
5+
46 xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
7+ "github.com/crossplane/crossplane-runtime/pkg/reference"
8+ "github.com/pkg/errors"
59 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
10+ "sigs.k8s.io/controller-runtime/pkg/client"
611)
712
813// +kubebuilder:object:root=true
@@ -13,6 +18,7 @@ import (
1318// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
1419// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
1520// +kubebuilder:printcolumn:name="ROLE",type="string",JSONPath=".spec.forProvider.role"
21+ // +kubebuilder:printcolumn:name="TARGET_ROLE",type="string",JSONPath=".spec.forProvider.targetRole"
1622// +kubebuilder:printcolumn:name="SCHEMA",type="string",JSONPath=".spec.forProvider.schema"
1723// +kubebuilder:printcolumn:name="DATABASE",type="string",JSONPath=".spec.forProvider.database"
1824// +kubebuilder:printcolumn:name="PRIVILEGES",type="string",JSONPath=".spec.forProvider.privileges"
@@ -49,7 +55,7 @@ type DefaultPrivilegesParameters struct {
4955 TargetRole * string `json:"targetRole"`
5056
5157 // ObjectType to which the privileges are granted.
52- // +kubebuilder:validation:Enum=table;sequence;function;schema
58+ // +kubebuilder:validation:Enum=table;sequence;function;schema;type
5359 // +required
5460 ObjectType * string `json:"objectType,omitempty"`
5561
@@ -113,50 +119,50 @@ type DefaultPrivilegesList struct {
113119}
114120
115121// 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