boto3-refresh-session 0.1.18__py3-none-any.whl → 0.1.20__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- boto3_refresh_session/session.py +24 -16
- {boto3_refresh_session-0.1.18.dist-info → boto3_refresh_session-0.1.20.dist-info}/METADATA +1 -1
- boto3_refresh_session-0.1.20.dist-info/RECORD +6 -0
- boto3_refresh_session-0.1.18.dist-info/RECORD +0 -6
- {boto3_refresh_session-0.1.18.dist-info → boto3_refresh_session-0.1.20.dist-info}/LICENSE +0 -0
- {boto3_refresh_session-0.1.18.dist-info → boto3_refresh_session-0.1.20.dist-info}/WHEEL +0 -0
    
        boto3_refresh_session/session.py
    CHANGED
    
    | @@ -105,12 +105,20 @@ class AutoRefreshableSession: | |
| 105 105 | 
             
                )
         | 
| 106 106 | 
             
                session: Type[Session] = field(init=False)
         | 
| 107 107 | 
             
                _creds_already_fetched: int = field(init=False, default=0)
         | 
| 108 | 
            +
                _sts_client: Type["botocore.client.STS"] = field(init=False)
         | 
| 108 109 |  | 
| 109 110 | 
             
                def __attrs_post_init__(self):
         | 
| 110 | 
            -
                     | 
| 111 | 
            +
                    # initializing session
         | 
| 112 | 
            +
                    _session = get_session()
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                    # initializing STS client
         | 
| 115 | 
            +
                    self._sts_client = client(
         | 
| 116 | 
            +
                        service_name="sts", region_name=self.region, **self.client_kwargs
         | 
| 117 | 
            +
                    )
         | 
| 111 118 |  | 
| 112 119 | 
             
                    logger.info("Fetching temporary AWS credentials.")
         | 
| 113 120 |  | 
| 121 | 
            +
                    # determining how to refresh expired temporary credentials
         | 
| 114 122 | 
             
                    if not self.defer_refresh:
         | 
| 115 123 | 
             
                        __credentials = RefreshableCredentials.create_from_metadata(
         | 
| 116 124 | 
             
                            metadata=self._get_credentials(),
         | 
| @@ -122,9 +130,12 @@ class AutoRefreshableSession: | |
| 122 130 | 
             
                            refresh_using=self._get_credentials, method="sts-assume-role"
         | 
| 123 131 | 
             
                        )
         | 
| 124 132 |  | 
| 125 | 
            -
                     | 
| 133 | 
            +
                    # mounting temporary credentials to session object
         | 
| 134 | 
            +
                    _session._credentials = __credentials
         | 
| 135 | 
            +
             | 
| 136 | 
            +
                    # initializing session using temporary credentials
         | 
| 126 137 | 
             
                    self.session = Session(
         | 
| 127 | 
            -
                        botocore_session= | 
| 138 | 
            +
                        botocore_session=_session, **self.session_kwargs
         | 
| 128 139 | 
             
                    )
         | 
| 129 140 |  | 
| 130 141 | 
             
                def _get_credentials(self) -> dict:
         | 
| @@ -137,27 +148,24 @@ class AutoRefreshableSession: | |
| 137 148 | 
             
                    """
         | 
| 138 149 |  | 
| 139 150 | 
             
                    # being careful not to duplicate logs
         | 
| 140 | 
            -
                     | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 144 | 
            -
                        logger.info(msg)
         | 
| 151 | 
            +
                    if (self.defer_refresh and self._creds_already_fetched) or (
         | 
| 152 | 
            +
                        not self.defer_refresh and self._creds_already_fetched > 1
         | 
| 153 | 
            +
                    ):
         | 
| 154 | 
            +
                        logger.info("Refreshing temporary AWS credentials")
         | 
| 145 155 | 
             
                    else:
         | 
| 146 156 | 
             
                        self._creds_already_fetched += 1
         | 
| 147 157 |  | 
| 148 | 
            -
                     | 
| 149 | 
            -
             | 
| 150 | 
            -
                    )
         | 
| 151 | 
            -
                    __temporary_credentials = __sts_client.assume_role(
         | 
| 158 | 
            +
                    # fetching temporary credentials
         | 
| 159 | 
            +
                    _temporary_credentials = self._sts_client.assume_role(
         | 
| 152 160 | 
             
                        RoleArn=self.role_arn,
         | 
| 153 161 | 
             
                        RoleSessionName=self.session_name,
         | 
| 154 162 | 
             
                        DurationSeconds=self.ttl,
         | 
| 155 163 | 
             
                    )["Credentials"]
         | 
| 156 164 | 
             
                    return {
         | 
| 157 | 
            -
                        "access_key":  | 
| 158 | 
            -
                        "secret_key":  | 
| 159 | 
            -
                        "token":  | 
| 160 | 
            -
                        "expiry_time":  | 
| 165 | 
            +
                        "access_key": _temporary_credentials.get("AccessKeyId"),
         | 
| 166 | 
            +
                        "secret_key": _temporary_credentials.get("SecretAccessKey"),
         | 
| 167 | 
            +
                        "token": _temporary_credentials.get("SessionToken"),
         | 
| 168 | 
            +
                        "expiry_time": _temporary_credentials.get(
         | 
| 161 169 | 
             
                            "Expiration"
         | 
| 162 170 | 
             
                        ).isoformat(),
         | 
| 163 171 | 
             
                    }
         | 
| @@ -0,0 +1,6 @@ | |
| 1 | 
            +
            boto3_refresh_session/__init__.py,sha256=OMY8el4qROyEvo0vr1Kv8rtFU7g3xnjHuBss54XRTEA,135
         | 
| 2 | 
            +
            boto3_refresh_session/session.py,sha256=xp5MNsNgdQ9LMryPk0JQLt6Ctp0qL9WgoVXMErTv6f0,5895
         | 
| 3 | 
            +
            boto3_refresh_session-0.1.20.dist-info/LICENSE,sha256=I3ZYTXAjbIly6bm6J-TvFTuuHwTKws4h89QaY5c5HiY,1067
         | 
| 4 | 
            +
            boto3_refresh_session-0.1.20.dist-info/METADATA,sha256=2Q2x_9MhXu87lLjN9q-Qlhxos6QFAttVLZemReGc_Bs,4463
         | 
| 5 | 
            +
            boto3_refresh_session-0.1.20.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
         | 
| 6 | 
            +
            boto3_refresh_session-0.1.20.dist-info/RECORD,,
         | 
| @@ -1,6 +0,0 @@ | |
| 1 | 
            -
            boto3_refresh_session/__init__.py,sha256=OMY8el4qROyEvo0vr1Kv8rtFU7g3xnjHuBss54XRTEA,135
         | 
| 2 | 
            -
            boto3_refresh_session/session.py,sha256=NIQLVWoXvQQIyfBBi_MHE351RIZdGUoSO3xHK1V01Rw,5569
         | 
| 3 | 
            -
            boto3_refresh_session-0.1.18.dist-info/LICENSE,sha256=I3ZYTXAjbIly6bm6J-TvFTuuHwTKws4h89QaY5c5HiY,1067
         | 
| 4 | 
            -
            boto3_refresh_session-0.1.18.dist-info/METADATA,sha256=_91E3MIBGwiklTHQKpKKoVrSE0lLq0JNhRJIytuB7vc,4463
         | 
| 5 | 
            -
            boto3_refresh_session-0.1.18.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
         | 
| 6 | 
            -
            boto3_refresh_session-0.1.18.dist-info/RECORD,,
         | 
| 
            File without changes
         | 
| 
            File without changes
         |