Skip to content

Commit 7840c93

Browse files
committed
initial commit
1 parent a7d9905 commit 7840c93

File tree

5 files changed

+579
-0
lines changed

5 files changed

+579
-0
lines changed

internal/clients/elasticsearch/index.go

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,3 +544,91 @@ func DeleteIngestPipeline(ctx context.Context, apiClient *clients.ApiClient, nam
544544
}
545545
return diags
546546
}
547+
548+
func PutTransform(ctx context.Context, apiClient *clients.ApiClient, transform *models.Transform, params *models.PutTransformParams) diag.Diagnostics {
549+
fmt.Println("entering PutTransform")
550+
var diags diag.Diagnostics
551+
pipelineBytes, err := json.Marshal(transform)
552+
if err != nil {
553+
return diag.FromErr(err)
554+
}
555+
556+
esClient, err := apiClient.GetESClient()
557+
if err != nil {
558+
return diag.FromErr(err)
559+
}
560+
561+
opts := []func(*esapi.TransformPutTransformRequest){
562+
esClient.TransformPutTransform.WithContext(ctx),
563+
esClient.TransformPutTransform.WithDeferValidation(params.DeferValidation),
564+
esClient.TransformPutTransform.WithTimeout(params.Timeout),
565+
}
566+
567+
res, err := esClient.TransformPutTransform(bytes.NewReader(pipelineBytes), transform.Name, opts...)
568+
if err != nil {
569+
return diag.FromErr(err)
570+
}
571+
572+
defer res.Body.Close()
573+
if diags := utils.CheckError(res, fmt.Sprintf("Unable to create transform: %s", transform.Name)); diags.HasError() {
574+
return diags
575+
}
576+
577+
return diags
578+
}
579+
580+
func GetTransform(ctx context.Context, apiClient *clients.ApiClient, name *string) (*models.Transform, diag.Diagnostics) {
581+
fmt.Println("entering GetTransform for ", *name)
582+
var diags diag.Diagnostics
583+
esClient, err := apiClient.GetESClient()
584+
if err != nil {
585+
return nil, diag.FromErr(err)
586+
}
587+
req := esClient.TransformGetTransform.WithTransformID(*name)
588+
res, err := esClient.TransformGetTransform(req, esClient.TransformGetTransform.WithContext(ctx))
589+
if err != nil {
590+
return nil, diag.FromErr(err)
591+
}
592+
defer res.Body.Close()
593+
if res.StatusCode == http.StatusNotFound {
594+
return nil, nil
595+
}
596+
if diags := utils.CheckError(res, fmt.Sprintf("Unable to get requested transform: %s", *name)); diags.HasError() {
597+
return nil, diags
598+
}
599+
600+
transformsResponse := models.GetTransformResponse{}
601+
if err := json.NewDecoder(res.Body).Decode(&transformsResponse); err != nil {
602+
return nil, diag.FromErr(err)
603+
}
604+
605+
for _, t := range transformsResponse.Transforms {
606+
if t.Id == *name {
607+
t.Name = *name
608+
return &t, diags
609+
}
610+
}
611+
612+
return nil, diags
613+
}
614+
615+
func DeleteTransform(ctx context.Context, apiClient *clients.ApiClient, name string) diag.Diagnostics {
616+
fmt.Println("entering DeleteTransform for ", name)
617+
var diags diag.Diagnostics
618+
619+
esClient, err := apiClient.GetESClient()
620+
if err != nil {
621+
return diag.FromErr(err)
622+
}
623+
624+
res, err := esClient.TransformDeleteTransform(name, esClient.TransformDeleteTransform.WithForce(true), esClient.TransformDeleteTransform.WithContext(ctx))
625+
if err != nil {
626+
return diag.FromErr(err)
627+
}
628+
defer res.Body.Close()
629+
if diags := utils.CheckError(res, fmt.Sprintf("Unable to delete the transform: %s", name)); diags.HasError() {
630+
return diags
631+
}
632+
633+
return diags
634+
}

0 commit comments

Comments
 (0)