Skip to content

Commit

Permalink
fix: init should work for existing app with domain (aws#2562)
Browse files Browse the repository at this point in the history
<!-- Provide summary of changes -->
fixes aws#2555.
<!-- Issue number, if available. E.g. "Fixes #31", "Addresses #42, 77" -->

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
  • Loading branch information
iamhopaul123 committed Jul 6, 2021
1 parent 93c8675 commit bb68802
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 43 deletions.
24 changes: 11 additions & 13 deletions internal/pkg/cli/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,6 @@ func newDeployOpts(vars deployWkldVars) (*deployOpts, error) {
if err != nil {
return nil, fmt.Errorf("new workspace: %w", err)
}
d, err := describe.NewAppDescriber(vars.appName)
if err != nil {
return nil, fmt.Errorf("new app describer for application %s: %w", vars.name, err)
}
prompter := prompt.New()
return &deployOpts{
deployWkldVars: vars,
Expand Down Expand Up @@ -83,15 +79,17 @@ func newDeployOpts(vars deployWkldVars) (*deployOpts, error) {
o.deployWkld = &deploySvcOpts{
deployWkldVars: o.deployWkldVars,

store: o.store,
ws: o.ws,
unmarshal: manifest.UnmarshalWorkload,
spinner: termprogress.NewSpinner(log.DiagnosticWriter),
sel: selector.NewWorkspaceSelect(o.prompt, o.store, o.ws),
prompt: o.prompt,
cmd: exec.NewCmd(),
sessProvider: sessions.NewProvider(),
appVersionGetter: d,
store: o.store,
ws: o.ws,
unmarshal: manifest.UnmarshalWorkload,
spinner: termprogress.NewSpinner(log.DiagnosticWriter),
sel: selector.NewWorkspaceSelect(o.prompt, o.store, o.ws),
prompt: o.prompt,
cmd: exec.NewCmd(),
sessProvider: sessions.NewProvider(),
newAppVersionGetter: func(appName string) (versionGetter, error) {
return describe.NewAppDescriber(appName)
},
}
}
},
Expand Down
4 changes: 4 additions & 0 deletions internal/pkg/cli/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/aws/copilot-cli/internal/pkg/cli/group"
"github.com/aws/copilot-cli/internal/pkg/config"
"github.com/aws/copilot-cli/internal/pkg/deploy/cloudformation"
"github.com/aws/copilot-cli/internal/pkg/describe"
"github.com/aws/copilot-cli/internal/pkg/exec"
"github.com/aws/copilot-cli/internal/pkg/initialize"
"github.com/aws/copilot-cli/internal/pkg/manifest"
Expand Down Expand Up @@ -159,6 +160,9 @@ func newInitOpts(vars initVars) (*initOpts, error) {
spinner: spin,
cmd: exec.NewCmd(),
sessProvider: sessProvider,
newAppVersionGetter: func(appName string) (versionGetter, error) {
return describe.NewAppDescriber(appName)
},
}
deployJobCmd := &deployJobOpts{
deployWkldVars: deployWkldVars{
Expand Down
58 changes: 32 additions & 26 deletions internal/pkg/cli/svc_deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,18 +49,18 @@ type deployWkldVars struct {
type deploySvcOpts struct {
deployWkldVars

store store
ws wsSvcDirReader
imageBuilderPusher imageBuilderPusher
unmarshal func([]byte) (manifest.WorkloadManifest, error)
s3 artifactUploader
cmd runner
addons templater
appCFN appResourcesGetter
svcCFN cloudformation.CloudFormation
sessProvider sessionProvider
envUpgradeCmd actionCommand
appVersionGetter versionGetter
store store
ws wsSvcDirReader
imageBuilderPusher imageBuilderPusher
unmarshal func([]byte) (manifest.WorkloadManifest, error)
s3 artifactUploader
cmd runner
addons templater
appCFN appResourcesGetter
svcCFN cloudformation.CloudFormation
sessProvider sessionProvider
envUpgradeCmd actionCommand
newAppVersionGetter func(string) (versionGetter, error)

spinner progress
sel wsSelector
Expand All @@ -83,23 +83,25 @@ func newSvcDeployOpts(vars deployWkldVars) (*deploySvcOpts, error) {
if err != nil {
return nil, fmt.Errorf("new workspace: %w", err)
}
d, err := describe.NewAppDescriber(vars.appName)
if err != nil {
return nil, fmt.Errorf("new app describer for application %s: %w", vars.name, err)
}
prompter := prompt.New()
return &deploySvcOpts{
deployWkldVars: vars,

store: store,
ws: ws,
unmarshal: manifest.UnmarshalWorkload,
spinner: termprogress.NewSpinner(log.DiagnosticWriter),
sel: selector.NewWorkspaceSelect(prompter, store, ws),
prompt: prompter,
appVersionGetter: d,
cmd: exec.NewCmd(),
sessProvider: sessions.NewProvider(),
store: store,
ws: ws,
unmarshal: manifest.UnmarshalWorkload,
spinner: termprogress.NewSpinner(log.DiagnosticWriter),
sel: selector.NewWorkspaceSelect(prompter, store, ws),
prompt: prompter,
newAppVersionGetter: func(appName string) (versionGetter, error) {
d, err := describe.NewAppDescriber(appName)
if err != nil {
return nil, fmt.Errorf("new app describer for application %s: %w", appName, err)
}
return d, nil
},
cmd: exec.NewCmd(),
sessProvider: sessions.NewProvider(),
}, nil
}

Expand Down Expand Up @@ -426,7 +428,11 @@ func (o *deploySvcOpts) stackConfiguration(addonsURL string) (cloudformation.Sta
switch t := mft.(type) {
case *manifest.LoadBalancedWebService:
if o.targetApp.RequiresDNSDelegation() {
if err := validateAlias(aws.StringValue(t.Name), aws.StringValue(t.Alias), o.targetApp, o.envName, o.appVersionGetter); err != nil {
var appVersionGetter versionGetter
if appVersionGetter, err = o.newAppVersionGetter(o.appName); err != nil {
return nil, err
}
if err = validateAlias(aws.StringValue(t.Name), aws.StringValue(t.Alias), o.targetApp, o.envName, appVersionGetter); err != nil {
return nil, err
}
conf, err = stack.NewHTTPSLoadBalancedWebService(t, o.targetEnvironment.Name, o.targetEnvironment.App, *rc)
Expand Down
10 changes: 6 additions & 4 deletions internal/pkg/cli/svc_deploy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -667,10 +667,12 @@ func TestSvcDeployOpts_stackConfiguration(t *testing.T) {
appName: mockAppName,
envName: mockEnvName,
},
ws: mockWorkspace,
buildRequired: tc.inBuildRequire,
appCFN: mockAppResourcesGetter,
appVersionGetter: mockAppVersionGetter,
ws: mockWorkspace,
buildRequired: tc.inBuildRequire,
appCFN: mockAppResourcesGetter,
newAppVersionGetter: func(s string) (versionGetter, error) {
return mockAppVersionGetter, nil
},
targetApp: tc.inApp,
targetEnvironment: tc.inEnvironment,
unmarshal: func(b []byte) (manifest.WorkloadManifest, error) {
Expand Down

0 comments on commit bb68802

Please sign in to comment.