@@ -17,29 +17,10 @@ limitations under the License.
1717package v1beta1
1818
1919import (
20- "context"
21-
22- "github.com/pkg/errors"
23- "sigs.k8s.io/controller-runtime/pkg/client"
24-
25- "github.com/crossplane/crossplane-runtime/pkg/reference"
26- "github.com/crossplane/crossplane-runtime/pkg/resource"
27-
28- "github.com/crossplane/provider-aws/apis/iam/v1beta1"
29- "github.com/crossplane/provider-aws/apis/notification/v1alpha1"
20+ reference "github.com/crossplane/crossplane-runtime/pkg/reference"
21+ resource "github.com/crossplane/crossplane-runtime/pkg/resource"
3022)
3123
32- // SNSTopicARN returns a function that returns the ARN of the given SNS Topic.
33- func SNSTopicARN () reference.ExtractValueFn {
34- return func (mg resource.Managed ) string {
35- r , ok := mg .(* v1alpha1.SNSTopic )
36- if ! ok {
37- return ""
38- }
39- return r .Status .AtProvider .ARN
40- }
41- }
42-
4324// BucketARN returns a function that returns the ARN of the given S3 Bucket
4425func BucketARN () reference.ExtractValueFn {
4526 return func (mg resource.Managed ) string {
@@ -50,79 +31,3 @@ func BucketARN() reference.ExtractValueFn {
5031 return r .Status .AtProvider .ARN
5132 }
5233}
53-
54- // ResolveReferences of this Bucket
55- func (mg * Bucket ) ResolveReferences (ctx context.Context , c client.Reader ) error { // nolint:gocyclo
56- r := reference .NewAPIResolver (c , mg )
57- // Resolve spec.forProvider.notificationConfiguration.topicConfigurations[].topicArn
58- // TODO - need a way to extract arbitrary ARNs from resources - for the
59- // topic we are missing a lot of information
60- if mg .Spec .ForProvider .NotificationConfiguration != nil {
61- for i , v := range mg .Spec .ForProvider .NotificationConfiguration .TopicConfigurations {
62- rsp , err := r .Resolve (ctx , reference.ResolutionRequest {
63- CurrentValue : reference .FromPtrValue (v .TopicArn ),
64- Reference : v .TopicArnRef ,
65- Selector : v .TopicArnSelector ,
66- To : reference.To {Managed : & v1alpha1.SNSTopic {}, List : & v1alpha1.SNSTopicList {}},
67- Extract : SNSTopicARN (),
68- })
69- if err != nil {
70- return errors .Wrapf (err , "spec.forProvider.notificationConfiguration.topicConfigurations[%d].topicArn" , i )
71- }
72- mg .Spec .ForProvider .NotificationConfiguration .TopicConfigurations [i ].TopicArn = reference .ToPtrValue (rsp .ResolvedValue )
73- mg .Spec .ForProvider .NotificationConfiguration .TopicConfigurations [i ].TopicArnRef = rsp .ResolvedReference
74- }
75- }
76-
77- // Resolve spec.forProvider.loggingConfiguration.targetBucket
78- if mg .Spec .ForProvider .LoggingConfiguration != nil {
79- rsp , err := r .Resolve (ctx , reference.ResolutionRequest {
80- CurrentValue : reference .FromPtrValue (mg .Spec .ForProvider .LoggingConfiguration .TargetBucket ),
81- Reference : mg .Spec .ForProvider .LoggingConfiguration .TargetBucketRef ,
82- Selector : mg .Spec .ForProvider .LoggingConfiguration .TargetBucketSelector ,
83- To : reference.To {Managed : & Bucket {}, List : & BucketList {}},
84- Extract : reference .ExternalName (),
85- })
86- if err != nil {
87- return errors .Wrap (err , "spec.forProvider.loggingConfiguration.targetBucket" )
88- }
89- mg .Spec .ForProvider .LoggingConfiguration .TargetBucket = reference .ToPtrValue (rsp .ResolvedValue )
90- mg .Spec .ForProvider .LoggingConfiguration .TargetBucketRef = rsp .ResolvedReference
91- }
92-
93- // Resolve spec.forProvider.replicationConfiguration.role
94- if mg .Spec .ForProvider .ReplicationConfiguration != nil {
95- rsp , err := r .Resolve (ctx , reference.ResolutionRequest {
96- CurrentValue : reference .FromPtrValue (mg .Spec .ForProvider .ReplicationConfiguration .Role ),
97- Reference : mg .Spec .ForProvider .ReplicationConfiguration .RoleRef ,
98- Selector : mg .Spec .ForProvider .ReplicationConfiguration .RoleSelector ,
99- To : reference.To {Managed : & v1beta1.Role {}, List : & v1beta1.RoleList {}},
100- Extract : v1beta1 .RoleARN (),
101- })
102- if err != nil {
103- return errors .Wrap (err , "spec.forProvider.replicationConfiguration.role" )
104- }
105- mg .Spec .ForProvider .ReplicationConfiguration .Role = reference .ToPtrValue (rsp .ResolvedValue )
106- mg .Spec .ForProvider .ReplicationConfiguration .RoleRef = rsp .ResolvedReference
107- }
108-
109- // Resolve spec.forProvider.replicationConfiguration.rules[*].bucket
110- if mg .Spec .ForProvider .ReplicationConfiguration != nil {
111- for i , v := range mg .Spec .ForProvider .ReplicationConfiguration .Rules {
112- rsp , err := r .Resolve (ctx , reference.ResolutionRequest {
113- CurrentValue : reference .FromPtrValue (v .Destination .Bucket ),
114- Reference : v .Destination .BucketRef ,
115- Selector : v .Destination .BucketSelector ,
116- To : reference.To {Managed : & Bucket {}, List : & BucketList {}},
117- Extract : BucketARN (),
118- })
119- if err != nil {
120- return errors .Wrapf (err , "spec.forProvider.replicationConfiguration.rules[%d].bucket" , i )
121- }
122- mg .Spec .ForProvider .ReplicationConfiguration .Rules [i ].Destination .Bucket = reference .ToPtrValue (rsp .ResolvedValue )
123- mg .Spec .ForProvider .ReplicationConfiguration .Rules [i ].Destination .BucketRef = rsp .ResolvedReference
124- }
125- }
126-
127- return nil
128- }
0 commit comments