This commit is contained in:
asteam
2024-08-23 16:55:50 +03:00
parent 6f40af6a5f
commit 003e4d656e
524 changed files with 43376 additions and 432 deletions

View File

@@ -0,0 +1,50 @@
package flattens
import (
"context"
"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/service/cloudbroker/audit/models"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/audit/utilities"
)
func AuditDataSource(ctx context.Context, state *models.DataSourceAudit, c *decort.DecortClient) diag.Diagnostics {
tflog.Info(ctx, "Start flattens.AuditDataSource")
diags := diag.Diagnostics{}
auditGuid := state.AuditGuid.ValueString()
recordAudit, diags := utilities.AuditDataSourceCheckPresence(ctx, auditGuid, c)
if diags.HasError() {
return diags
}
tflog.Info(ctx, "flattens.AuditDataSource: before flatten", map[string]any{"audit_guid": auditGuid})
*state = models.DataSourceAudit{
AuditGuid: state.AuditGuid,
Timeouts: state.Timeouts,
Apitask: types.StringValue(recordAudit.Apitask),
Arguments: types.StringValue(recordAudit.Arguments),
Call: types.StringValue(recordAudit.Call),
GUID: types.StringValue(recordAudit.GUID),
ID: types.StringValue(recordAudit.GUID),
Kwargs: types.StringValue(recordAudit.Kwargs),
RemoteAddr: types.StringValue(recordAudit.RemoteAddr),
ResponseTime: types.Float64Value(recordAudit.ResponseTime),
Result: types.StringValue(recordAudit.Result),
StatusCode: types.Int64Value(int64(recordAudit.StatusCode)),
Tags: types.StringValue(recordAudit.Tags),
Timestamp: types.Float64Value(recordAudit.Timestamp),
TimestampEnd: types.Float64Value(recordAudit.TimestampEnd),
User: types.StringValue(recordAudit.User),
}
tflog.Info(ctx, "End flattens.AuditDataSource", map[string]any{"audit_guid": auditGuid})
return nil
}

View File

@@ -0,0 +1,64 @@
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"
decort "repository.basistech.ru/BASIS/decort-golang-sdk"
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudbroker/audit"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/audit/models"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/audit/utilities"
)
func AuditLinkedJobsDataSource(ctx context.Context, state *models.DataSourceAuditLinkedJobs, c *decort.DecortClient) diag.Diagnostics {
tflog.Info(ctx, "Start flattens.AuditLinkedJobsDataSource")
diags := diag.Diagnostics{}
auditGuid := state.AuditGuid.ValueString()
recordAudit, diags := utilities.AuditLinkedJobsDataSourceCheckPresence(ctx, auditGuid, c)
if diags.HasError() {
return diags
}
tflog.Info(ctx, "flattens.AuditLinkedJobsDataSource: before flatten", map[string]any{"audit_guid": auditGuid})
*state = models.DataSourceAuditLinkedJobs{
AuditGuid: state.AuditGuid,
Timeouts: state.Timeouts,
ID: types.StringValue(uuid.New().String()),
Items: flattenLinkedJobs(ctx, *recordAudit),
}
tflog.Info(ctx, "End flattens.AuditLinkedJobsDataSource", map[string]any{"audit_guid": auditGuid})
return nil
}
func flattenLinkedJobs(ctx context.Context, linkedJobs []audit.ItemLinkedJobs) []models.LinkedJob {
tflog.Info(ctx, "Start flattenLinkedJobs")
res := make([]models.LinkedJob, 0, len(linkedJobs))
for _, item := range linkedJobs {
temp := models.LinkedJob{
CMD: types.StringValue(item.CMD),
GUID: types.StringValue(item.GUID),
NID: types.Int64Value(int64(item.NID)),
State: types.StringValue(item.State),
TimeCreate: types.Int64Value(int64(item.TimeCreate)),
TimeStart: types.Int64Value(int64(item.TimeStart)),
TimeStop: types.Int64Value(int64(item.TimeStop)),
Timeout: types.Int64Value(int64(item.Timeout)),
}
res = append(res, temp)
}
tflog.Info(ctx, "End flattenLinkedJobs")
return res
}

View File

@@ -0,0 +1,67 @@
package flattens
import (
"context"
"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/cloudbroker/audit"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/audit/models"
"repository.basistech.ru/BASIS/terraform-provider-dynamix/internal/service/cloudbroker/audit/utilities"
)
func AuditListDataSource(ctx context.Context, state *models.DataSourceAuditList, c *decort.DecortClient) diag.Diagnostics {
tflog.Info(ctx, "Start flattens.AuditListDataSource")
diags := diag.Diagnostics{}
recordAuditList, diags := utilities.AuditListDataSourceCheckPresence(ctx, state, c)
if diags.HasError() {
return diags
}
tflog.Info(ctx, "flattens.AuditListDataSource: before flatten")
*state = models.DataSourceAuditList{
TimestampAt: state.TimestampAt,
TimestampTo: state.TimestampTo,
User: state.User,
Call: state.Call,
MinStatusCode: state.MinStatusCode,
MaxStatusCode: state.MaxStatusCode,
SortBy: state.SortBy,
Page: state.Page,
Size: state.Size,
Timeouts: state.Timeouts,
EntryCount: types.Int64Value(int64(recordAuditList.EntryCount)),
Items: flattenAuditItems(ctx, recordAuditList.Data),
}
tflog.Info(ctx, "End flattens.AuditListDataSource")
return nil
}
func flattenAuditItems(ctx context.Context, auditList []audit.ItemAudit) []models.ItemAudit {
tflog.Info(ctx, "Start flattenAuditItems")
res := make([]models.ItemAudit, 0, len(auditList))
for _, item := range auditList {
temp := models.ItemAudit{
Call: types.StringValue(item.Call),
GUID: types.StringValue(item.GUID),
ResponseTime: types.Float64Value(item.ResponseTime),
StatusCode: types.Int64Value(int64(item.StatusCode)),
Timestamp: types.Float64Value(item.Timestamp),
User: types.StringValue(item.User),
}
res = append(res, temp)
}
tflog.Info(ctx, "End flattenAuditItems")
return res
}