Merge pull request #110 from jbw976/namespace-refs
feat: enable namespaced references in generated resolvers
This commit is contained in:
commit
9102d33d29
|
@ -50,6 +50,9 @@ type Reference struct {
|
||||||
// RemoteListType is the list type of the type whose reference we're holding.
|
// RemoteListType is the list type of the type whose reference we're holding.
|
||||||
RemoteListType *jen.Statement
|
RemoteListType *jen.Statement
|
||||||
|
|
||||||
|
// GetNamespace is the function call for getting the namespace of instance.
|
||||||
|
GetNamespace *jen.Statement
|
||||||
|
|
||||||
// GoValueFieldPath is the list of fields that needs to be traveled to access
|
// GoValueFieldPath is the list of fields that needs to be traveled to access
|
||||||
// the current value field. It may include prefixes like [] for array fields,
|
// the current value field. It may include prefixes like [] for array fields,
|
||||||
// * for pointer fields or []* for array of pointer fields.
|
// * for pointer fields or []* for array of pointer fields.
|
||||||
|
@ -163,6 +166,7 @@ func (rp *ReferenceProcessor) Process(_ *types.Named, f *types.Var, _, comment s
|
||||||
GoValueFieldPath: append(path, f.Name()),
|
GoValueFieldPath: append(path, f.Name()),
|
||||||
GoRefFieldName: refFieldName,
|
GoRefFieldName: refFieldName,
|
||||||
GoSelectorFieldName: selectorFieldName,
|
GoSelectorFieldName: selectorFieldName,
|
||||||
|
GetNamespace: jen.Id(rp.Receiver).Dot("GetNamespace").Call(),
|
||||||
IsPointer: isPointer,
|
IsPointer: isPointer,
|
||||||
IsSlice: isList,
|
IsSlice: isList,
|
||||||
IsFloatPointer: isFloatPointer,
|
IsFloatPointer: isFloatPointer,
|
||||||
|
|
|
@ -145,7 +145,8 @@ func singleResolutionCall(ref Reference, referencePkgPath string) resolutionCall
|
||||||
jen.Id("Managed"): ref.RemoteType,
|
jen.Id("Managed"): ref.RemoteType,
|
||||||
jen.Id("List"): ref.RemoteListType,
|
jen.Id("List"): ref.RemoteListType,
|
||||||
}),
|
}),
|
||||||
jen.Id("Extract"): ref.Extractor,
|
jen.Id("Extract"): ref.Extractor,
|
||||||
|
jen.Id("Namespace"): ref.GetNamespace,
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -196,7 +197,8 @@ func multiResolutionCall(ref Reference, referencePkgPath string) resolutionCallF
|
||||||
jen.Id("Managed"): ref.RemoteType,
|
jen.Id("Managed"): ref.RemoteType,
|
||||||
jen.Id("List"): ref.RemoteListType,
|
jen.Id("List"): ref.RemoteListType,
|
||||||
}),
|
}),
|
||||||
jen.Id("Extract"): ref.Extractor,
|
jen.Id("Extract"): ref.Extractor,
|
||||||
|
jen.Id("Namespace"): ref.GetNamespace,
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -126,6 +126,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: mg.Spec.ForProvider.APIID,
|
CurrentValue: mg.Spec.ForProvider.APIID,
|
||||||
Extract: reference.ExternalName(),
|
Extract: reference.ExternalName(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.APIIDRef,
|
Reference: mg.Spec.ForProvider.APIIDRef,
|
||||||
Selector: mg.Spec.ForProvider.APIIDSelector,
|
Selector: mg.Spec.ForProvider.APIIDSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -142,6 +143,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.SecurityGroupID),
|
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.SecurityGroupID),
|
||||||
Extract: reference.ExternalName(),
|
Extract: reference.ExternalName(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.SecurityGroupIDRef,
|
Reference: mg.Spec.ForProvider.SecurityGroupIDRef,
|
||||||
Selector: mg.Spec.ForProvider.SecurityGroupIDSelector,
|
Selector: mg.Spec.ForProvider.SecurityGroupIDSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -158,6 +160,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.IAMRoleARN),
|
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.IAMRoleARN),
|
||||||
Extract: v1beta1.IAMRoleARN(),
|
Extract: v1beta1.IAMRoleARN(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.IAMRoleARNRef,
|
Reference: mg.Spec.ForProvider.IAMRoleARNRef,
|
||||||
Selector: mg.Spec.ForProvider.IAMRoleARNSelector,
|
Selector: mg.Spec.ForProvider.IAMRoleARNSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -174,6 +177,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.NestedTargetWithPath),
|
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.NestedTargetWithPath),
|
||||||
Extract: v1beta1.IAMRoleARN("a.b.c"),
|
Extract: v1beta1.IAMRoleARN("a.b.c"),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.NestedTargetWithPathRef,
|
Reference: mg.Spec.ForProvider.NestedTargetWithPathRef,
|
||||||
Selector: mg.Spec.ForProvider.NestedTargetWithPathSelector,
|
Selector: mg.Spec.ForProvider.NestedTargetWithPathSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -190,6 +194,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.NestedTargetNoPath),
|
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.NestedTargetNoPath),
|
||||||
Extract: IAMRoleARN("a.b.c"),
|
Extract: IAMRoleARN("a.b.c"),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.NestedTargetNoPathRef,
|
Reference: mg.Spec.ForProvider.NestedTargetNoPathRef,
|
||||||
Selector: mg.Spec.ForProvider.NestedTargetNoPathSelector,
|
Selector: mg.Spec.ForProvider.NestedTargetNoPathSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -206,6 +211,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.NoArgNoPath),
|
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.NoArgNoPath),
|
||||||
Extract: IAMRoleARN(),
|
Extract: IAMRoleARN(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.NoArgNoPathRef,
|
Reference: mg.Spec.ForProvider.NoArgNoPathRef,
|
||||||
Selector: mg.Spec.ForProvider.NoArgNoPathSelector,
|
Selector: mg.Spec.ForProvider.NoArgNoPathSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -223,6 +229,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: mg.Spec.ForProvider.Network.VPCID,
|
CurrentValue: mg.Spec.ForProvider.Network.VPCID,
|
||||||
Extract: reference.ExternalName(),
|
Extract: reference.ExternalName(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.Network.VPCIDRef,
|
Reference: mg.Spec.ForProvider.Network.VPCIDRef,
|
||||||
Selector: mg.Spec.ForProvider.Network.VPCIDSelector,
|
Selector: mg.Spec.ForProvider.Network.VPCIDSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -241,6 +248,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: mg.Spec.ForProvider.OtherSetting[i3].OtherID,
|
CurrentValue: mg.Spec.ForProvider.OtherSetting[i3].OtherID,
|
||||||
Extract: reference.ExternalName(),
|
Extract: reference.ExternalName(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.OtherSetting[i3].OtherIDRef,
|
Reference: mg.Spec.ForProvider.OtherSetting[i3].OtherIDRef,
|
||||||
Selector: mg.Spec.ForProvider.OtherSetting[i3].OtherIDSelector,
|
Selector: mg.Spec.ForProvider.OtherSetting[i3].OtherIDSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -258,6 +266,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{
|
mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{
|
||||||
CurrentValues: mg.Spec.ForProvider.SubnetIDs,
|
CurrentValues: mg.Spec.ForProvider.SubnetIDs,
|
||||||
Extract: reference.ExternalName(),
|
Extract: reference.ExternalName(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
References: mg.Spec.ForProvider.SubnetIDRefs,
|
References: mg.Spec.ForProvider.SubnetIDRefs,
|
||||||
Selector: mg.Spec.ForProvider.SubnetIDSelector,
|
Selector: mg.Spec.ForProvider.SubnetIDSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -274,6 +283,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{
|
mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{
|
||||||
CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.RouteTableIDs),
|
CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.RouteTableIDs),
|
||||||
Extract: reference.ExternalName(),
|
Extract: reference.ExternalName(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
References: mg.Spec.ForProvider.RouteTableIDsRefs,
|
References: mg.Spec.ForProvider.RouteTableIDsRefs,
|
||||||
Selector: mg.Spec.ForProvider.RouteTableIDsSelector,
|
Selector: mg.Spec.ForProvider.RouteTableIDsSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -290,6 +300,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.CustomConfiguration),
|
CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.CustomConfiguration),
|
||||||
Extract: Configuration(),
|
Extract: Configuration(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.CustomConfigurationRef,
|
Reference: mg.Spec.ForProvider.CustomConfigurationRef,
|
||||||
Selector: mg.Spec.ForProvider.CustomConfigurationSelector,
|
Selector: mg.Spec.ForProvider.CustomConfigurationSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
@ -306,6 +317,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error {
|
||||||
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
rsp, err = r.Resolve(ctx, reference.ResolutionRequest{
|
||||||
CurrentValue: reference.FromFloatPtrValue(mg.Spec.ForProvider.Count),
|
CurrentValue: reference.FromFloatPtrValue(mg.Spec.ForProvider.Count),
|
||||||
Extract: Count(),
|
Extract: Count(),
|
||||||
|
Namespace: mg.GetNamespace(),
|
||||||
Reference: mg.Spec.ForProvider.CountRef,
|
Reference: mg.Spec.ForProvider.CountRef,
|
||||||
Selector: mg.Spec.ForProvider.CountSelector,
|
Selector: mg.Spec.ForProvider.CountSelector,
|
||||||
To: reference.To{
|
To: reference.To{
|
||||||
|
|
Loading…
Reference in New Issue