mirror of https://github.com/docker/compose.git
Better diagnostic message for "new ARN format" requirement
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
parent
0df99075cc
commit
9ac3ce772c
|
@ -2,6 +2,7 @@ package backend
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/docker/ecs-plugin/pkg/docker"
|
"github.com/docker/ecs-plugin/pkg/docker"
|
||||||
)
|
)
|
||||||
|
@ -12,13 +13,21 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (b *Backend) CreateContextData(ctx context.Context, params map[string]string) (contextData interface{}, description string, err error) {
|
func (b *Backend) CreateContextData(ctx context.Context, params map[string]string) (contextData interface{}, description string, err error) {
|
||||||
err = b.api.CheckRequirements(ctx)
|
region, ok := params[ContextParamRegion]
|
||||||
|
if !ok {
|
||||||
|
return nil, "", fmt.Errorf("%q parameter is required", ContextParamRegion)
|
||||||
|
}
|
||||||
|
profile, ok := params[ContextParamProfile]
|
||||||
|
if !ok {
|
||||||
|
return nil, "", fmt.Errorf("%q parameter is required", ContextParamProfile)
|
||||||
|
}
|
||||||
|
err = b.api.CheckRequirements(ctx, region)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", err
|
return "", "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
return docker.AwsContext{
|
return docker.AwsContext{
|
||||||
Profile: params[ContextParamProfile],
|
Profile: profile,
|
||||||
Region: params[ContextParamRegion],
|
Region: region,
|
||||||
}, "Amazon ECS context", nil
|
}, "Amazon ECS context", nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ func (b *Backend) Up(ctx context.Context, options cli.ProjectOptions) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = b.api.CheckRequirements(ctx)
|
err = b.api.CheckRequirements(ctx, b.Region)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type API interface {
|
type API interface {
|
||||||
CheckRequirements(ctx context.Context) error
|
CheckRequirements(ctx context.Context, region string) error
|
||||||
|
|
||||||
GetDefaultVPC(ctx context.Context) (string, error)
|
GetDefaultVPC(ctx context.Context) (string, error)
|
||||||
VpcExists(ctx context.Context, vpcID string) (bool, error)
|
VpcExists(ctx context.Context, vpcID string) (bool, error)
|
||||||
|
|
|
@ -2,7 +2,6 @@ package sdk
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
@ -56,7 +55,7 @@ func NewAPI(sess *session.Session) API {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s sdk) CheckRequirements(ctx context.Context) error {
|
func (s sdk) CheckRequirements(ctx context.Context, region string) error {
|
||||||
settings, err := s.ECS.ListAccountSettingsWithContext(ctx, &ecs.ListAccountSettingsInput{
|
settings, err := s.ECS.ListAccountSettingsWithContext(ctx, &ecs.ListAccountSettingsInput{
|
||||||
EffectiveSettings: aws.Bool(true),
|
EffectiveSettings: aws.Bool(true),
|
||||||
Name: aws.String("serviceLongArnFormat"),
|
Name: aws.String("serviceLongArnFormat"),
|
||||||
|
@ -66,7 +65,9 @@ func (s sdk) CheckRequirements(ctx context.Context) error {
|
||||||
}
|
}
|
||||||
serviceLongArnFormat := settings.Settings[0].Value
|
serviceLongArnFormat := settings.Settings[0].Value
|
||||||
if *serviceLongArnFormat != "enabled" {
|
if *serviceLongArnFormat != "enabled" {
|
||||||
return errors.New("this tool requires the \"new ARN resource ID format\"")
|
return fmt.Errorf("this tool requires the \"new ARN resource ID format\".\n"+
|
||||||
|
"Check https://%s.console.aws.amazon.com/ecs/home#/settings\n"+
|
||||||
|
"Learn more: https://aws.amazon.com/blogs/compute/migrating-your-amazon-ecs-deployment-to-the-new-arn-and-resource-id-format-2", region)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue