1.2.0
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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{}
|
||||
|
||||
@@ -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{}
|
||||
|
||||
@@ -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{}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user