in internal/elasticsearch/ingest/processor_script_data_source.go [96:156]
func dataSourceProcessorScriptRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
var diags diag.Diagnostics
processor := &models.ProcessorScript{}
processor.IgnoreFailure = d.Get("ignore_failure").(bool)
if v, ok := d.GetOk("lang"); ok {
processor.Lang = v.(string)
}
if v, ok := d.GetOk("script_id"); ok {
processor.ScriptId = v.(string)
}
if v, ok := d.GetOk("source"); ok {
processor.Source = v.(string)
}
if v, ok := d.GetOk("params"); ok {
params := make(map[string]interface{})
if err := json.NewDecoder(strings.NewReader(v.(string))).Decode(¶ms); err != nil {
return diag.FromErr(err)
}
processor.Params = params
}
if v, ok := d.GetOk("description"); ok {
processor.Description = v.(string)
}
if v, ok := d.GetOk("if"); ok {
processor.If = v.(string)
}
if v, ok := d.GetOk("tag"); ok {
processor.Tag = v.(string)
}
if v, ok := d.GetOk("on_failure"); ok {
onFailure := make([]map[string]interface{}, len(v.([]interface{})))
for i, f := range v.([]interface{}) {
item := make(map[string]interface{})
if err := json.NewDecoder(strings.NewReader(f.(string))).Decode(&item); err != nil {
return diag.FromErr(err)
}
onFailure[i] = item
}
processor.OnFailure = onFailure
}
processorJson, err := json.MarshalIndent(map[string]*models.ProcessorScript{"script": processor}, "", " ")
if err != nil {
return diag.FromErr(err)
}
if err := d.Set("json", string(processorJson)); err != nil {
return diag.FromErr(err)
}
hash, err := utils.StringToHash(string(processorJson))
if err != nil {
return diag.FromErr(err)
}
d.SetId(*hash)
return diags
}