ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From zshamrock <aliaksandr.kaz...@gmail.com>
Subject Re: Old AWS SDK version, why?
Date Fri, 06 Jan 2017 21:36:03 GMT
Hi, Denis.
Thank you for creating the issue. I will keep an eye on it. If nobody picks
it up, and I find free time, then I will  pick up it myself. When do you
plan to release 1.9.0 version (is there a roadmap)? (as I've not seen you've
been releasing minor versions like 1.8.1 including some of the bug fixes or
you do?).

Regards the credentials provider refreshing the credentials. I would say it
depends on the implementation, but I've checked a few main used by
DefaultAWSCredentialsProviderChain:
public class DefaultAWSCredentialsProviderChain extends
AWSCredentialsProviderChain {
    public DefaultAWSCredentialsProviderChain() {
        super(new EnvironmentVariableCredentialsProvider(),
              new SystemPropertiesCredentialsProvider(),
              new ProfileCredentialsProvider(),
              new InstanceProfileCredentialsProvider());
    }
}

all of them always do some extra work in the `getCredentials` method rather
than just simply return credentials.

Quite interesting implementation ProfileCredentialsProvider has:
public AWSCredentials getCredentials() {
        if (profilesConfigFile == null) {
            synchronized (this) {
                if (profilesConfigFile == null) {
                    profilesConfigFile = new ProfilesConfigFile();
                    lastRefreshed = System.nanoTime();
                }
            }
        }

        // Periodically check if the file on disk has been modified
        // since we last read it.
        //
        // For active applications, only have one thread block.
        // For applications that use this method in bursts, ensure the
        // credentials are never too stale.
        long now = System.nanoTime();
        long age = now - lastRefreshed;
        if (age > refreshForceIntervalNanos) {
            refresh();
        } else if (age > refreshIntervalNanos) {
            if (refreshSemaphore.tryAcquire()) {
                try {
                    refresh();
                } finally {
                    refreshSemaphore.release();
                }
            }
        }

        return profilesConfigFile.getCredentials(profileName);
    }

where it periodically refreshed the profile file to check if the credentials
were updated in the meanwhile.



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Old-AWS-SDK-version-why-tp9824p9947.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Mime
View raw message