This commit is contained in:
asteam
2025-01-21 12:16:49 +03:00
parent 76ea459b3d
commit 60e23338ad
751 changed files with 17877 additions and 1908 deletions

View File

@@ -8,7 +8,7 @@ import (
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/types"
"github.com/hashicorp/terraform-plugin-log/tflog"
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/flattens"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/models"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/utilities"
@@ -17,7 +17,7 @@ import (
// ExtNetDataSource flattens data source for extnet.
// Return error in case data source is not found on the platform.
// Flatten errors are added to tflog.
func ExtNetDataSource(ctx context.Context, state *models.DataSourceExtNetModel, c *decort.DecortClient) diag.Diagnostics {
func ExtNetDataSource(ctx context.Context, state *models.DataSourceExtNetModel, c *client.Client) diag.Diagnostics {
tflog.Info(ctx, "Start flattens.ExtNetDataSource")
diags := diag.Diagnostics{}
@@ -71,6 +71,7 @@ func ExtNetDataSource(ctx context.Context, state *models.DataSourceExtNetModel,
reservations := make([]models.ItemReservationModel, 0, len(recordExtNet.Reservations))
for _, item := range recordExtNet.Reservations {
r := models.ItemReservationModel{
AccountID: types.Int64Value(int64(item.AccountID)),
ClientType: types.StringValue(item.ClientType),
Description: types.StringValue(item.Description),
DomainName: types.StringValue(item.DomainName),

View File

@@ -7,7 +7,7 @@ import (
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/types"
"github.com/hashicorp/terraform-plugin-log/tflog"
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/models"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/utilities"
)
@@ -15,7 +15,7 @@ import (
// ExtNetComputesListDataSource flattens data source for extnet computes list.
// Return error in case data source is not found on the platform.
// Flatten errors are added to tflog.
func ExtNetComputesListDataSource(ctx context.Context, state *models.DataSourceExtNetComputesListModel, c *decort.DecortClient) diag.Diagnostics {
func ExtNetComputesListDataSource(ctx context.Context, state *models.DataSourceExtNetComputesListModel, c *client.Client) diag.Diagnostics {
tflog.Info(ctx, "Start flattens.ExtNetComputesListDataSource")
diags := diag.Diagnostics{}

View File

@@ -7,7 +7,7 @@ import (
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/types"
"github.com/hashicorp/terraform-plugin-log/tflog"
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/models"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/utilities"
)
@@ -15,7 +15,7 @@ import (
// ExtNetDefaultDataSource flattens data source for extnet default.
// Return error in case data source is not found on the platform.
// Flatten errors are added to tflog.
func ExtNetDefaultDataSource(ctx context.Context, state *models.DataSourceExtNetDefaultModel, c *decort.DecortClient) diag.Diagnostics {
func ExtNetDefaultDataSource(ctx context.Context, state *models.DataSourceExtNetDefaultModel, c *client.Client) diag.Diagnostics {
tflog.Info(ctx, "Start flattens.ExtNetDefaultDataSource")
diags := diag.Diagnostics{}

View File

@@ -7,7 +7,7 @@ import (
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/types"
"github.com/hashicorp/terraform-plugin-log/tflog"
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/models"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/utilities"
)
@@ -15,7 +15,7 @@ import (
// ExtNetListDataSource flattens data source for extnet list.
// Return error in case data source is not found on the platform.
// Flatten errors are added to tflog.
func ExtNetListDataSource(ctx context.Context, state *models.DataSourceExtNetListModel, c *decort.DecortClient) diag.Diagnostics {
func ExtNetListDataSource(ctx context.Context, state *models.DataSourceExtNetListModel, c *client.Client) diag.Diagnostics {
tflog.Info(ctx, "Start flattens.ExtNetListDataSource")
diags := diag.Diagnostics{}

View File

@@ -0,0 +1,74 @@
package flattens
import (
"context"
"github.com/google/uuid"
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/types"
"github.com/hashicorp/terraform-plugin-log/tflog"
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/extnet"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/models"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/utilities"
)
// ExtNetReservedIPDataSource flattens data source for extnet reserved ip.
// Return error in case data source is not found on the platform.
// Flatten errors are added to tflog.
func ExtNetReservedIPDataSource(ctx context.Context, state *models.DataSourceExtNetReservedIPModel, c *client.Client) diag.Diagnostics {
tflog.Info(ctx, "Start flattens.ExtNetReservedIPDataSource")
diags := diag.Diagnostics{}
extNetReservationIP, err := utilities.ExtNetReservedIPCheckPresence(ctx, state, c)
if err != nil {
diags.AddError("Cannot get info about extnet reserved ip list", err.Error())
return diags
}
tflog.Info(ctx, "flattens.ExtNetReservedIPDataSource: before flatten")
id := uuid.New()
*state = models.DataSourceExtNetReservedIPModel{
AccountID: state.AccountID,
ExtNetID: state.ExtNetID,
Timeouts: state.Timeouts,
Id: types.StringValue(id.String()),
}
items := make([]models.ItemReservedIPModel, 0, len(extNetReservationIP))
for _, item := range extNetReservationIP {
i := models.ItemReservedIPModel{
ExtNetID: types.Int64Value(int64(item.ExtnetID)),
Reservations: flattenReservations(ctx, item.Reservations),
}
items = append(items, i)
}
state.Items = items
tflog.Info(ctx, "End flattens.ExtNetReservedIPDataSource")
return nil
}
func flattenReservations(ctx context.Context, reservations []extnet.Reservations) []models.ItemReservationsModel {
tflog.Info(ctx, "Start flattenReservations")
tempSlice := make([]models.ItemReservationsModel, 0, len(reservations))
for _, item := range reservations {
res := models.ItemReservationsModel{
AccountID: types.Int64Value(int64(item.AccountID)),
ClientType: types.StringValue(item.ClientType),
DomainName: types.StringValue(item.DomainName),
HostName: types.StringValue(item.Hostname),
IP: types.StringValue(item.IP),
MAC: types.StringValue(item.Mac),
Type: types.StringValue(item.Type),
VMID: types.Int64Value(int64(item.VMID)),
}
tempSlice = append(tempSlice, res)
}
tflog.Info(ctx, "End flattenReservations")
return tempSlice
}