From 3c38a1e875cb98868e3929d875a2d185e37d2316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergen=20Yal=C3=A7=C4=B1n?= Date: Fri, 9 May 2025 18:37:10 +0300 Subject: [PATCH] Change the multi resolvers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Sergen Yalçın --- cmd/angryjet/main.go | 10 +--------- internal/method/resolver.go | 10 +++++----- internal/method/resolver_test.go | 7 +++---- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/cmd/angryjet/main.go b/cmd/angryjet/main.go index 6e0d28b..77cec3c 100644 --- a/cmd/angryjet/main.go +++ b/cmd/angryjet/main.go @@ -50,9 +50,6 @@ const ( ClientAlias = "client" ClientImport = "sigs.k8s.io/controller-runtime/pkg/client" - ConvertAlias = "convert" - ConvertImport = "github.com/crossplane/crossplane-tools/pkg/convert" - RuntimeAlias = "xpv1" RuntimeImport = "github.com/crossplane/crossplane-runtime/apis/common/v1" @@ -61,9 +58,6 @@ const ( ReferenceAlias = "reference" ReferenceImport = "github.com/crossplane/crossplane-runtime/pkg/reference" - - PtrAlias = "ptr" - PtrImport = "k8s.io/utils/ptr" ) func main() { @@ -234,16 +228,14 @@ func GenerateReferences(filename, header string, p *packages.Package) error { comm := comments.In(p) methods := method.Set{ - "ResolveReferences": method.NewResolveReferences(types.NewTraverser(comm), receiver, ClientImport, ReferenceImport, ConvertImport, PtrImport), + "ResolveReferences": method.NewResolveReferences(types.NewTraverser(comm), receiver, ClientImport, ReferenceImport), } err := generate.WriteMethods(p, methods, filepath.Join(filepath.Dir(p.GoFiles[0]), filename), generate.WithHeaders(header), generate.WithImportAliases(map[string]string{ ClientImport: ClientAlias, - ConvertImport: ConvertAlias, ReferenceImport: ReferenceAlias, - PtrAlias: PtrImport, }), generate.WithMatcher(match.AllOf( match.Managed(), diff --git a/internal/method/resolver.go b/internal/method/resolver.go index 6bb5474..71c40eb 100644 --- a/internal/method/resolver.go +++ b/internal/method/resolver.go @@ -29,7 +29,7 @@ import ( // NewResolveReferences returns a NewMethod that writes a ResolveReferences for // given managed resource, if needed. -func NewResolveReferences(traverser *xptypes.Traverser, receiver, clientPath, referencePkgPath string, convertPkgPath string, ptrPkgPath string) New { +func NewResolveReferences(traverser *xptypes.Traverser, receiver, clientPath, referencePkgPath string) New { return func(f *jen.File, o types.Object) { n, ok := o.Type().(*types.Named) if !ok { @@ -55,7 +55,7 @@ func NewResolveReferences(traverser *xptypes.Traverser, receiver, clientPath, re for i, ref := range refs { if ref.IsSlice { hasMultiResolution = true - resolverCalls[i] = encapsulate(0, multiResolutionCall(ref, referencePkgPath, convertPkgPath), ref.GoValueFieldPath...).Line() + resolverCalls[i] = encapsulate(0, multiResolutionCall(ref, referencePkgPath), ref.GoValueFieldPath...).Line() } else { hasSingleResolution = true resolverCalls[i] = encapsulate(0, singleResolutionCall(ref, referencePkgPath), ref.GoValueFieldPath...).Line() @@ -162,7 +162,7 @@ func singleResolutionCall(ref Reference, referencePkgPath string) resolutionCall } } -func multiResolutionCall(ref Reference, referencePkgPath string, convertPkgPath string) resolutionCallFn { +func multiResolutionCall(ref Reference, referencePkgPath string) resolutionCallFn { return func(fields ...string) *jen.Statement { prefixPath := jen.Id(fields[0]) for i := 1; i < len(fields)-1; i++ { @@ -181,8 +181,8 @@ func multiResolutionCall(ref Reference, referencePkgPath string, convertPkgPath } if ref.IsPointer { - setResolvedValues = currentValuePath.Clone().Op("=").Qual(convertPkgPath, toPointersFunction).Call(jen.Id("mrsp").Dot("ResolvedValues")) - currentValuePath = jen.Qual(convertPkgPath, fromPointersFunction).Call(currentValuePath) + setResolvedValues = currentValuePath.Clone().Op("=").Qual(referencePkgPath, toPointersFunction).Call(jen.Id("mrsp").Dot("ResolvedValues")) + currentValuePath = jen.Qual(referencePkgPath, fromPointersFunction).Call(currentValuePath) } return &jen.Statement{ diff --git a/internal/method/resolver_test.go b/internal/method/resolver_test.go index 1cab089..aa0769e 100644 --- a/internal/method/resolver_test.go +++ b/internal/method/resolver_test.go @@ -109,7 +109,6 @@ type Model struct { import ( "context" client "example.org/client" - convert "example.org/convert" reference "example.org/reference" v1beta11 "github.com/crossplane/provider-aws/apis/ec2/v1beta1" v1beta1 "github.com/crossplane/provider-aws/apis/identity/v1beta1" @@ -273,7 +272,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error { mg.Spec.ForProvider.SubnetIDRefs = mrsp.ResolvedReferences mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{ - CurrentValues: convert.FromPtrValues(mg.Spec.ForProvider.RouteTableIDs), + CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.RouteTableIDs), Extract: reference.ExternalName(), References: mg.Spec.ForProvider.RouteTableIDsRefs, Selector: mg.Spec.ForProvider.RouteTableIDsSelector, @@ -285,7 +284,7 @@ func (mg *Model) ResolveReferences(ctx context.Context, c client.Reader) error { if err != nil { return errors.Wrap(err, "mg.Spec.ForProvider.RouteTableIDs") } - mg.Spec.ForProvider.RouteTableIDs = convert.ToPtrValues(mrsp.ResolvedValues) + mg.Spec.ForProvider.RouteTableIDs = reference.ToPtrValues(mrsp.ResolvedValues) mg.Spec.ForProvider.RouteTableIDsRefs = mrsp.ResolvedReferences rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ @@ -339,7 +338,7 @@ func TestNewResolveReferences(t *testing.T) { t.Error(err) } f := jen.NewFilePath("golang.org/fake/v1alpha1") - NewResolveReferences(xptypes.NewTraverser(comments.In(pkgs[0])), "mg", "example.org/client", "example.org/reference", "example.org/convert", "k8s.io/utils/ptr")(f, pkgs[0].Types.Scope().Lookup("Model")) + NewResolveReferences(xptypes.NewTraverser(comments.In(pkgs[0])), "mg", "example.org/client", "example.org/reference")(f, pkgs[0].Types.Scope().Lookup("Model")) if diff := cmp.Diff(generated, fmt.Sprintf("%#v", f)); diff != "" { t.Errorf("NewResolveReferences(): -want, +got\n%s", diff) }