示例#1
0
 async def refresh():
     async with client as sts:
         response = await sts.assume_role(**params)
     credentials = response['Credentials']
     # We need to normalize the credential names to
     # the values expected by the refresh creds.
     return {
         'access_key': credentials['AccessKeyId'],
         'secret_key': credentials['SecretAccessKey'],
         'token': credentials['SessionToken'],
         'expiry_time': _serialize_if_needed(credentials['Expiration']),
     }
示例#2
0
    async def _get_cached_credentials(self):
        """Get up-to-date credentials.

        This will check the cache for up-to-date credentials, calling assume
        role if none are available.
        """
        response = self._load_from_cache()
        if response is None:
            response = await self._get_credentials()
            self._write_to_cache(response)
        else:
            logger.debug("Credentials for role retrieved from cache.")

        creds = response['Credentials']
        expiration = _serialize_if_needed(creds['Expiration'], iso=True)
        return {
            'access_key': creds['AccessKeyId'],
            'secret_key': creds['SecretAccessKey'],
            'token': creds['SessionToken'],
            'expiry_time': expiration,
        }
 def _parse_timestamp(self, timestamp_ms):
     # fromtimestamp expects seconds so: milliseconds / 1000 = seconds
     timestamp_seconds = timestamp_ms / 1000.0
     timestamp = datetime.datetime.fromtimestamp(timestamp_seconds, tzutc())
     return _serialize_if_needed(timestamp)
示例#4
0
 def _parse_timestamp(self, timestamp_ms):  # pylint: disable=no-self-use
     """Parse timestamp."""
     # fromtimestamp expects seconds so: milliseconds / 1000 = seconds
     timestamp_seconds = timestamp_ms / 1000.0
     timestamp = datetime.datetime.fromtimestamp(timestamp_seconds, tzutc())
     return _serialize_if_needed(timestamp)