From 6ce927e7138df6eeeb7fe74b9ad4bca57859bc7f Mon Sep 17 00:00:00 2001 From: Stas Khirman Date: Mon, 18 Nov 2024 19:20:27 +0200 Subject: [PATCH] fix: dead loop inside SocaCliContext.aws() in case of SSO credentials --- source/idea/idea-sdk/src/ideasdk/aws/aws_client_provider.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/idea/idea-sdk/src/ideasdk/aws/aws_client_provider.py b/source/idea/idea-sdk/src/ideasdk/aws/aws_client_provider.py index e050d22..7a00940 100644 --- a/source/idea/idea-sdk/src/ideasdk/aws/aws_client_provider.py +++ b/source/idea/idea-sdk/src/ideasdk/aws/aws_client_provider.py @@ -19,6 +19,7 @@ from typing import List, Dict, Any, Optional, Set import botocore.exceptions from botocore.client import Config +from botocore.credentials import DeferredRefreshableCredentials AWS_CLIENT_S3 = 's3' AWS_CLIENT_EC2 = 'ec2' @@ -245,6 +246,9 @@ def are_credentials_expired(self) -> bool: else: raise e else: + # To prevent a dead loop for SSO credentials + if isinstance(credentials, DeferredRefreshableCredentials): + credentials.get_frozen_credentials() return credentials.refresh_needed(refresh_in=30) def supported_clients(self) -> Set[str]: