You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.8 KiB
73 lines
2.8 KiB
6 months ago
|
package flattens
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"encoding/json"
|
||
|
|
||
|
"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/flattens"
|
||
|
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/lb/models"
|
||
|
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/lb/utilities"
|
||
|
)
|
||
|
|
||
|
func LBResource(ctx context.Context, plan *models.ResourceLBModel, c *decort.DecortClient) diag.Diagnostics {
|
||
|
tflog.Info(ctx, "Start flattens.LBResource")
|
||
|
|
||
|
diags := diag.Diagnostics{}
|
||
|
|
||
|
recordItemLB, diags := utilities.LBResourceCheckPresence(ctx, plan, c)
|
||
|
if diags.HasError() {
|
||
|
return diags
|
||
|
}
|
||
|
|
||
|
acl, _ := json.Marshal(recordItemLB.ACL)
|
||
|
|
||
|
*plan = models.ResourceLBModel{
|
||
|
RGID: plan.RGID,
|
||
|
Name: plan.Name,
|
||
|
ExtNetID: plan.ExtNetID,
|
||
|
VINSID: plan.VINSID,
|
||
|
Start: plan.Start,
|
||
|
ID: plan.ID,
|
||
|
|
||
|
HAMode: types.BoolValue(recordItemLB.HAMode),
|
||
|
Safe: plan.Safe,
|
||
|
Timeouts: plan.Timeouts,
|
||
|
SysctlParams: plan.SysctlParams,
|
||
|
Permanently: plan.Permanently,
|
||
|
Restart: plan.Restart,
|
||
|
Enable: plan.Enable,
|
||
|
ConfigReset: plan.ConfigReset,
|
||
|
|
||
|
ACL: types.StringValue(string(acl)),
|
||
|
BackendHAIP: types.StringValue(recordItemLB.BackendHAIP),
|
||
|
Backends: flattenBackendsInLB(ctx, recordItemLB.Backends),
|
||
|
CKey: types.StringValue(recordItemLB.CKey),
|
||
|
Description: types.StringValue(recordItemLB.Description),
|
||
|
DPAPIUser: types.StringValue(recordItemLB.DPAPIUser),
|
||
|
DPAPIPassword: types.StringValue(recordItemLB.DPAPIPassword),
|
||
|
FrontendHAIP: types.StringValue(recordItemLB.FrontendHAIP),
|
||
|
Frontends: flattenFrontendsInLB(ctx, recordItemLB.Frontends),
|
||
|
GID: types.Int64Value(int64(recordItemLB.GID)),
|
||
|
GUID: types.Int64Value(int64(recordItemLB.GUID)),
|
||
|
ImageID: types.Int64Value(int64(recordItemLB.ImageID)),
|
||
|
LBID: types.Int64Value(int64(recordItemLB.ID)),
|
||
|
Meta: flattens.FlattenSimpleTypeToList(ctx, types.StringType, &recordItemLB.Meta),
|
||
|
Milestones: types.Int64Value(int64(recordItemLB.Milestones)),
|
||
|
ManagerId: types.Int64Value(int64(recordItemLB.ManagerId)),
|
||
|
ManagerType: types.StringValue(recordItemLB.ManagerType),
|
||
|
PartK8s: types.BoolValue(recordItemLB.PartK8s),
|
||
|
PrimaryNode: flattenNodeInLB(ctx, recordItemLB.PrimaryNode),
|
||
|
SecondaryNode: flattenNodeInLB(ctx, recordItemLB.SecondaryNode),
|
||
|
Status: types.StringValue(recordItemLB.Status),
|
||
|
TechStatus: types.StringValue(recordItemLB.TechStatus),
|
||
|
UserManaged: types.BoolValue(recordItemLB.UserManaged),
|
||
|
}
|
||
|
|
||
|
tflog.Info(ctx, "End flattens.LBResource", map[string]any{"id": plan.ID.ValueString()})
|
||
|
return nil
|
||
|
}
|