@@ -738,6 +738,18 @@ func TestDeleteObject(t *testing.T) {
738
738
t .Fatalf ("Unexpected error, got: %v" , err )
739
739
}
740
740
})
741
+
742
+ t .Run ("object_access_denied_and_BestEffortDeleteObjects_is_on" , func (t * testing.T ) {
743
+ t .Parallel ()
744
+
745
+ svc , s3Mock := testService (t , & testServiceInput {Bucket : & infrav1.S3Bucket {BestEffortDeleteObjects : aws .Bool (true )}})
746
+ s3Mock .EXPECT ().HeadObject (gomock .Any ()).Return (nil , nil )
747
+ s3Mock .EXPECT ().DeleteObject (gomock .Any ()).Return (nil , awserr .New ("AccessDenied" , "Access Denied" , nil ))
748
+
749
+ if err := svc .Delete (machineScope ); err != nil {
750
+ t .Fatalf ("Unexpected error, got: %v" , err )
751
+ }
752
+ })
741
753
})
742
754
743
755
t .Run ("returns_error_when" , func (t * testing.T ) {
@@ -793,6 +805,27 @@ func TestDeleteObject(t *testing.T) {
793
805
t .Fatalf ("Expected error" )
794
806
}
795
807
})
808
+
809
+ t .Run ("object_access_denied_and_BestEffortDeleteObjects_is_off" , func (t * testing.T ) {
810
+ t .Parallel ()
811
+
812
+ svc , s3Mock := testService (t , & testServiceInput {Bucket : & infrav1.S3Bucket {}})
813
+ s3Mock .EXPECT ().HeadObject (gomock .Any ()).Return (nil , nil )
814
+ s3Mock .EXPECT ().DeleteObject (gomock .Any ()).Return (nil , awserr .New ("AccessDenied" , "Access Denied" , nil ))
815
+
816
+ machineScope := & scope.MachineScope {
817
+ Machine : & clusterv1.Machine {},
818
+ AWSMachine : & infrav1.AWSMachine {
819
+ ObjectMeta : metav1.ObjectMeta {
820
+ Name : nodeName ,
821
+ },
822
+ },
823
+ }
824
+
825
+ if err := svc .Delete (machineScope ); err == nil {
826
+ t .Fatalf ("Expected error" )
827
+ }
828
+ })
796
829
})
797
830
798
831
t .Run ("is_idempotent" , func (t * testing.T ) {
0 commit comments