Skip to content

Commit

Permalink
refactor(pointer): Use generic pointer functions
Browse files Browse the repository at this point in the history
* Add generic functions for late initialize and pointer refs and derefs.
* Replace calls that are using the `pointer.FieldRequired` option with
  ptr.To which as the same effect but is much simpler.
* Remove pointer functions that are not used anymore.
* Change pointer functions so they don't depend on the AWS sdk anymore
  but only `k8s.io/utils/ptr`.

Signed-off-by: Maximilian Blatt (external expert on behalf of DB Netz) <maximilian.blatt-extern@deutschebahn.com>
  • Loading branch information
MisterMX committed Oct 25, 2023
1 parent 89347ab commit 6f0657a
Show file tree
Hide file tree
Showing 188 changed files with 3,204 additions and 3,271 deletions.
8 changes: 4 additions & 4 deletions CODE_GENERATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -284,22 +284,22 @@ func SetupStage(mgr ctrl.Manager, o controller.Options) error {
}

func preObserve(_ context.Context, cr *svcapitypes.Stage, obj *svcsdk.DescribeStageInput) error {
obj.StageName = pointer.String(meta.GetExternalName(cr))
obj.StageName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))
return nil
}

func preCreate(_ context.Context, cr *svcapitypes.Stage, obj *svcsdk.CreateStageInput) error {
obj.StageName = pointer.String(meta.GetExternalName(cr))
obj.StageName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))
return nil
}

func preUpdate(_ context.Context, cr *svcapitypes.Stage, obj *svcsdk.UpdateStageInput) error {
obj.StageName = pointer.String(meta.GetExternalName(cr))
obj.StageName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))
return nil
}

func preDelete(_ context.Context, cr *svcapitypes.Stage, obj *svcsdk.DeleteStageInput) error {
obj.StageName = pointer.String(meta.GetExternalName(cr))
obj.StageName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))
return nil
}
```
Expand Down
2 changes: 1 addition & 1 deletion pkg/clients/acm/certificate.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func GenerateCertificateStatus(certificate types.CertificateDetail) v1beta1.Cert
// LateInitializeCertificate fills the empty fields in *v1beta1.CertificateParameters with
// the values seen in iam.Certificate.
func LateInitializeCertificate(in *v1beta1.CertificateParameters, certificate *types.CertificateDetail) {
in.CertificateAuthorityARN = pointer.LateInitializeStringPtr(in.CertificateAuthorityARN, certificate.CertificateAuthorityArn)
in.CertificateAuthorityARN = pointer.LateInitialize(in.CertificateAuthorityARN, certificate.CertificateAuthorityArn)
if in.Options == nil && certificate.Options != nil {
in.Options = &v1beta1.CertificateOptions{
CertificateTransparencyLoggingPreference: string(certificate.Options.CertificateTransparencyLoggingPreference),
Expand Down
50 changes: 25 additions & 25 deletions pkg/clients/acm/certificate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func TestGenerateCreateCertificateInput(t *testing.T) {
"FilledInput": {
in: v1beta1.CertificateParameters{
DomainName: domainName,
CertificateAuthorityARN: pointer.String(certificateAuthorityArn),
CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &v1beta1.CertificateOptions{
CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference,
},
Expand All @@ -40,13 +40,13 @@ func TestGenerateCreateCertificateInput(t *testing.T) {
}},
},
out: acm.RequestCertificateInput{
DomainName: pointer.String(domainName),
CertificateAuthorityArn: pointer.String(certificateAuthorityArn),
DomainName: pointer.ToOrNilIfZeroValue(domainName),
CertificateAuthorityArn: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &acmtypes.CertificateOptions{CertificateTransparencyLoggingPreference: acmtypes.CertificateTransparencyLoggingPreferenceDisabled},
ValidationMethod: acmtypes.ValidationMethodDns,
Tags: []acmtypes.Tag{{
Key: pointer.String("key1"),
Value: pointer.String("value1"),
Key: pointer.ToOrNilIfZeroValue("key1"),
Value: pointer.ToOrNilIfZeroValue("value1"),
}},
},
},
Expand Down Expand Up @@ -77,20 +77,20 @@ func TestLateInitializeCertificate(t *testing.T) {
args: args{
spec: &v1beta1.CertificateParameters{
DomainName: domainName,
CertificateAuthorityARN: pointer.String(certificateAuthorityArn),
CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &v1beta1.CertificateOptions{
CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference,
},
},
in: &acmtypes.CertificateDetail{
DomainName: pointer.String(domainName),
CertificateAuthorityArn: pointer.String(certificateAuthorityArn),
DomainName: pointer.ToOrNilIfZeroValue(domainName),
CertificateAuthorityArn: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &acmtypes.CertificateOptions{CertificateTransparencyLoggingPreference: acmtypes.CertificateTransparencyLoggingPreferenceDisabled},
},
},
want: &v1beta1.CertificateParameters{
DomainName: domainName,
CertificateAuthorityARN: pointer.String(certificateAuthorityArn),
CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &v1beta1.CertificateOptions{
CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference,
},
Expand All @@ -100,20 +100,20 @@ func TestLateInitializeCertificate(t *testing.T) {
args: args{
spec: &v1beta1.CertificateParameters{
DomainName: domainName,
CertificateAuthorityARN: pointer.String(certificateAuthorityArn),
CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &v1beta1.CertificateOptions{
CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference,
},
},
in: &acmtypes.CertificateDetail{
DomainName: pointer.String(domainName),
CertificateAuthorityArn: pointer.String(certificateAuthorityArn),
DomainName: pointer.ToOrNilIfZeroValue(domainName),
CertificateAuthorityArn: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &acmtypes.CertificateOptions{CertificateTransparencyLoggingPreference: acmtypes.CertificateTransparencyLoggingPreferenceDisabled},
},
},
want: &v1beta1.CertificateParameters{
DomainName: domainName,
CertificateAuthorityARN: pointer.String(certificateAuthorityArn),
CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &v1beta1.CertificateOptions{
CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference,
},
Expand All @@ -123,17 +123,17 @@ func TestLateInitializeCertificate(t *testing.T) {
args: args{
spec: &v1beta1.CertificateParameters{
DomainName: domainName,
CertificateAuthorityARN: pointer.String(certificateAuthorityArn),
CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
},
in: &acmtypes.CertificateDetail{
DomainName: pointer.String(domainName),
CertificateAuthorityArn: pointer.String(certificateAuthorityArn),
DomainName: pointer.ToOrNilIfZeroValue(domainName),
CertificateAuthorityArn: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &acmtypes.CertificateOptions{CertificateTransparencyLoggingPreference: acmtypes.CertificateTransparencyLoggingPreferenceDisabled},
},
},
want: &v1beta1.CertificateParameters{
DomainName: domainName,
CertificateAuthorityARN: pointer.String(certificateAuthorityArn),
CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn),
Options: &v1beta1.CertificateOptions{
CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference,
},
Expand Down Expand Up @@ -162,7 +162,7 @@ func TestGenerateCertificateStatus(t *testing.T) {
}{
"AllFilled": {
in: acmtypes.CertificateDetail{
CertificateArn: pointer.String(certificateArn),
CertificateArn: pointer.ToOrNilIfZeroValue(certificateArn),
RenewalEligibility: acmtypes.RenewalEligibilityEligible,
},
out: v1beta1.CertificateExternalStatus{
Expand All @@ -182,7 +182,7 @@ func TestGenerateCertificateStatus(t *testing.T) {
},
"DomainValidationOptionsResourceRecord": {
in: acmtypes.CertificateDetail{
CertificateArn: pointer.String(certificateArn),
CertificateArn: pointer.ToOrNilIfZeroValue(certificateArn),
RenewalEligibility: acmtypes.RenewalEligibilityIneligible,
Type: acmtypes.CertificateTypeAmazonIssued,
Status: acmtypes.CertificateStatusPendingValidation,
Expand Down Expand Up @@ -248,8 +248,8 @@ func TestIsCertificateUpToDate(t *testing.T) {
}},
},
tags: []acmtypes.Tag{{
Key: pointer.String("key1"),
Value: pointer.String("value1"),
Key: pointer.ToOrNilIfZeroValue("key1"),
Value: pointer.ToOrNilIfZeroValue("value1"),
}},
},
want: true,
Expand All @@ -269,8 +269,8 @@ func TestIsCertificateUpToDate(t *testing.T) {
}},
},
tags: []acmtypes.Tag{{
Key: pointer.String("key1"),
Value: pointer.String("value1"),
Key: pointer.ToOrNilIfZeroValue("key1"),
Value: pointer.ToOrNilIfZeroValue("value1"),
}},
},
want: false,
Expand All @@ -290,8 +290,8 @@ func TestIsCertificateUpToDate(t *testing.T) {
}},
},
tags: []acmtypes.Tag{{
Key: pointer.String("key2"),
Value: pointer.String("value2"),
Key: pointer.ToOrNilIfZeroValue("key2"),
Value: pointer.ToOrNilIfZeroValue("value2"),
}},
},
want: false,
Expand Down
18 changes: 9 additions & 9 deletions pkg/clients/acmpca/certificateauthority.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ func GenerateCreateCertificateAuthorityInput(p *v1beta1.CertificateAuthorityPara
m.Tags = make([]types.Tag, len(p.Tags))
for i, val := range p.Tags {
m.Tags[i] = types.Tag{
Key: pointer.String(val.Key),
Value: pointer.String(val.Value),
Key: pointer.ToOrNilIfZeroValue(val.Key),
Value: pointer.ToOrNilIfZeroValue(val.Value),
}
}

Expand All @@ -69,18 +69,18 @@ func GenerateCertificateAuthorityConfiguration(p v1beta1.CertificateAuthorityCon

m := &types.CertificateAuthorityConfiguration{
Subject: &types.ASN1Subject{
CommonName: pointer.String(p.Subject.CommonName),
Country: pointer.String(p.Subject.Country),
CommonName: pointer.ToOrNilIfZeroValue(p.Subject.CommonName),
Country: pointer.ToOrNilIfZeroValue(p.Subject.Country),
DistinguishedNameQualifier: p.Subject.DistinguishedNameQualifier,
GenerationQualifier: p.Subject.GenerationQualifier,
GivenName: p.Subject.GivenName,
Initials: p.Subject.Initials,
Locality: pointer.String(p.Subject.Locality),
Organization: pointer.String(p.Subject.Organization),
OrganizationalUnit: pointer.String(p.Subject.OrganizationalUnit),
Locality: pointer.ToOrNilIfZeroValue(p.Subject.Locality),
Organization: pointer.ToOrNilIfZeroValue(p.Subject.Organization),
OrganizationalUnit: pointer.ToOrNilIfZeroValue(p.Subject.OrganizationalUnit),
Pseudonym: p.Subject.Pseudonym,
SerialNumber: p.Subject.SerialNumber,
State: pointer.String(p.Subject.State),
State: pointer.ToOrNilIfZeroValue(p.Subject.State),
Surname: p.Subject.Surname,
Title: p.Subject.Title,
},
Expand Down Expand Up @@ -124,7 +124,7 @@ func LateInitializeCertificateAuthority(in *v1beta1.CertificateAuthorityParamete
// so these are the only variants we support in spec. The current status
// in the status.atProvider.
if aws.ToString(in.Status) == "" && (certificateAuthority.Status == types.CertificateAuthorityStatusActive || certificateAuthority.Status == types.CertificateAuthorityStatusDisabled) {
in.Status = pointer.String(string(certificateAuthority.Status))
in.Status = pointer.ToOrNilIfZeroValue(string(certificateAuthority.Status))
}

if certificateAuthority.RevocationConfiguration.CrlConfiguration.Enabled {
Expand Down
Loading

0 comments on commit 6f0657a

Please sign in to comment.