Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions internal/workflows/eks.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"fmt"

"github.com/Amertz08/gitops-example/internal/activities"
"go.temporal.io/sdk/temporal"
"go.temporal.io/sdk/workflow"
)

Expand Down Expand Up @@ -63,8 +62,8 @@ func (i SpinDownEKSInput) validate() error {
}

func SpinUpEKSWorkflow(ctx workflow.Context, input SpinUpEKSInput) (err error) {
if valErr := input.validate(); valErr != nil {
return temporal.NewNonRetryableApplicationError(valErr.Error(), "InvalidInput", valErr)
if err = invalidInput(input); err != nil {
return
}

ctx = workflow.WithActivityOptions(ctx, activityOptions)
Expand Down Expand Up @@ -129,8 +128,8 @@ func SpinUpEKSWorkflow(ctx workflow.Context, input SpinUpEKSInput) (err error) {
}

func SpinDownEKSWorkflow(ctx workflow.Context, input SpinDownEKSInput) error {
if err := input.validate(); err != nil {
return temporal.NewNonRetryableApplicationError(err.Error(), "InvalidInput", err)
if err := invalidInput(input); err != nil {
return err
}

ctx = workflow.WithActivityOptions(ctx, activityOptions)
Expand Down
8 changes: 3 additions & 5 deletions internal/workflows/iam.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"fmt"

"github.com/Amertz08/gitops-example/internal/activities"
"go.temporal.io/sdk/temporal"
"go.temporal.io/sdk/workflow"
)

Expand Down Expand Up @@ -57,8 +56,7 @@ func SpinUpIAMWorkflow(
ctx workflow.Context,
input SpinUpEKSIAMInput,
) (output SpinUpEKSIAMOutput, err error) {
if valErr := input.validate(); valErr != nil {
err = temporal.NewNonRetryableApplicationError(valErr.Error(), "InvalidInput", valErr)
if err = invalidInput(input); err != nil {
return
}

Expand Down Expand Up @@ -141,8 +139,8 @@ func SpinUpIAMWorkflow(
}

func SpinDownIAMWorkflow(ctx workflow.Context, input SpinDownEKSIAMInput) error {
if err := input.validate(); err != nil {
return temporal.NewNonRetryableApplicationError(err.Error(), "InvalidInput", err)
if err := invalidInput(input); err != nil {
return err
}

ctx = workflow.WithActivityOptions(ctx, activityOptions)
Expand Down
8 changes: 4 additions & 4 deletions internal/workflows/infrastructure.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ var activityOptions = workflow.ActivityOptions{
}

func SpinUpWorkflow(ctx workflow.Context, input SpinUpInput) (err error) {
if valErr := input.validate(); valErr != nil {
return temporal.NewNonRetryableApplicationError(valErr.Error(), "InvalidInput", valErr)
if err = invalidInput(input); err != nil {
return
}

logger := workflow.GetLogger(ctx)
Expand Down Expand Up @@ -164,8 +164,8 @@ func SpinUpWorkflow(ctx workflow.Context, input SpinUpInput) (err error) {
}

func SpinDownWorkflow(ctx workflow.Context, input SpinDownInput) error {
if err := input.validate(); err != nil {
return temporal.NewNonRetryableApplicationError(err.Error(), "InvalidInput", err)
if err := invalidInput(input); err != nil {
return err
}

logger := workflow.GetLogger(ctx)
Expand Down
14 changes: 14 additions & 0 deletions internal/workflows/validate.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package workflows

import "go.temporal.io/sdk/temporal"

type validator interface {
validate() error
}

func invalidInput(v validator) error {
if err := v.validate(); err != nil {
return temporal.NewNonRetryableApplicationError(err.Error(), "InvalidInput", err)
}
return nil
}
32 changes: 32 additions & 0 deletions internal/workflows/vpc.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package workflows

import (
"fmt"

"github.com/Amertz08/gitops-example/internal/activities"
"go.temporal.io/sdk/workflow"
)
Expand All @@ -13,6 +15,18 @@ type SpinUpNetworkInput struct {
Team string
}

func (i SpinUpNetworkInput) validate() error {
switch {
case i.Region == "":
return fmt.Errorf("Region is required")
case i.Environment == "":
return fmt.Errorf("Environment is required")
case i.Team == "":
return fmt.Errorf("Team is required")
}
return nil
}

type SpinUpNetworkOutput struct {
VpcID string
SubnetIDs []string
Expand All @@ -23,10 +37,24 @@ type SpinDownNetworkInput struct {
VpcID string
}

func (i SpinDownNetworkInput) validate() error {
switch {
case i.Region == "":
return fmt.Errorf("Region is required")
case i.VpcID == "":
return fmt.Errorf("VpcID is required")
}
return nil
}

func SpinUpNetworkWorkflow(
ctx workflow.Context,
input SpinUpNetworkInput,
) (output SpinUpNetworkOutput, err error) {
if err = invalidInput(input); err != nil {
return
}

ctx = workflow.WithActivityOptions(ctx, activityOptions)
aws := &activities.AWSActivities{}
logger := workflow.GetLogger(ctx)
Expand Down Expand Up @@ -125,6 +153,10 @@ func SpinUpNetworkWorkflow(
}

func SpinDownNetworkWorkflow(ctx workflow.Context, input SpinDownNetworkInput) error {
if err := invalidInput(input); err != nil {
return err
}

ctx = workflow.WithActivityOptions(ctx, activityOptions)
aws := &activities.AWSActivities{}
logger := workflow.GetLogger(ctx)
Expand Down
Loading