1.0.0
This commit is contained in:
45
internal/service/cloudapi/flipgroup/input_check.go
Normal file
45
internal/service/cloudapi/flipgroup/input_check.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package flipgroup
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-framework/diag"
|
||||
"github.com/hashicorp/terraform-plugin-log/tflog"
|
||||
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/flipgroup/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/ic"
|
||||
)
|
||||
|
||||
// resourceFlipgroupInputChecks checks if user provided, account_id and net_id are valid.
|
||||
// It also checks that either account_id or net_id is specified.
|
||||
func resourceFlipgroupInputChecks(ctx context.Context, plan *models.ResourceFLIPGroupModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
accoundID := uint64(plan.AccountID.ValueInt64())
|
||||
tflog.Info(ctx, "resourceFlipgroupInputChecks: exist resource account", map[string]any{"account_id": accoundID})
|
||||
err := ic.ExistAccount(ctx, accoundID, c)
|
||||
if err != nil {
|
||||
diags.AddError(fmt.Sprintf("Cannot get info about account with ID %v", accoundID), err.Error())
|
||||
}
|
||||
|
||||
netType := plan.NetType.ValueString()
|
||||
netId := uint64(plan.NetID.ValueInt64())
|
||||
|
||||
if strings.EqualFold(netType, "EXTNET") {
|
||||
tflog.Info(ctx, "resourceFlipgroupInputChecks: exist extnet id", map[string]any{"extnet_id": netId})
|
||||
err := ic.ExistExtNet(ctx, netId, c)
|
||||
if err != nil {
|
||||
diags.AddError(fmt.Sprintf("Cannot get info about extnet with ID %v", netId), err.Error())
|
||||
}
|
||||
} else {
|
||||
tflog.Info(ctx, "resourceFlipgroupInputChecks: exist VINS id", map[string]any{"vins_id": netId})
|
||||
err := ic.ExistVins(ctx, netId, c)
|
||||
if err != nil {
|
||||
diags.AddError(fmt.Sprintf("Cannot get info about VINS with ID %v", netId), err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
return diags
|
||||
}
|
||||
Reference in New Issue
Block a user