summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php')
-rw-r--r--vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php30
1 files changed, 27 insertions, 3 deletions
diff --git a/vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php b/vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php
index 3a8ec0c..e179fe3 100644
--- a/vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php
+++ b/vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php
@@ -2,6 +2,7 @@
namespace Aws\Script\Composer;
use Composer\Script\Event;
+use Symfony\Component\Filesystem\Exception\IOException;
use Symfony\Component\Filesystem\Filesystem;
class Composer
@@ -66,7 +67,7 @@ class Composer
$listedServices,
$vendorPath
) {
- $unsafeForDeletion = ['Kms', 'S3', 'SSO', 'Sts'];
+ $unsafeForDeletion = ['Kms', 'S3', 'SSO', 'SSOOIDC', 'Sts'];
if (in_array('DynamoDbStreams', $listedServices)) {
$unsafeForDeletion[] = 'DynamoDb';
}
@@ -83,8 +84,31 @@ class Composer
$modelDir = $modelPath . $modelName;
if ($filesystem->exists([$clientDir, $modelDir])) {
- $filesystem->remove([$clientDir, $modelDir]);;
- $deleteCount++;
+ $attempts = 3;
+ $delay = 2;
+
+ while ($attempts) {
+ try {
+ $filesystem->remove([$clientDir, $modelDir]);
+ $deleteCount++;
+ break;
+ } catch (IOException $e) {
+ $attempts--;
+
+ if (!$attempts) {
+ throw new IOException(
+ "Removal failed after several attempts. Last error: " . $e->getMessage()
+ );
+ } else {
+ sleep($delay);
+ $event->getIO()->write(
+ "Error encountered: " . $e->getMessage() . ". Retrying..."
+ );
+ $delay += 2;
+ }
+ }
+ }
+
}
}
}