1.2.0
This commit is contained in:
@@ -7,7 +7,6 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource"
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
|
||||
"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/constants"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceExtNet() datasource.DataSource {
|
||||
|
||||
// dataSourceExtNet is the data source implementation.
|
||||
type dataSourceExtNet struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceExtNet) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource"
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
|
||||
"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/constants"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceExtNetComputesList() datasource.DataSource {
|
||||
|
||||
// dataSourceExtNetComputesList is the data source implementation.
|
||||
type dataSourceExtNetComputesList struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceExtNetComputesList) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource"
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
|
||||
"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/constants"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceExtNetDefault() datasource.DataSource {
|
||||
|
||||
// dataSourceExtNetDefault is the data source implementation.
|
||||
type dataSourceExtNetDefault struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceExtNetDefault) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource"
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
|
||||
"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/constants"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceExtNetList() datasource.DataSource {
|
||||
|
||||
// dataSourceExtNet is the data source implementation.
|
||||
type dataSourceExtNetList struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceExtNetList) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
package extnet
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-framework-timeouts/datasource/timeouts"
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource"
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
|
||||
"github.com/hashicorp/terraform-plugin-log/tflog"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/constants"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/flattens"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/schemas"
|
||||
)
|
||||
|
||||
// Ensure the implementation satisfies the expected interfaces.
|
||||
var (
|
||||
_ datasource.DataSource = &dataSourceExtNetReservedIP{}
|
||||
)
|
||||
|
||||
func NewDataSourceExtNetReservedIP() datasource.DataSource {
|
||||
return &dataSourceExtNetReservedIP{}
|
||||
}
|
||||
|
||||
// dataSourceExtNet is the data source implementation.
|
||||
type dataSourceExtNetReservedIP struct {
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceExtNetReservedIP) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {
|
||||
// Read Terraform configuration data into the model
|
||||
var state models.DataSourceExtNetReservedIPModel
|
||||
resp.Diagnostics.Append(req.Config.Get(ctx, &state)...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
tflog.Error(ctx, "Read dataSourceExtNetReservedIP: Error get state")
|
||||
return
|
||||
}
|
||||
tflog.Info(ctx, "Read dataSourceExtNetReservedIP: got state successfully")
|
||||
|
||||
// Set timeouts
|
||||
readTimeout, diags := state.Timeouts.Read(ctx, constants.Timeout30s)
|
||||
resp.Diagnostics.Append(diags...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
tflog.Error(ctx, "Read dataSourceExtNetReservedIP: Error set timeout")
|
||||
return
|
||||
}
|
||||
tflog.Info(ctx, "Read dataSourceExtNetReservedIP: set timeouts successfully", map[string]any{"readTimeout": readTimeout})
|
||||
|
||||
ctx, cancel := context.WithTimeout(ctx, readTimeout)
|
||||
defer cancel()
|
||||
|
||||
// Map response body to schema
|
||||
resp.Diagnostics.Append(flattens.ExtNetReservedIPDataSource(ctx, &state, d.client)...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
tflog.Error(ctx, "Read dataSourceExtNetReservedIP: Error flatten data source extnet_reserved_ip")
|
||||
return
|
||||
}
|
||||
|
||||
// Set refreshed state
|
||||
resp.Diagnostics.Append(resp.State.Set(ctx, &state)...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
tflog.Error(ctx, "Read dataSourceExtNetReservedIP: Error set state")
|
||||
return
|
||||
}
|
||||
tflog.Info(ctx, "End read dataSourceExtNetReservedIP")
|
||||
}
|
||||
|
||||
func (d *dataSourceExtNetReservedIP) Schema(ctx context.Context, _ datasource.SchemaRequest, resp *datasource.SchemaResponse) {
|
||||
resp.Schema = schema.Schema{
|
||||
Attributes: schemas.MakeSchemaDataSourceExtNetReservedIP(),
|
||||
Blocks: map[string]schema.Block{
|
||||
"timeouts": timeouts.Block(ctx),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (d *dataSourceExtNetReservedIP) Metadata(_ context.Context, req datasource.MetadataRequest, resp *datasource.MetadataResponse) {
|
||||
resp.TypeName = req.ProviderTypeName + "_extnet_reserved_ip_list"
|
||||
}
|
||||
|
||||
// Configure adds the provider configured client to the data source.
|
||||
func (d *dataSourceExtNetReservedIP) Configure(ctx context.Context, req datasource.ConfigureRequest, resp *datasource.ConfigureResponse) {
|
||||
tflog.Info(ctx, "Get Configure dataSourceExtNetReservedIP")
|
||||
d.client = client.DataSource(ctx, &req, resp)
|
||||
tflog.Info(ctx, "Getting Configure dataSourceExtNetReservedIP successfully")
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -63,6 +63,7 @@ type QOSModel struct {
|
||||
}
|
||||
|
||||
type ItemReservationModel struct {
|
||||
AccountID types.Int64 `tfsdk:"account_id"`
|
||||
ClientType types.String `tfsdk:"client_type"`
|
||||
Description types.String `tfsdk:"desc"`
|
||||
DomainName types.String `tfsdk:"domainname"`
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"github.com/hashicorp/terraform-plugin-framework-timeouts/datasource/timeouts"
|
||||
"github.com/hashicorp/terraform-plugin-framework/types"
|
||||
)
|
||||
|
||||
type DataSourceExtNetReservedIPModel struct {
|
||||
// required fields
|
||||
AccountID types.Int64 `tfsdk:"account_id"`
|
||||
|
||||
// optional fields
|
||||
ExtNetID types.Int64 `tfsdk:"extnet_id"`
|
||||
Timeouts timeouts.Value `tfsdk:"timeouts"`
|
||||
|
||||
// response fields
|
||||
Id types.String `tfsdk:"id"`
|
||||
Items []ItemReservedIPModel `tfsdk:"items"`
|
||||
}
|
||||
|
||||
type ItemReservedIPModel struct {
|
||||
ExtNetID types.Int64 `tfsdk:"extnet_id"`
|
||||
Reservations []ItemReservationsModel `tfsdk:"reservations"`
|
||||
}
|
||||
|
||||
type ItemReservationsModel struct {
|
||||
AccountID types.Int64 `tfsdk:"account_id"`
|
||||
ClientType types.String `tfsdk:"client_type"`
|
||||
DomainName types.String `tfsdk:"domain_name"`
|
||||
HostName types.String `tfsdk:"hostname"`
|
||||
IP types.String `tfsdk:"ip"`
|
||||
MAC types.String `tfsdk:"mac"`
|
||||
Type types.String `tfsdk:"type"`
|
||||
VMID types.Int64 `tfsdk:"vm_id"`
|
||||
}
|
||||
@@ -120,6 +120,9 @@ func MakeSchemaDataSourceExtNet() map[string]schema.Attribute {
|
||||
Computed: true,
|
||||
NestedObject: schema.NestedAttributeObject{
|
||||
Attributes: map[string]schema.Attribute{
|
||||
"account_id": schema.Int64Attribute{
|
||||
Computed: true,
|
||||
},
|
||||
"client_type": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package schemas
|
||||
|
||||
import (
|
||||
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
|
||||
)
|
||||
|
||||
func MakeSchemaDataSourceExtNetReservedIP() map[string]schema.Attribute {
|
||||
return map[string]schema.Attribute{
|
||||
// required attributes
|
||||
"account_id": schema.Int64Attribute{
|
||||
Required: true,
|
||||
Description: "find by account id",
|
||||
},
|
||||
|
||||
// optional attributes
|
||||
"extnet_id": schema.Int64Attribute{
|
||||
Optional: true,
|
||||
Description: "find by account id",
|
||||
},
|
||||
|
||||
// computed attributes
|
||||
"id": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"items": schema.ListNestedAttribute{
|
||||
Computed: true,
|
||||
NestedObject: schema.NestedAttributeObject{
|
||||
Attributes: map[string]schema.Attribute{
|
||||
"extnet_id": schema.Int64Attribute{
|
||||
Computed: true,
|
||||
},
|
||||
"reservations": schema.ListNestedAttribute{
|
||||
Computed: true,
|
||||
NestedObject: schema.NestedAttributeObject{
|
||||
Attributes: map[string]schema.Attribute{
|
||||
"account_id": schema.Int64Attribute{
|
||||
Computed: true,
|
||||
},
|
||||
"client_type": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"domain_name": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"hostname": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"ip": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"mac": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"type": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"vm_id": schema.Int64Attribute{
|
||||
Computed: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -5,11 +5,11 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-log/tflog"
|
||||
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/extnet"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
)
|
||||
|
||||
func ExtNetCheckPresence(ctx context.Context, netId uint64, c *decort.DecortClient) (*extnet.RecordExtNet, error) {
|
||||
func ExtNetCheckPresence(ctx context.Context, netId uint64, c *client.Client) (*extnet.RecordExtNet, error) {
|
||||
tflog.Info(ctx, fmt.Sprintf("Get info about extnet with ID - %v", netId))
|
||||
|
||||
recordExtNet, err := c.CloudAPI().ExtNet().Get(ctx, extnet.GetRequest{NetID: netId})
|
||||
|
||||
@@ -4,14 +4,14 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/models"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-log/tflog"
|
||||
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/extnet"
|
||||
)
|
||||
|
||||
func ExtNetComputesListCheckPresence(ctx context.Context, plan *models.DataSourceExtNetComputesListModel, c *decort.DecortClient) (*extnet.ListExtNetComputes, error) {
|
||||
func ExtNetComputesListCheckPresence(ctx context.Context, plan *models.DataSourceExtNetComputesListModel, c *client.Client) (*extnet.ListExtNetComputes, error) {
|
||||
tflog.Info(ctx, "ExtNetComputesListCheckPresence: Get info about extnet list")
|
||||
|
||||
listCompReq := extnet.ListComputesRequest{
|
||||
|
||||
@@ -5,10 +5,10 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-log/tflog"
|
||||
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
)
|
||||
|
||||
func ExtNetDefaultCheckPresence(ctx context.Context, c *decort.DecortClient) (uint64, error) {
|
||||
func ExtNetDefaultCheckPresence(ctx context.Context, c *client.Client) (uint64, error) {
|
||||
tflog.Info(ctx, "ExtNetDefaultCheckPresence: Get info about default extnet with ID - %v")
|
||||
|
||||
netId, err := c.CloudAPI().ExtNet().GetDefault(ctx)
|
||||
|
||||
@@ -4,14 +4,14 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/models"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-log/tflog"
|
||||
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/extnet"
|
||||
)
|
||||
|
||||
func ExtNetListCheckPresence(ctx context.Context, plan *models.DataSourceExtNetListModel, c *decort.DecortClient) (*extnet.ListExtNets, error) {
|
||||
func ExtNetListCheckPresence(ctx context.Context, plan *models.DataSourceExtNetListModel, c *client.Client) (*extnet.ListExtNets, error) {
|
||||
tflog.Info(ctx, "ExtNetListCheckPresence: Get info about extnet list")
|
||||
|
||||
extnetListReq := extnet.ListRequest{}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package utilities
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/extnet/models"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-log/tflog"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/extnet"
|
||||
)
|
||||
|
||||
func ExtNetReservedIPCheckPresence(ctx context.Context, plan *models.DataSourceExtNetReservedIPModel, c *client.Client) ([]extnet.RecordReservedIP, error) {
|
||||
tflog.Info(ctx, "ExtNetReservedIPCheckPresence: Get info about extnet reserved ip")
|
||||
|
||||
extnetReservedIPReq := extnet.GetReservedIP{
|
||||
AccountID: uint64(plan.AccountID.ValueInt64()),
|
||||
}
|
||||
|
||||
if !plan.ExtNetID.IsNull() {
|
||||
extnetReservedIPReq.ExtNetID = uint64(plan.ExtNetID.ValueInt64())
|
||||
}
|
||||
|
||||
tflog.Info(ctx, "ExtNetReservedIPCheckPresence: before call CloudAPI().ExtNet().GetReservedIP", map[string]any{"req": extnetReservedIPReq})
|
||||
extNetReservedIP, err := c.CloudAPI().ExtNet().GetReservedIP(ctx, extnetReservedIPReq)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot get info about extnet with error: %w", err)
|
||||
}
|
||||
|
||||
tflog.Info(ctx, "ExtNetReservedIPCheckPresence: response from CloudAPI().ExtNet().GetReservedIP", map[string]any{"response": extnetReservedIPReq})
|
||||
|
||||
return extNetReservedIP, err
|
||||
}
|
||||
Reference in New Issue
Block a user