func init() { var ecsconfig aws.Config if region := os.Getenv("AWS_REGION"); region != "" { ecsconfig.Region = ®ion } if region := os.Getenv("AWS_DEFAULT_REGION"); region != "" { ecsconfig.Region = ®ion } if ecsconfig.Region == nil { if iid, err := ec2.GetInstanceIdentityDocument(); err == nil { ecsconfig.Region = &iid.Region } } if envEndpoint := os.Getenv("ECS_BACKEND_HOST"); envEndpoint != "" { ecsconfig.Endpoint = &envEndpoint } ECS = ecs.New(session.New(&ecsconfig)) Cluster = "ecs-functional-tests" if envCluster := os.Getenv("ECS_CLUSTER"); envCluster != "" { Cluster = envCluster } ECS.CreateCluster(&ecs.CreateClusterInput{ ClusterName: aws.String(Cluster), }) }
// newSubmitStateChangeClient returns a client intended to be used for // Submit*StateChange APIs which has the behavior of retrying the call on // retriable errors for an extended period of time (roughly 24 hours). func newSubmitStateChangeClient(awsConfig *aws.Config) *ecs.ECS { sscConfig := awsConfig.Copy() sscConfig.MaxRetries = submitStateChangeMaxDelayRetries client := ecs.New(&sscConfig) client.Handlers.AfterRetry.Clear() client.Handlers.AfterRetry.PushBack( extendedRetryMaxDelayHandlerFactory(submitStateChangeExtraRetries)) client.DefaultMaxRetries = submitStateChangeMaxDelayRetries return client }
func NewECSClient(credentialProvider *credentials.Credentials, config *config.Config, httpClient *http.Client, ec2MetadataClient ec2.EC2MetadataClient) ECSClient { var ecsConfig aws.Config ecsConfig.Credentials = credentialProvider ecsConfig.Region = &config.AWSRegion ecsConfig.HTTPClient = httpClient if config.APIEndpoint != "" { ecsConfig.Endpoint = &config.APIEndpoint } standardClient := ecs.New(&ecsConfig) submitStateChangeClient := newSubmitStateChangeClient(&ecsConfig) return &ApiECSClient{ credentialProvider: credentialProvider, config: config, standardClient: standardClient, submitStateChangeClient: submitStateChangeClient, ec2metadata: ec2MetadataClient, } }
func NewECSClient(credentialProvider *credentials.Credentials, config *config.Config, httpClient *http.Client) ECSClient { ecsConfig := aws.DefaultConfig.Copy() ecsConfig.Credentials = credentialProvider ecsConfig.Region = config.AWSRegion ecsConfig.HTTPClient = httpClient if config.APIEndpoint != "" { ecsConfig.Endpoint = config.APIEndpoint } client := ecs.New(&ecsConfig) client.Handlers.AfterRetry.Clear() client.Handlers.AfterRetry.PushBack(ECSRetryHandler) ec2metadataclient := ec2.DefaultClient return &ApiECSClient{ credentialProvider: credentialProvider, config: config, c: client, ec2metadata: ec2metadataclient, } }
func NewECSClient(credentialProvider aws.CredentialsProvider, config *config.Config, insecureSkipVerify bool) ECSClient { httpClient := httpclient.New(RoundtripTimeout, insecureSkipVerify) ecsConfig := &aws.Config{ Credentials: credentialProvider, Region: config.AWSRegion, HTTPClient: httpClient, } if config.APIEndpoint != "" { ecsConfig.Endpoint = config.APIEndpoint } client := ecs.New(ecsConfig) ec2metadataclient := ec2.DefaultClient return &ApiECSClient{ credentialProvider: credentialProvider, config: config, insecureSkipVerify: insecureSkipVerify, c: client, ec2metadata: ec2metadataclient, } }
// newSubmitStateChangeClient returns a client intended to be used for // Submit*StateChange APIs which has the behavior of retrying the call on // retriable errors for an extended period of time (roughly 24 hours). func newSubmitStateChangeClient(awsConfig *aws.Config) *ecs.ECS { sscConfig := awsConfig.Copy() sscConfig.Retryer = &oneDayRetrier{} client := ecs.New(session.New(sscConfig)) return client }