Пример #1
0
func init() {
	var ecsconfig aws.Config
	if region := os.Getenv("AWS_REGION"); region != "" {
		ecsconfig.Region = &region
	}
	if region := os.Getenv("AWS_DEFAULT_REGION"); region != "" {
		ecsconfig.Region = &region
	}
	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),
	})
}
Пример #2
0
// 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
}
Пример #3
0
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,
	}
}
Пример #4
0
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,
	}
}
Пример #5
0
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,
	}
}
Пример #6
0
// 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
}