feat: add updater and previewer interfaces
This commit is contained in:
parent
ed6afb94a1
commit
c0fcf316b4
2 changed files with 63 additions and 11 deletions
|
@ -75,7 +75,7 @@ func previewFunc(ctx context.Context, file, stack *string) clir.Action {
|
||||||
return fmt.Errorf("unable to get configuration...\n%v", err)
|
return fmt.Errorf("unable to get configuration...\n%v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
previewer, err := stacks.NewPreviewer(ctx, c.ProjectName, *stack, c)
|
previewer, err := stacks.NewPreviewer(ctx, *stack, c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -99,10 +99,19 @@ func updateFunc(ctx context.Context, file, stack *string) clir.Action {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse json configuration (config package)
|
c, err := config.NewConfig(*flagMap["file"])
|
||||||
// create the updater (interface in stacks) (all logic in stacks)
|
if err != nil {
|
||||||
// run the previewer
|
return fmt.Errorf("unable to get configuration...\n%v", err)
|
||||||
// return
|
}
|
||||||
|
|
||||||
|
updater, err := stacks.NewUpdater(ctx, *stack, c)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := updater.Update(ctx); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -119,10 +128,19 @@ func destroyFunc(ctx context.Context, file, stack *string) clir.Action {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse json configuration (config package)
|
c, err := config.NewConfig(*flagMap["file"])
|
||||||
// create the destroyer (interface in stacks) (all logic in stacks)
|
if err != nil {
|
||||||
// run the previewer
|
return fmt.Errorf("unable to get configuration...\n%v", err)
|
||||||
// return
|
}
|
||||||
|
|
||||||
|
destroyer, err := stacks.NewDestroyer(ctx, *stack, c)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := destroyer.Destroy(ctx); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,13 +85,13 @@ func workspaceOptions(projectName, stackName string) ([]auto.LocalWorkspaceOptio
|
||||||
return opts, nil
|
return opts, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewPreviewer(ctx context.Context, project, stack string, c config.Config) (Previewer, error) {
|
func NewPreviewer(ctx context.Context, stack string, c config.Config) (Previewer, error) {
|
||||||
var p Previewer
|
var p Previewer
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
switch stack {
|
switch stack {
|
||||||
case dockerNetworkStackName:
|
case dockerNetworkStackName:
|
||||||
p, err = newDockerNetworkStack(ctx, project, stack, c.Docker.Network)
|
p, err = newDockerNetworkStack(ctx, c.ProjectName, stack, c.Docker.Network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("unable to initialise '%s' stack...\n%v", stack, err)
|
return nil, fmt.Errorf("unable to initialise '%s' stack...\n%v", stack, err)
|
||||||
}
|
}
|
||||||
|
@ -101,3 +101,37 @@ func NewPreviewer(ctx context.Context, project, stack string, c config.Config) (
|
||||||
|
|
||||||
return p, nil
|
return p, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewUpdater(ctx context.Context, stack string, c config.Config) (Updater, error) {
|
||||||
|
var u Updater
|
||||||
|
var err error
|
||||||
|
|
||||||
|
switch stack {
|
||||||
|
case dockerNetworkStackName:
|
||||||
|
u, err = newDockerNetworkStack(ctx, c.ProjectName, stack, c.Docker.Network)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("unable to initialise '%s' stack...\n%v", stack, err)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, fmt.Errorf("unknown stack name '%s'", stack)
|
||||||
|
}
|
||||||
|
|
||||||
|
return u, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewDestroyer(ctx context.Context, stack string, c config.Config) (Destroyer, error) {
|
||||||
|
var d Destroyer
|
||||||
|
var err error
|
||||||
|
|
||||||
|
switch stack {
|
||||||
|
case dockerNetworkStackName:
|
||||||
|
d, err = newDockerNetworkStack(ctx, c.ProjectName, stack, c.Docker.Network)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("unable to initialise '%s' stack...\n%v", stack, err)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, fmt.Errorf("unknown stack name '%s'", stack)
|
||||||
|
}
|
||||||
|
|
||||||
|
return d, nil
|
||||||
|
}
|
||||||
|
|
Reference in a new issue