You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.7 KiB

package flipgroup
import (
"context"
"fmt"
"strings"
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-log/tflog"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
"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 *client.Client) 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
}