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
1 change: 1 addition & 0 deletions docs/stackit_load-balancer.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,6 @@ stackit load-balancer [flags]
* [stackit load-balancer list](./stackit_load-balancer_list.md) - Lists all Load Balancers
* [stackit load-balancer observability-credentials](./stackit_load-balancer_observability-credentials.md) - Provides functionality for Load Balancer observability credentials
* [stackit load-balancer quota](./stackit_load-balancer_quota.md) - Shows the configured Load Balancer quota
* [stackit load-balancer target-pool](./stackit_load-balancer_target-pool.md) - Provides functionality for target pools
* [stackit load-balancer update](./stackit_load-balancer_update.md) - Updates a Load Balancer

33 changes: 33 additions & 0 deletions docs/stackit_load-balancer_target-pool.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
## stackit load-balancer target-pool

Provides functionality for target pools

### Synopsis

Provides functionality for target pools.

```
stackit load-balancer target-pool [flags]
```

### Options

```
-h, --help Help for "stackit load-balancer target-pool"
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none"]
-p, --project-id string Project ID
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit load-balancer](./stackit_load-balancer.md) - Provides functionality for Load Balancer
* [stackit load-balancer target-pool add-target](./stackit_load-balancer_target-pool_add-target.md) - Adds a target to a target pool

42 changes: 42 additions & 0 deletions docs/stackit_load-balancer_target-pool_add-target.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## stackit load-balancer target-pool add-target

Adds a target to a target pool

### Synopsis

Adds a target to a target pool.

```
stackit load-balancer target-pool add-target LOAD_BALANCER_NAME [flags]
```

### Examples

```
Add a target to target pool "my-target-pool" of load balancer with name "my-load-balancer"
$ stackit load-balancer target-pool add-target my-load-balancer --target-pool-name my-target-pool --target-name my-new-target --ip 1.2.3.4
```

### Options

```
-h, --help Help for "stackit load-balancer target-pool add-target"
--ip string Target IP. Must by unique within a target pool. Must be a valid IPv4 or IPv6
--target-name string Target name
--target-pool-name string Target pool name
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none"]
-p, --project-id string Project ID
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit load-balancer target-pool](./stackit_load-balancer_target-pool.md) - Provides functionality for target pools

15 changes: 13 additions & 2 deletions internal/cmd/load-balancer/describe/describe.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,21 @@ func parseInput(p *print.Printer, cmd *cobra.Command, inputArgs []string) (*inpu
return nil, &errors.ProjectIdError{}
}

return &inputModel{
model := inputModel{
GlobalFlagModel: globalFlags,
LoadBalancerName: loadBalancerName,
}, nil
}

if p.IsVerbosityDebug() {
modelStr, err := print.BuildDebugStrFromInputModel(model)
if err != nil {
p.Debug(print.ErrorLevel, "convert model to string for debugging: %v", err)
} else {
p.Debug(print.DebugLevel, "parsed input values: %s", modelStr)
}
}

return &model, nil
}

func buildRequest(ctx context.Context, model *inputModel, apiClient *loadbalancer.APIClient) loadbalancer.ApiGetLoadBalancerRequest {
Expand Down
6 changes: 4 additions & 2 deletions internal/cmd/load-balancer/describe/describe_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"testing"

"github.com/stackitcloud/stackit-cli/internal/pkg/globalflags"
"github.com/stackitcloud/stackit-cli/internal/pkg/print"

"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
Expand Down Expand Up @@ -124,7 +125,8 @@ func TestParseInput(t *testing.T) {

for _, tt := range tests {
t.Run(tt.description, func(t *testing.T) {
cmd := NewCmd(nil)
p := print.NewPrinter()
cmd := NewCmd(p)
err := globalflags.Configure(cmd.Flags())
if err != nil {
t.Fatalf("configure global flags: %v", err)
Expand Down Expand Up @@ -156,7 +158,7 @@ func TestParseInput(t *testing.T) {
t.Fatalf("error validating flags: %v", err)
}

model, err := parseInput(nil, cmd, tt.argValues)
model, err := parseInput(p, cmd, tt.argValues)
if err != nil {
if !tt.isValid {
return
Expand Down
15 changes: 13 additions & 2 deletions internal/cmd/load-balancer/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,21 @@ func parseInput(p *print.Printer, cmd *cobra.Command) (*inputModel, error) {
}
}

return &inputModel{
model := inputModel{
GlobalFlagModel: globalFlags,
Limit: flags.FlagToInt64Pointer(p, cmd, limitFlag),
}, nil
}

if p.IsVerbosityDebug() {
modelStr, err := print.BuildDebugStrFromInputModel(model)
if err != nil {
p.Debug(print.ErrorLevel, "convert model to string for debugging: %v", err)
} else {
p.Debug(print.DebugLevel, "parsed input values: %s", modelStr)
}
}

return &model, nil
}

func buildRequest(ctx context.Context, model *inputModel, apiClient *loadbalancer.APIClient) loadbalancer.ApiListLoadBalancersRequest {
Expand Down
9 changes: 4 additions & 5 deletions internal/cmd/load-balancer/list/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import (
"testing"

"github.com/stackitcloud/stackit-cli/internal/pkg/globalflags"
"github.com/stackitcloud/stackit-cli/internal/pkg/print"
"github.com/stackitcloud/stackit-cli/internal/pkg/utils"

"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/google/uuid"
"github.com/spf13/cobra"
"github.com/stackitcloud/stackit-sdk-go/services/loadbalancer"
)

Expand Down Expand Up @@ -112,14 +112,13 @@ func TestParseInput(t *testing.T) {

for _, tt := range tests {
t.Run(tt.description, func(t *testing.T) {
cmd := &cobra.Command{}
p := print.NewPrinter()
cmd := NewCmd(p)
err := globalflags.Configure(cmd.Flags())
if err != nil {
t.Fatalf("configure global flags: %v", err)
}

configureFlags(cmd)

for flag, value := range tt.flagValues {
err := cmd.Flags().Set(flag, value)
if err != nil {
Expand All @@ -138,7 +137,7 @@ func TestParseInput(t *testing.T) {
t.Fatalf("error validating flags: %v", err)
}

model, err := parseInput(nil, cmd)
model, err := parseInput(p, cmd)
if err != nil {
if !tt.isValid {
return
Expand Down
8 changes: 5 additions & 3 deletions internal/cmd/load-balancer/load_balancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/stackitcloud/stackit-cli/internal/cmd/load-balancer/list"
observabilitycredentials "github.com/stackitcloud/stackit-cli/internal/cmd/load-balancer/observability-credentials"
"github.com/stackitcloud/stackit-cli/internal/cmd/load-balancer/quota"
targetpool "github.com/stackitcloud/stackit-cli/internal/cmd/load-balancer/target-pool"
"github.com/stackitcloud/stackit-cli/internal/cmd/load-balancer/update"

"github.com/stackitcloud/stackit-cli/internal/pkg/args"
Expand All @@ -31,12 +32,13 @@ func NewCmd(p *print.Printer) *cobra.Command {
}

func addSubcommands(cmd *cobra.Command, p *print.Printer) {
cmd.AddCommand(describe.NewCmd(p))
cmd.AddCommand(create.NewCmd(p))
cmd.AddCommand(delete.NewCmd(p))
cmd.AddCommand(describe.NewCmd(p))
cmd.AddCommand(generatepayload.NewCmd(p))
cmd.AddCommand(list.NewCmd(p))
cmd.AddCommand(quota.NewCmd(p))
cmd.AddCommand(generatepayload.NewCmd(p))
cmd.AddCommand(observabilitycredentials.NewCmd(p))
cmd.AddCommand(create.NewCmd(p))
cmd.AddCommand(targetpool.NewCmd(p))
cmd.AddCommand(update.NewCmd(p))
}
15 changes: 13 additions & 2 deletions internal/cmd/load-balancer/quota/quota.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,20 @@ func parseInput(p *print.Printer, cmd *cobra.Command) (*inputModel, error) {
return nil, &errors.ProjectIdError{}
}

return &inputModel{
model := inputModel{
GlobalFlagModel: globalFlags,
}, nil
}

if p.IsVerbosityDebug() {
modelStr, err := print.BuildDebugStrFromInputModel(model)
if err != nil {
p.Debug(print.ErrorLevel, "convert model to string for debugging: %v", err)
} else {
p.Debug(print.DebugLevel, "parsed input values: %s", modelStr)
}
}

return &model, nil
}

func buildRequest(ctx context.Context, model *inputModel, apiClient *loadbalancer.APIClient) loadbalancer.ApiGetQuotaRequest {
Expand Down
6 changes: 4 additions & 2 deletions internal/cmd/load-balancer/quota/quota_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"testing"

"github.com/stackitcloud/stackit-cli/internal/pkg/globalflags"
"github.com/stackitcloud/stackit-cli/internal/pkg/print"

"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
Expand Down Expand Up @@ -89,7 +90,8 @@ func TestParseInput(t *testing.T) {

for _, tt := range tests {
t.Run(tt.description, func(t *testing.T) {
cmd := NewCmd(nil)
p := print.NewPrinter()
cmd := NewCmd(p)
err := globalflags.Configure(cmd.Flags())
if err != nil {
t.Fatalf("configure global flags: %v", err)
Expand All @@ -113,7 +115,7 @@ func TestParseInput(t *testing.T) {
t.Fatalf("error validating flags: %v", err)
}

model, err := parseInput(nil, cmd)
model, err := parseInput(p, cmd)
if err != nil {
if !tt.isValid {
return
Expand Down
Loading