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"
|
"sync"
|
||||||
|
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
"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"
|
||||||
"github.com/aws/aws-sdk-go/service/sqs/sqsiface"
|
"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
|
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")
|
panic("Not implemented")
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ limitations under the License.
|
||||||
package aws
|
package aws
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
@ -39,6 +40,7 @@ func DumpSQSQueue(op *resources.DumpOperation, r *resources.Resource) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteSQSQueue(cloud fi.Cloud, r *resources.Resource) error {
|
func DeleteSQSQueue(cloud fi.Cloud, r *resources.Resource) error {
|
||||||
|
ctx := context.TODO()
|
||||||
c := cloud.(awsup.AWSCloud)
|
c := cloud.(awsup.AWSCloud)
|
||||||
|
|
||||||
url := r.ID
|
url := r.ID
|
||||||
|
@ -47,9 +49,12 @@ func DeleteSQSQueue(cloud fi.Cloud, r *resources.Resource) error {
|
||||||
request := &sqs.DeleteQueueInput{
|
request := &sqs.DeleteQueueInput{
|
||||||
QueueUrl: &url,
|
QueueUrl: &url,
|
||||||
}
|
}
|
||||||
_, err := c.SQS().DeleteQueue(request)
|
if _, err := c.SQS().DeleteQueueWithContext(ctx, request); err != nil {
|
||||||
if err != nil {
|
if awsup.AWSErrorCode(err) == "AWS.SimpleQueueService.NonExistentQueue" {
|
||||||
return fmt.Errorf("error deleting SQS queue %q: %v", url, err)
|
// Concurrently deleted
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return fmt.Errorf("error deleting SQS queue %q: %w", url, err)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue