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/vins/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceVINS() datasource.DataSource {
|
||||
|
||||
// dataSourceVINS is the data source implementation.
|
||||
type dataSourceVINS struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceVINS) 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/vins/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceVINSAudits() datasource.DataSource {
|
||||
|
||||
// dataSourceVINSAudits is the data source implementation.
|
||||
type dataSourceVINSAudits struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceVINSAudits) 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/vins/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceVINSExtNetList() datasource.DataSource {
|
||||
|
||||
// dataSourceVINSExtNetList is the data source implementation.
|
||||
type dataSourceVINSExtNetList struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceVINSExtNetList) 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/vins/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceVINSIPList() datasource.DataSource {
|
||||
|
||||
// dataSourceVINSIPList is the data source implementation.
|
||||
type dataSourceVINSIPList struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceVINSIPList) 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/vins/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceVINSList() datasource.DataSource {
|
||||
|
||||
// dataSourceVINSList is the data source implementation.
|
||||
type dataSourceVINSList struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceVINSList) 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/vins/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceVINSListDeleted() datasource.DataSource {
|
||||
|
||||
// dataSourceVINSListDeleted is the data source implementation.
|
||||
type dataSourceVINSListDeleted struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceVINSListDeleted) 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/vins/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceVINSNATRuleList() datasource.DataSource {
|
||||
|
||||
// dataSourceVINSNATRuleList is the data source implementation.
|
||||
type dataSourceVINSNATRuleList struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceVINSNATRuleList) 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/vins/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceVINSStaticRoute() datasource.DataSource {
|
||||
|
||||
// dataSourceVINSStaticRoute is the data source implementation.
|
||||
type dataSourceVINSStaticRoute struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceVINSStaticRoute) 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/vins/flattens"
|
||||
@@ -26,7 +25,7 @@ func NewDataSourceVINSStaticRouteList() datasource.DataSource {
|
||||
|
||||
// dataSourceVINSStaticRouteList is the data source implementation.
|
||||
type dataSourceVINSStaticRouteList struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
func (d *dataSourceVINSStaticRouteList) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {
|
||||
|
||||
@@ -8,8 +8,8 @@ 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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
// VINSDataSource flattens data source for vins.
|
||||
// Return error in case data source is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSDataSource(ctx context.Context, state *models.DataSourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSDataSource(ctx context.Context, state *models.DataSourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSDataSource")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
@@ -99,6 +99,7 @@ func flattenVNFDev(ctx context.Context, vnfdev *vins.RecordVNFDev) types.Object
|
||||
Status: types.StringValue(vnfdev.Status),
|
||||
TechStatus: types.StringValue(vnfdev.TechStatus),
|
||||
Type: types.StringValue(vnfdev.Type),
|
||||
VNCPassword: types.StringValue(vnfdev.VNCPassword),
|
||||
}
|
||||
|
||||
temp.Capabilities, diags = types.ListValueFrom(ctx, types.StringType, vnfdev.Capabilities)
|
||||
@@ -367,14 +368,11 @@ func flattenReservations(ctx context.Context, items *vins.ListReservations) type
|
||||
tempSlice := make([]types.Object, 0, len(*items))
|
||||
for _, item := range *items {
|
||||
temp := models.ReservationModel{
|
||||
ClientType: types.StringValue(item.ClientType),
|
||||
Description: types.StringValue(item.Description),
|
||||
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)),
|
||||
AccountID: types.Int64Value(int64(item.AccountID)),
|
||||
IP: types.StringValue(item.IP),
|
||||
MAC: types.StringValue(item.MAC),
|
||||
Type: types.StringValue(item.Type),
|
||||
VMID: types.Int64Value(int64(item.VMID)),
|
||||
}
|
||||
|
||||
obj, diags := types.ObjectValueFrom(ctx, models.ItemReservations, temp)
|
||||
|
||||
@@ -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/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
// VINSAuditsDataSource flattens data source for vins audits.
|
||||
// Return error in case data source is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSAuditsDataSource(ctx context.Context, state *models.DataSourceVINSAuditsModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSAuditsDataSource(ctx context.Context, state *models.DataSourceVINSAuditsModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSAuditsDataSource")
|
||||
|
||||
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/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
// VINSExtNetListDataSource flattens data source for vins ext net list.
|
||||
// Return error in case data source is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSExtNetListDataSource(ctx context.Context, state *models.DataSourceVINSExtNetListModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSExtNetListDataSource(ctx context.Context, state *models.DataSourceVINSExtNetListModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSExtNetListDataSource")
|
||||
|
||||
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/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
// VINSIPListDataSource flattens data source for vins ip list.
|
||||
// Return error in case data source is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSIPListDataSource(ctx context.Context, state *models.DataSourceVINSIPListModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSIPListDataSource(ctx context.Context, state *models.DataSourceVINSIPListModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSIPListDataSource")
|
||||
|
||||
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/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
// VINSListDataSource flattens data source for vins list.
|
||||
// Return error in case data source is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSListDataSource(ctx context.Context, state *models.DataSourceVINSListModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSListDataSource(ctx context.Context, state *models.DataSourceVINSListModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSListDataSource")
|
||||
|
||||
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/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
// VINSListDeletedDataSource flattens data source for vins list deleted.
|
||||
// Return error in case data source is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSListDeletedDataSource(ctx context.Context, state *models.DataSourceVINSListDeletedModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSListDeletedDataSource(ctx context.Context, state *models.DataSourceVINSListDeletedModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSListDeletedDataSource")
|
||||
|
||||
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/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
// VINSNATRuleListDataSource flattens data source for vins nat rule list.
|
||||
// Return error in case data source is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSNATRuleListDataSource(ctx context.Context, state *models.DataSourceVINSNATRuleListModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSNATRuleListDataSource(ctx context.Context, state *models.DataSourceVINSNATRuleListModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSNATRuleListDataSource")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -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/service/cloudapi/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
// VINSStaticRouteDataSource flattens data source for vins static route.
|
||||
// Return error in case data source is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSStaticRouteDataSource(ctx context.Context, state *models.DataSourceVINSStaticRouteModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSStaticRouteDataSource(ctx context.Context, state *models.DataSourceVINSStaticRouteModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSStaticRouteDataSource")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -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/service/cloudapi/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
// VINSStaticRouteListDataSource flattens data source for vins static route list.
|
||||
// Return error in case data source is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSStaticRouteListDataSource(ctx context.Context, state *models.DataSourceVINSStaticRouteListModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSStaticRouteListDataSource(ctx context.Context, state *models.DataSourceVINSStaticRouteListModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSStaticRouteListDataSource")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -8,8 +8,8 @@ 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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
// VINSResource flattens resource for vins.
|
||||
// Return error in case resource is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSResource(ctx context.Context, plan *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSResource(ctx context.Context, plan *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSResource")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -8,7 +8,8 @@ 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/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/utilities"
|
||||
)
|
||||
@@ -16,7 +17,7 @@ import (
|
||||
// VINSStaticRouteResource flattens resource for vins static route.
|
||||
// Return error in case resource is not found on the platform.
|
||||
// Flatten errors are added to tflog.
|
||||
func VINSStaticRouteResource(ctx context.Context, plan *models.ResourceVINSStaticRouteModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSStaticRouteResource(ctx context.Context, plan *models.ResourceVINSStaticRouteModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start flattens.VINSStaticRouteResource")
|
||||
|
||||
vinsId, routeId, diags := utilities.GetVinsIDAndRouteID(ctx, plan)
|
||||
@@ -39,20 +40,13 @@ func VINSStaticRouteResource(ctx context.Context, plan *models.ResourceVINSStati
|
||||
Timeouts: plan.Timeouts,
|
||||
|
||||
RouteID: types.Int64Value(int64(routeId)),
|
||||
ComputeIDs: plan.ComputeIDs,
|
||||
ComputeIDs: flattens.FlattenSimpleTypeToList(ctx, types.Int64Type, recordRoute.ComputeIds),
|
||||
|
||||
Id: plan.Id,
|
||||
LastUpdated: plan.LastUpdated,
|
||||
GUID: types.StringValue(recordRoute.GUID),
|
||||
}
|
||||
|
||||
if plan.ComputeIDs.IsUnknown() {
|
||||
plan.ComputeIDs, diags = types.ListValueFrom(ctx, types.Int64Type, recordRoute.ComputeIds)
|
||||
if diags.HasError() {
|
||||
tflog.Error(ctx, fmt.Sprint("Error VINSStaticRouteResource: cannot flatten recordRoute.ComputeIds to plan.ComputeIDs", diags))
|
||||
}
|
||||
}
|
||||
|
||||
if plan.Id.IsUnknown() {
|
||||
plan.Id = types.StringValue(fmt.Sprintf("%d#%d", vinsId, routeId))
|
||||
}
|
||||
|
||||
@@ -7,14 +7,14 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-framework/diag"
|
||||
"github.com/hashicorp/terraform-plugin-framework/types/basetypes"
|
||||
"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/ic"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/models"
|
||||
)
|
||||
|
||||
// resourceVINSInputChecks checks if user provided rg_id, account_id, ext_net_id and gid are valid.
|
||||
// It also checks that either rg_id or account_id is specified.
|
||||
func resourceVINSInputChecks(ctx context.Context, plan *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func resourceVINSInputChecks(ctx context.Context, plan *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
if !plan.RGID.IsUnknown() { // RGID is optional & computed
|
||||
@@ -81,7 +81,7 @@ func resourceVINSInputChecks(ctx context.Context, plan *models.ResourceVINSModel
|
||||
}
|
||||
|
||||
// resourceVINSStaticRouteInputChecks checks if user provided vins_id is valid.
|
||||
func resourceVINSStaticRouteInputChecks(ctx context.Context, plan *models.ResourceVINSStaticRouteModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func resourceVINSStaticRouteInputChecks(ctx context.Context, plan *models.ResourceVINSStaticRouteModel, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
vinsId := uint64(plan.VinsID.ValueInt64())
|
||||
|
||||
@@ -66,6 +66,7 @@ type RecordVNFDevModel struct {
|
||||
Status types.String `tfsdk:"status"`
|
||||
TechStatus types.String `tfsdk:"tech_status"`
|
||||
Type types.String `tfsdk:"type"`
|
||||
VNCPassword types.String `tfsdk:"vnc_password"`
|
||||
VINS types.List `tfsdk:"vins"`
|
||||
}
|
||||
|
||||
@@ -202,14 +203,11 @@ type RecordDHCPConfigModel struct {
|
||||
}
|
||||
|
||||
type ReservationModel struct {
|
||||
ClientType types.String `tfsdk:"client_type"`
|
||||
Description types.String `tfsdk:"desc"`
|
||||
DomainName types.String `tfsdk:"domainname"`
|
||||
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"`
|
||||
AccountID types.Int64 `tfsdk:"account_id"`
|
||||
IP types.String `tfsdk:"ip"`
|
||||
MAC types.String `tfsdk:"mac"`
|
||||
Type types.String `tfsdk:"type"`
|
||||
VMID types.Int64 `tfsdk:"vm_id"`
|
||||
}
|
||||
|
||||
type RecordNATModel struct {
|
||||
@@ -297,6 +295,7 @@ var ItemVNFDev = map[string]attr.Type{
|
||||
"status": types.StringType,
|
||||
"tech_status": types.StringType,
|
||||
"type": types.StringType,
|
||||
"vnc_password": types.StringType,
|
||||
"vins": types.ListType{ElemType: types.Int64Type},
|
||||
}
|
||||
|
||||
@@ -407,14 +406,11 @@ var ItemDHCPConfig = map[string]attr.Type{
|
||||
}
|
||||
|
||||
var ItemReservations = map[string]attr.Type{
|
||||
"client_type": types.StringType,
|
||||
"desc": types.StringType,
|
||||
"domainname": types.StringType,
|
||||
"hostname": types.StringType,
|
||||
"ip": types.StringType,
|
||||
"mac": types.StringType,
|
||||
"type": types.StringType,
|
||||
"vm_id": types.Int64Type,
|
||||
"account_id": types.Int64Type,
|
||||
"ip": types.StringType,
|
||||
"mac": types.StringType,
|
||||
"type": types.StringType,
|
||||
"vm_id": types.Int64Type,
|
||||
}
|
||||
|
||||
var ItemGW = map[string]attr.Type{
|
||||
|
||||
@@ -13,12 +13,12 @@ type ResourceVINSStaticRouteModel struct {
|
||||
Gateway types.String `tfsdk:"gateway"`
|
||||
|
||||
// optional fields
|
||||
RouteID types.Int64 `tfsdk:"route_id"`
|
||||
ComputeIDs types.List `tfsdk:"compute_ids"`
|
||||
Timeouts timeouts.Value `tfsdk:"timeouts"`
|
||||
RouteID types.Int64 `tfsdk:"route_id"`
|
||||
Timeouts timeouts.Value `tfsdk:"timeouts"`
|
||||
|
||||
// response fields
|
||||
Id types.String `tfsdk:"id"`
|
||||
LastUpdated types.String `tfsdk:"last_updated"`
|
||||
ComputeIDs types.List `tfsdk:"compute_ids"`
|
||||
GUID types.String `tfsdk:"guid"`
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-framework/resource/schema"
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/constants"
|
||||
@@ -35,7 +34,7 @@ func NewResourceVINS() resource.Resource {
|
||||
|
||||
// resourceVINS is the resource implementation.
|
||||
type resourceVINS struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
// Create creates the resource and sets the initial Terraform state.
|
||||
|
||||
@@ -11,7 +11,6 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-framework/resource/schema"
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/constants"
|
||||
@@ -34,7 +33,7 @@ func NewResourceVINSStaticRoute() resource.Resource {
|
||||
|
||||
// resourceVINSStaticRoute is the resource implementation.
|
||||
type resourceVINSStaticRoute struct {
|
||||
client *decort.DecortClient
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
// Create creates the resource and sets the initial Terraform state.
|
||||
@@ -80,17 +79,6 @@ func (r *resourceVINSStaticRoute) Create(ctx context.Context, req resource.Creat
|
||||
Gateway: plan.Gateway.ValueString(),
|
||||
}
|
||||
|
||||
if !plan.ComputeIDs.IsUnknown() {
|
||||
computes := make([]uint64, 0, len(plan.ComputeIDs.Elements()))
|
||||
diags = plan.ComputeIDs.ElementsAs(ctx, &computes, false)
|
||||
if diags.HasError() {
|
||||
resp.Diagnostics.Append(diags...)
|
||||
tflog.Error(ctx, "Create resourceVINSStaticRoute: cannot populate computes with plan.ComputeIDs List elements")
|
||||
return
|
||||
}
|
||||
staticReq.ComputeIds = computes
|
||||
}
|
||||
|
||||
_, err := r.client.CloudAPI().VINS().StaticRouteAdd(ctx, staticReq)
|
||||
if err != nil {
|
||||
resp.Diagnostics.AddError("Create resourceVINSStaticRoute: Error adding static route to vins", err.Error())
|
||||
@@ -166,72 +154,9 @@ func (r *resourceVINSStaticRoute) Read(ctx context.Context, req resource.ReadReq
|
||||
|
||||
// Update updates the resource and sets the updated Terraform state on success.
|
||||
func (r *resourceVINSStaticRoute) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) {
|
||||
// Retrieve values from plan
|
||||
var plan models.ResourceVINSStaticRouteModel
|
||||
resp.Diagnostics.Append(req.Plan.Get(ctx, &plan)...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
tflog.Error(ctx, "Update resourceVINSStaticRoute: Error receiving the plan")
|
||||
return
|
||||
}
|
||||
tflog.Info(ctx, "Update resourceVINSStaticRoute: got plan successfully", map[string]any{"id": plan.Id.ValueString()})
|
||||
|
||||
// Retrieve values from state
|
||||
var state models.ResourceVINSStaticRouteModel
|
||||
resp.Diagnostics.Append(req.State.Get(ctx, &state)...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
tflog.Error(ctx, "Update resourceVINSStaticRoute: Error receiving the state")
|
||||
return
|
||||
}
|
||||
tflog.Info(ctx, "Update resourceVINSStaticRoute: got state successfully", map[string]any{"id": state.Id.ValueString()})
|
||||
|
||||
// Set timeouts
|
||||
updateTimeout, diags := plan.Timeouts.Update(ctx, constants.Timeout20m)
|
||||
resp.Diagnostics.Append(diags...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
tflog.Error(ctx, "Error set timeout")
|
||||
return
|
||||
}
|
||||
tflog.Info(ctx, "Update resourceVINSStaticRoute: set timeouts successfully", map[string]any{
|
||||
"id": state.Id.ValueString(),
|
||||
"updateTimeout": updateTimeout})
|
||||
|
||||
ctx, cancel := context.WithTimeout(ctx, updateTimeout)
|
||||
defer cancel()
|
||||
|
||||
// Checking for values in the platform
|
||||
tflog.Info(ctx, "Update resourceVINSStaticRoute: starting input checks", map[string]any{"id": plan.Id.ValueString()})
|
||||
resp.Diagnostics.Append(resourceVINSStaticRouteInputChecks(ctx, &plan, r.client)...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
tflog.Error(ctx, "Update resourceVINS: Error input checks")
|
||||
return
|
||||
}
|
||||
tflog.Info(ctx, "Update resourceVINSStaticRoute: input checks successful", map[string]any{"id": state.Id.ValueString()})
|
||||
|
||||
// change compute_ids, if needed
|
||||
if !plan.ComputeIDs.Equal(state.ComputeIDs) {
|
||||
resp.Diagnostics.Append(utilities.UpdateComputeIDsVINSStaticRoute(ctx, &plan, &state, r.client)...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
tflog.Error(ctx, "Update resourceVINSStaticRoute: Error updating compute_ids")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
tflog.Info(ctx, "Update resourceVINSStaticRoute: resource update is completed", map[string]any{"id": plan.Id.ValueString()})
|
||||
|
||||
// Map response body to schema and populate Computed attribute values
|
||||
resp.Diagnostics.Append(flattens.VINSStaticRouteResource(ctx, &plan, r.client)...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
return
|
||||
}
|
||||
|
||||
// Set data last update
|
||||
plan.LastUpdated = types.StringValue(time.Now().Format(time.RFC850))
|
||||
|
||||
// Set state to fully populated data
|
||||
resp.Diagnostics.Append(resp.State.Set(ctx, plan)...)
|
||||
if resp.Diagnostics.HasError() {
|
||||
return
|
||||
}
|
||||
tflog.Error(ctx, "Update resourceVINSStaticRoute: This resource cannot be updated")
|
||||
resp.Diagnostics.AddError("This resource cannot be updated", "")
|
||||
return
|
||||
}
|
||||
|
||||
// Delete deletes the resource and removes the Terraform state on success.
|
||||
|
||||
@@ -204,6 +204,9 @@ func MakeSchemaDataSourceVINS() map[string]schema.Attribute {
|
||||
"milestones": schema.Int64Attribute{
|
||||
Computed: true,
|
||||
},
|
||||
"vnc_password": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"vnf_name": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
@@ -371,16 +374,7 @@ func MakeSchemaDataSourceVINS() map[string]schema.Attribute {
|
||||
Computed: true,
|
||||
NestedObject: schema.NestedAttributeObject{
|
||||
Attributes: map[string]schema.Attribute{
|
||||
"client_type": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"desc": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"domainname": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"hostname": schema.StringAttribute{
|
||||
"account_id": schema.Int64Attribute{
|
||||
Computed: true,
|
||||
},
|
||||
"ip": schema.StringAttribute{
|
||||
|
||||
@@ -374,6 +374,9 @@ func MakeSchemaResourceVINS() map[string]schema.Attribute {
|
||||
"vnf_name": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"vnc_password": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"status": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
|
||||
@@ -29,11 +29,6 @@ func MakeSchemaResourceVINSStaticRoute() map[string]schema.Attribute {
|
||||
Computed: true,
|
||||
Optional: true,
|
||||
},
|
||||
"compute_ids": schema.ListAttribute{
|
||||
Computed: true,
|
||||
Optional: true,
|
||||
ElementType: types.Int64Type,
|
||||
},
|
||||
|
||||
// computed attributes
|
||||
"id": schema.StringAttribute{
|
||||
@@ -48,5 +43,9 @@ func MakeSchemaResourceVINSStaticRoute() map[string]schema.Attribute {
|
||||
"guid": schema.StringAttribute{
|
||||
Computed: true,
|
||||
},
|
||||
"compute_ids": schema.ListAttribute{
|
||||
Computed: true,
|
||||
ElementType: types.Int64Type,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,11 +6,11 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
)
|
||||
|
||||
func VINSDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *decort.DecortClient) (*vins.RecordVINS, diag.Diagnostics) {
|
||||
func VINSDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *client.Client) (*vins.RecordVINS, diag.Diagnostics) {
|
||||
tflog.Info(ctx, fmt.Sprintf("VINSDataSourceCheckPresence: Get info about vins with ID - %v", vinsId))
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -6,11 +6,11 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
)
|
||||
|
||||
func VINSAuditsDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *decort.DecortClient) (*vins.ListAudits, diag.Diagnostics) {
|
||||
func VINSAuditsDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *client.Client) (*vins.ListAudits, diag.Diagnostics) {
|
||||
tflog.Info(ctx, fmt.Sprintf("VINSAuditsDataSourceCheckPresence: Get info about vins audit with vins ID - %v", vinsId))
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -6,11 +6,11 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
)
|
||||
|
||||
func VINSExtNetListDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *decort.DecortClient) (*vins.ListExtNets, diag.Diagnostics) {
|
||||
func VINSExtNetListDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *client.Client) (*vins.ListExtNets, diag.Diagnostics) {
|
||||
tflog.Info(ctx, fmt.Sprintf("VINSExtNetListDataSourceCheckPresence: Get info about vins audit with vins ID - %v", vinsId))
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -6,11 +6,11 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
)
|
||||
|
||||
func VINSIPListDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *decort.DecortClient) (*vins.ListIPs, diag.Diagnostics) {
|
||||
func VINSIPListDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *client.Client) (*vins.ListIPs, diag.Diagnostics) {
|
||||
tflog.Info(ctx, fmt.Sprintf("VINSIPListDataSourceCheckPresence: Get info about vins audit with vins ID - %v", vinsId))
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -5,12 +5,12 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/models"
|
||||
)
|
||||
|
||||
func VINSListDataSourceCheckPresence(ctx context.Context, plan *models.DataSourceVINSListModel, c *decort.DecortClient) (*vins.ListVINS, diag.Diagnostics) {
|
||||
func VINSListDataSourceCheckPresence(ctx context.Context, plan *models.DataSourceVINSListModel, c *client.Client) (*vins.ListVINS, diag.Diagnostics) {
|
||||
tflog.Info(ctx, "VINSListDataSourceCheckPresence: Get info about vins list")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -5,12 +5,12 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/models"
|
||||
)
|
||||
|
||||
func VINSListDeletedDataSourceCheckPresence(ctx context.Context, plan *models.DataSourceVINSListDeletedModel, c *decort.DecortClient) (*vins.ListVINS, diag.Diagnostics) {
|
||||
func VINSListDeletedDataSourceCheckPresence(ctx context.Context, plan *models.DataSourceVINSListDeletedModel, c *client.Client) (*vins.ListVINS, diag.Diagnostics) {
|
||||
tflog.Info(ctx, "VINSListDeletedDataSourceCheckPresence: Get info about vins list")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -5,11 +5,11 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
)
|
||||
|
||||
func VINSNATRuleListDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *decort.DecortClient) (*vins.ListNATRules, diag.Diagnostics) {
|
||||
func VINSNATRuleListDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *client.Client) (*vins.ListNATRules, diag.Diagnostics) {
|
||||
tflog.Info(ctx, "VINSNATRuleListDataSourceCheckPresence: Get info about vins nat rule list")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -6,11 +6,11 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
)
|
||||
|
||||
func VINSStaticRouteDataSourceCheckPresence(ctx context.Context, vinsId, routeId uint64, c *decort.DecortClient) (*vins.ItemRoutes, diag.Diagnostics) {
|
||||
func VINSStaticRouteDataSourceCheckPresence(ctx context.Context, vinsId, routeId uint64, c *client.Client) (*vins.ItemRoutes, diag.Diagnostics) {
|
||||
tflog.Info(ctx, "VINSStaticRouteDataSourceCheckPresence: Get info about vins static route", map[string]any{
|
||||
"vins_id": vinsId,
|
||||
"route_id": routeId,
|
||||
|
||||
@@ -5,11 +5,11 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
)
|
||||
|
||||
func VINSStaticRouteListDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *decort.DecortClient) (*vins.ListStaticRoutes, diag.Diagnostics) {
|
||||
func VINSStaticRouteListDataSourceCheckPresence(ctx context.Context, vinsId uint64, c *client.Client) (*vins.ListStaticRoutes, diag.Diagnostics) {
|
||||
tflog.Info(ctx, "VINSStaticRouteListDataSourceCheckPresence: Get info about vins static route list")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -11,13 +11,13 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-framework/types"
|
||||
"github.com/hashicorp/terraform-plugin-framework/types/basetypes"
|
||||
"github.com/hashicorp/terraform-plugin-log/tflog"
|
||||
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/models"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/status"
|
||||
)
|
||||
|
||||
func VINSResourceCheckPresence(ctx context.Context, vinsId uint64, c *decort.DecortClient) (*vins.RecordVINS, diag.Diagnostics) {
|
||||
func VINSResourceCheckPresence(ctx context.Context, vinsId uint64, c *client.Client) (*vins.RecordVINS, diag.Diagnostics) {
|
||||
tflog.Info(ctx, fmt.Sprintf("VINSResourceCheckPresence: Get info about vins with ID - %v", vinsId))
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
@@ -35,7 +35,7 @@ func VINSResourceCheckPresence(ctx context.Context, vinsId uint64, c *decort.Dec
|
||||
|
||||
// CreateInRGResourceVINS creates vins in resource group based on plan.
|
||||
// Returns vins_id for created vins and errors in case of failures.
|
||||
func CreateInRGResourceVINS(ctx context.Context, plan *models.ResourceVINSModel, c *decort.DecortClient) (uint64, diag.Diagnostics) {
|
||||
func CreateInRGResourceVINS(ctx context.Context, plan *models.ResourceVINSModel, c *client.Client) (uint64, diag.Diagnostics) {
|
||||
tflog.Info(ctx, fmt.Sprintf("Start CreateInRGResourceVINS: vins_name %s", plan.Name.ValueString()))
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
@@ -104,7 +104,7 @@ func CreateInRGResourceVINS(ctx context.Context, plan *models.ResourceVINSModel,
|
||||
|
||||
// CreateInAccountResourceVINS creates vins in account based on plan.
|
||||
// Returns vins_id for created vins and errors in case of failures.
|
||||
func CreateInAccountResourceVINS(ctx context.Context, plan *models.ResourceVINSModel, c *decort.DecortClient) (uint64, diag.Diagnostics) {
|
||||
func CreateInAccountResourceVINS(ctx context.Context, plan *models.ResourceVINSModel, c *client.Client) (uint64, diag.Diagnostics) {
|
||||
tflog.Info(ctx, fmt.Sprintf("Start CreateInAccountResourceVINS: vins_name %s", plan.Name.ValueString()))
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
@@ -157,7 +157,7 @@ func CreateInAccountResourceVINS(ctx context.Context, plan *models.ResourceVINSM
|
||||
|
||||
// IPCreateVINS reserves ips that user specified in ip field for created resource.
|
||||
// In case of failure returns warnings.
|
||||
func IPCreateVINS(ctx context.Context, vinsId uint64, plan *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func IPCreateVINS(ctx context.Context, vinsId uint64, plan *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
// plan.IP is not null as it was checked before call
|
||||
@@ -205,7 +205,7 @@ func IPCreateVINS(ctx context.Context, vinsId uint64, plan *models.ResourceVINSM
|
||||
|
||||
// IPUpdateVINS reserves/releases ips that user specified in ip field for updated resource.
|
||||
// In case of failure returns errors.
|
||||
func IPUpdateVINS(ctx context.Context, vinsId uint64, plan, state *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func IPUpdateVINS(ctx context.Context, vinsId uint64, plan, state *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start IPUpdateVINS: new ip specified", map[string]any{"vins_id": vinsId})
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -309,7 +309,7 @@ func IPUpdateVINS(ctx context.Context, vinsId uint64, plan, state *models.Resour
|
||||
|
||||
// ExtNetUpdateVINS updates ext_net_id and/or ext_net_ip that user specified in ext_net block for updated resource.
|
||||
// In case of failure returns errors.
|
||||
func ExtNetUpdateVINS(ctx context.Context, vinsId uint64, plan, state *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func ExtNetUpdateVINS(ctx context.Context, vinsId uint64, plan, state *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start ExtNetUpdateVINS: new ext_net specified", map[string]any{
|
||||
"vins_id": vinsId,
|
||||
})
|
||||
@@ -363,7 +363,7 @@ func ExtNetUpdateVINS(ctx context.Context, vinsId uint64, plan, state *models.Re
|
||||
|
||||
// NATRuleCreateVINS adds nat rules that user specified in nat_rule field for created resource.
|
||||
// In case of failure returns warnings.
|
||||
func NATRuleCreateVINS(ctx context.Context, vinsId uint64, plan *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func NATRuleCreateVINS(ctx context.Context, vinsId uint64, plan *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
// plan.NatRule is not null as it was checked before call
|
||||
@@ -410,7 +410,7 @@ func NATRuleCreateVINS(ctx context.Context, vinsId uint64, plan *models.Resource
|
||||
|
||||
// NATRuleUpdateVINS adds/deleted nat rules that user specified in nat_rule field for updated resource.
|
||||
// In case of failure returns errors.
|
||||
func NATRuleUpdateVINS(ctx context.Context, vinsId uint64, plan, state *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func NATRuleUpdateVINS(ctx context.Context, vinsId uint64, plan, state *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start NATRuleUpdateVINS: new natRule specified", map[string]any{"vins_id": vinsId})
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
@@ -511,7 +511,7 @@ func NATRuleUpdateVINS(ctx context.Context, vinsId uint64, plan, state *models.R
|
||||
// VINSReadStatus loads vins resource by ids id, gets it current status. Performs restore and enable if needed for
|
||||
// Deleted status.
|
||||
// In case of failure returns errors.
|
||||
func VINSReadStatus(ctx context.Context, state *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VINSReadStatus(ctx context.Context, state *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
tflog.Info(ctx, "VINSReadStatus: Read status vins with ID", map[string]any{"vins_id": state.Id.ValueString()})
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
@@ -599,7 +599,7 @@ func VINSReadStatus(ctx context.Context, state *models.ResourceVINSModel, c *dec
|
||||
|
||||
// RestoreVINS performs vins Restore request.
|
||||
// Returns error in case of failures.
|
||||
func RestoreVINS(ctx context.Context, vinsId uint64, c *decort.DecortClient) diag.Diagnostics {
|
||||
func RestoreVINS(ctx context.Context, vinsId uint64, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
tflog.Info(ctx, "RestoreVINS: before calling CloudAPI().VINS().Restore", map[string]any{"vinsId": vinsId, "req": vins.RestoreRequest{VINSID: vinsId}})
|
||||
@@ -619,7 +619,7 @@ func RestoreVINS(ctx context.Context, vinsId uint64, c *decort.DecortClient) dia
|
||||
|
||||
// DisableVINS performs vins Disable request.
|
||||
// Returns error in case of failures.
|
||||
func DisableVINS(ctx context.Context, vinsId uint64, c *decort.DecortClient) diag.Diagnostics {
|
||||
func DisableVINS(ctx context.Context, vinsId uint64, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
tflog.Info(ctx, "DisableVINS: before calling CloudAPI().VINS().Disable", map[string]any{"vinsId": vinsId})
|
||||
@@ -639,7 +639,7 @@ func DisableVINS(ctx context.Context, vinsId uint64, c *decort.DecortClient) dia
|
||||
|
||||
// EnableVINS performs vins Enable request.
|
||||
// Returns error in case of failures.
|
||||
func EnableVINS(ctx context.Context, vinsId uint64, c *decort.DecortClient) diag.Diagnostics {
|
||||
func EnableVINS(ctx context.Context, vinsId uint64, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
tflog.Info(ctx, "EnableVINS: before calling CloudAPI().VINS().Enable", map[string]any{"vinsId": vinsId})
|
||||
@@ -659,7 +659,7 @@ func EnableVINS(ctx context.Context, vinsId uint64, c *decort.DecortClient) diag
|
||||
|
||||
// EnableDisableUpdateVINS performs vins Enable/disable request.
|
||||
// Returns errors in case of failures.
|
||||
func EnableDisableUpdateVINS(ctx context.Context, vinsId uint64, plan *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func EnableDisableUpdateVINS(ctx context.Context, vinsId uint64, plan *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
enable := plan.Enable.ValueBool()
|
||||
tflog.Info(ctx, "Start EnableDisableUpdateVINS", map[string]any{"vinsId": vinsId, "enable": enable})
|
||||
@@ -679,7 +679,7 @@ func EnableDisableUpdateVINS(ctx context.Context, vinsId uint64, plan *models.Re
|
||||
|
||||
// VnfdevRestartUpdateVINS restarts vnf_dev for vins.
|
||||
// Returns error in case of failures.
|
||||
func VnfdevRestartUpdateVINS(ctx context.Context, vinsId uint64, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VnfdevRestartUpdateVINS(ctx context.Context, vinsId uint64, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
tflog.Info(ctx, "VnfdevRestartUpdateVINS: before calling CloudAPI().VINS().VNFDevRestart", map[string]any{"vinsId": vinsId})
|
||||
@@ -699,7 +699,7 @@ func VnfdevRestartUpdateVINS(ctx context.Context, vinsId uint64, c *decort.Decor
|
||||
|
||||
// VnfdevRedeployUpdateVINS redeploys vnf_dev for vins.
|
||||
// Returns error in case of failures.
|
||||
func VnfdevRedeployUpdateVINS(ctx context.Context, vinsId uint64, c *decort.DecortClient) diag.Diagnostics {
|
||||
func VnfdevRedeployUpdateVINS(ctx context.Context, vinsId uint64, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
tflog.Info(ctx, "VnfdevRedeployUpdateVINS: before calling CloudAPI().VINS().VNFDevRedeploy", map[string]any{"vinsId": vinsId})
|
||||
@@ -719,7 +719,7 @@ func VnfdevRedeployUpdateVINS(ctx context.Context, vinsId uint64, c *decort.Deco
|
||||
|
||||
// UpdateDNSlistVINS apply new DNS list in VINS
|
||||
// Returns error in case of failures.
|
||||
func UpdateDNSlistVINS(ctx context.Context, vinsId uint64, plan *models.ResourceVINSModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
func UpdateDNSlistVINS(ctx context.Context, vinsId uint64, plan *models.ResourceVINSModel, c *client.Client) diag.Diagnostics {
|
||||
diags := diag.Diagnostics{}
|
||||
|
||||
req := vins.DNSApplyRequest{
|
||||
|
||||
@@ -8,12 +8,12 @@ import (
|
||||
|
||||
"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/decort-golang-sdk/pkg/cloudapi/vins"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/client"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudapi/vins/models"
|
||||
)
|
||||
|
||||
func VINSStaticRouteResourceCheckPresence(ctx context.Context, vinsId, routeId uint64, c *decort.DecortClient) (*vins.ItemRoutes, diag.Diagnostics) {
|
||||
func VINSStaticRouteResourceCheckPresence(ctx context.Context, vinsId, routeId uint64, c *client.Client) (*vins.ItemRoutes, diag.Diagnostics) {
|
||||
tflog.Info(ctx, "VINSStaticRouteResourceCheckPresence: Get info about vins static route")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
@@ -79,7 +79,7 @@ func GetVinsIDAndRouteID(ctx context.Context, plan *models.ResourceVINSStaticRou
|
||||
return vinsId, routeId, nil
|
||||
}
|
||||
|
||||
func GetStaticRouteID(ctx context.Context, plan *models.ResourceVINSStaticRouteModel, c *decort.DecortClient) (uint64, diag.Diagnostics) {
|
||||
func GetStaticRouteID(ctx context.Context, plan *models.ResourceVINSStaticRouteModel, c *client.Client) (uint64, diag.Diagnostics) {
|
||||
tflog.Info(ctx, "Start GetStaticRouteID")
|
||||
|
||||
diags := diag.Diagnostics{}
|
||||
@@ -115,75 +115,6 @@ func GetStaticRouteID(ctx context.Context, plan *models.ResourceVINSStaticRouteM
|
||||
return 0, diags
|
||||
}
|
||||
|
||||
func UpdateComputeIDsVINSStaticRoute(ctx context.Context, plan, state *models.ResourceVINSStaticRouteModel, c *decort.DecortClient) diag.Diagnostics {
|
||||
tflog.Info(ctx, "Start UpdateComputeIDsVINSStaticRoute", map[string]any{"id": plan.Id.ValueString()})
|
||||
|
||||
vinsId, routeId, diags := GetVinsIDAndRouteID(ctx, plan)
|
||||
if diags.HasError() {
|
||||
return diags
|
||||
}
|
||||
|
||||
computesPlan := make([]uint64, 0, len(plan.ComputeIDs.Elements()))
|
||||
diags = plan.ComputeIDs.ElementsAs(ctx, &computesPlan, false)
|
||||
if diags.HasError() {
|
||||
tflog.Error(ctx, "UpdateComputeIDsVINSStaticRoute: cannot populate computes with plan.ComputeIDs List elements")
|
||||
return diags
|
||||
}
|
||||
|
||||
computesState := make([]uint64, 0, len(state.ComputeIDs.Elements()))
|
||||
diags = state.ComputeIDs.ElementsAs(ctx, &computesState, false)
|
||||
if diags.HasError() {
|
||||
tflog.Error(ctx, "UpdateComputeIDsVINSStaticRoute: cannot populate computes with state.ComputeIDs List elements")
|
||||
return diags
|
||||
}
|
||||
|
||||
var deletedComputes []uint64
|
||||
for _, comp := range computesState {
|
||||
if !contains(comp, computesPlan) {
|
||||
deletedComputes = append(deletedComputes, comp)
|
||||
}
|
||||
}
|
||||
if len(deletedComputes) != 0 {
|
||||
revokeReq := vins.StaticRouteAccessRevokeRequest{
|
||||
VINSID: vinsId,
|
||||
RouteId: routeId,
|
||||
ComputeIds: deletedComputes,
|
||||
}
|
||||
|
||||
tflog.Info(ctx, "UpdateComputeIDsVINSStaticRoute: before call to CloudAPI().VINS().StaticRouteAccessRevoke", map[string]any{"revokeReq": revokeReq})
|
||||
_, err := c.CloudAPI().VINS().StaticRouteAccessRevoke(ctx, revokeReq)
|
||||
if err != nil {
|
||||
diags.AddError(
|
||||
fmt.Sprintf("UpdateComputeIDsVINSStaticRoute: Cannot revoke static routes for vins with id %v", vinsId),
|
||||
err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
var addedComputes []uint64
|
||||
for _, comp := range computesPlan {
|
||||
if !contains(comp, computesState) {
|
||||
addedComputes = append(addedComputes, comp)
|
||||
}
|
||||
}
|
||||
if len(addedComputes) != 0 {
|
||||
grantReq := vins.StaticRouteAccessGrantRequest{
|
||||
VINSID: vinsId,
|
||||
RouteId: routeId,
|
||||
ComputeIds: addedComputes,
|
||||
}
|
||||
|
||||
tflog.Info(ctx, "UpdateComputeIDsVINSStaticRoute: before call to CloudAPI().VINS().StaticRouteAccessGrant", map[string]any{"grantReq": grantReq})
|
||||
_, err := c.CloudAPI().VINS().StaticRouteAccessGrant(ctx, grantReq)
|
||||
if err != nil {
|
||||
diags.AddError(
|
||||
fmt.Sprintf("UpdateComputeIDsVINSStaticRoute: Cannot grant static routes for vins with id %v", vinsId),
|
||||
err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
return diags
|
||||
}
|
||||
|
||||
// contains returns true if slice contains element. Otherwise it returns false.
|
||||
func contains(element uint64, slice []uint64) bool {
|
||||
for _, s := range slice {
|
||||
|
||||
Reference in New Issue
Block a user