mirror of https://github.com/kubernetes/kops.git
deletion: tolerate concurrent SQS queue deletion
Ignore the not-found error.
This commit is contained in:
parent
baae57afd5
commit
d50f1968a9
|
@ -21,6 +21,7 @@ import (
|
|||
"sync"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/request"
|
||||
"github.com/aws/aws-sdk-go/service/sqs"
|
||||
"github.com/aws/aws-sdk-go/service/sqs/sqsiface"
|
||||
)
|
||||
|
@ -109,6 +110,6 @@ func (m *MockSQS) ListQueueTags(input *sqs.ListQueueTagsInput) (*sqs.ListQueueTa
|
|||
return response, nil
|
||||
}
|
||||
|
||||
func (m *MockSQS) DeleteQueue(*sqs.DeleteQueueInput) (*sqs.DeleteQueueOutput, error) {
|
||||
func (m *MockSQS) DeleteQueueWithContext(aws.Context, *sqs.DeleteQueueInput, ...request.Option) (*sqs.DeleteQueueOutput, error) {
|
||||
panic("Not implemented")
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ limitations under the License.
|
|||
package aws
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
|
@ -39,6 +40,7 @@ func DumpSQSQueue(op *resources.DumpOperation, r *resources.Resource) error {
|
|||
}
|
||||
|
||||
func DeleteSQSQueue(cloud fi.Cloud, r *resources.Resource) error {
|
||||
ctx := context.TODO()
|
||||
c := cloud.(awsup.AWSCloud)
|
||||
|
||||
url := r.ID
|
||||
|
@ -47,9 +49,12 @@ func DeleteSQSQueue(cloud fi.Cloud, r *resources.Resource) error {
|
|||
request := &sqs.DeleteQueueInput{
|
||||
QueueUrl: &url,
|
||||
}
|
||||
_, err := c.SQS().DeleteQueue(request)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error deleting SQS queue %q: %v", url, err)
|
||||
if _, err := c.SQS().DeleteQueueWithContext(ctx, request); err != nil {
|
||||
if awsup.AWSErrorCode(err) == "AWS.SimpleQueueService.NonExistentQueue" {
|
||||
// Concurrently deleted
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("error deleting SQS queue %q: %w", url, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue