예제 #1
0
        static KeyValuePair <AwsCredentialsProvider, AwsCredentialsProvider> get_creds_providers(Executor executor, Ec2Metadata ec2_md, KPLNETConfiguration config)
        {
            AwsCredentialsProvider creds_provider         = null;
            AwsCredentialsProvider metrics_creds_provider = null;

            if (null != config.AWSCredentials)
            {
                creds_provider = new BasicAwsCredentialsProvider(config.AWSCredentials.Akid, config.AWSCredentials.SecretKey, config.AWSCredentials.SessionToken);
                if (null != config.AWSMetricsCredentials)
                {
                    metrics_creds_provider = new BasicAwsCredentialsProvider(config.AWSMetricsCredentials.Akid, config.AWSMetricsCredentials.SecretKey, config.AWSMetricsCredentials.SessionToken);
                }
                else
                {
                    metrics_creds_provider = creds_provider;
                }
            }
            else
            {
                creds_provider = new DefaultAwsCredentialsProviderChain(executor, ec2_md);
                Thread.Sleep(250);
            }

            if (null == creds_provider.get_credentials())
            {
                StdErrorOut.Instance.StdError("Could not retrieve credentials from anywhere.");
                throw new Exception("Could not retrieve credentials from anywhere.");
            }

            return(new KeyValuePair <AwsCredentialsProvider, AwsCredentialsProvider>(creds_provider, metrics_creds_provider));
        }
예제 #2
0
        static KeyValuePair <AwsCredentialsProvider, AwsCredentialsProvider> get_creds_providers(Executor executor, Ec2Metadata ec2_md, List <SetCredentials> set_creds)
        {
            AwsCredentialsProvider creds_provider         = null;
            AwsCredentialsProvider metrics_creds_provider = null;

            foreach (var sc in set_creds)
            {
                var cp = new BasicAwsCredentialsProvider(sc.Credentials.Akid, sc.Credentials.SecretKey, sc.Credentials.Token);
                if (sc.ForMetrics)
                {
                    metrics_creds_provider = cp;
                }
                else
                {
                    creds_provider = cp;
                }
            }

            if (null == creds_provider)
            {
                creds_provider = new DefaultAwsCredentialsProviderChain(executor, ec2_md);
                Thread.Sleep(250);
            }

            if (null == creds_provider.get_credentials())
            {
                StdErrorOut.Instance.StdError("Could not retrieve credentials from anywhere.");
                throw new Exception("Could not retrieve credentials from anywhere.");
            }

            if (null == metrics_creds_provider)
            {
                metrics_creds_provider = creds_provider;
            }

            return(new KeyValuePair <AwsCredentialsProvider, AwsCredentialsProvider>(creds_provider, metrics_creds_provider));
        }