Browse Source

GET _index_template and GET _component_template request support query parameter flat_settings (#83297)

`GET _index_template`  and `GET _component_template` request with parameter `flat_settings=true` has no effect.
For example, run these requests `settings` are not returned in a flat format.

- request
```bash
GET _index_template/ilm-history?pretty&flat_settings=true
```

- response
```json
{
  "index_templates" : [
    {
      "name" : "ilm-history",
      "index_template" : {
        "index_patterns" : [
          "ilm-history-5*"
        ],
        "template" : {
          "settings" : {
            "index" : {
              "lifecycle" : {
                "name" : "ilm-history-ilm-policy"
              },
              "number_of_shards" : "1",
              "auto_expand_replicas" : "0-1",
              "number_of_replicas" : "0"
            }
          },
          "mappings" : {
            "dynamic" : false,
            "properties" : {
              "index_age" : {
                "type" : "long"
              },
              "@timestamp" : {
                "format" : "epoch_millis",
                "type" : "date"
              },
              "error_details" : {
                "type" : "text"
              },
              "success" : {
                "type" : "boolean"
              },
              "index" : {
                "type" : "keyword"
              },
              "state" : {
                "dynamic" : true,
                "type" : "object",
                "properties" : {
                  "phase" : {
                    "type" : "keyword"
                  },
                  "failed_step" : {
                    "type" : "keyword"
                  },
                  "phase_definition" : {
                    "type" : "text"
                  },
                  "action_time" : {
                    "format" : "epoch_millis",
                    "type" : "date"
                  },
                  "phase_time" : {
                    "format" : "epoch_millis",
                    "type" : "date"
                  },
                  "step_info" : {
                    "type" : "text"
                  },
                  "action" : {
                    "type" : "keyword"
                  },
                  "step" : {
                    "type" : "keyword"
                  },
                  "is_auto-retryable_error" : {
                    "type" : "keyword"
                  },
                  "creation_date" : {
                    "format" : "epoch_millis",
                    "type" : "date"
                  },
                  "step_time" : {
                    "format" : "epoch_millis",
                    "type" : "date"
                  }
                }
              },
              "policy" : {
                "type" : "keyword"
              }
            }
          }
        },
        "composed_of" : [ ],
        "priority" : 2147483647,
        "version" : 5,
        "_meta" : {
          "managed" : true,
          "description" : "index template for ILM history indices"
        },
        "data_stream" : {
          "hidden" : true
        },
        "allow_auto_create" : true
      }
    }
  ]
}
```

- request:
```
GET _component_template/logs-settings?pretty&flat_settings=true
```

- response
```json
{
  "component_templates" : [
    {
      "name" : "logs-settings",
      "component_template" : {
        "template" : {
          "settings" : {
            "index" : {
              "lifecycle" : {
                "name" : "logs"
              },
              "codec" : "best_compression",
              "query" : {
                "default_field" : [
                  "message"
                ]
              }
            }
          }
        },
        "version" : 1,
        "_meta" : {
          "managed" : true,
          "description" : "default settings for the logs index template installed by x-pack"
        }
      }
    }
  ]
}
```
Simon 3 years ago
parent
commit
c47548ad2b

+ 5 - 0
docs/changelog/83297.yaml

@@ -0,0 +1,5 @@
+pr: 83297
+summary: GET _index_template and GET _component_template request support query parameter flat_settings
+area: ILM+SLM
+type: enhancement
+issues: []

+ 1 - 1
server/src/main/java/org/elasticsearch/action/admin/indices/template/get/GetComponentTemplateAction.java

@@ -127,7 +127,7 @@ public class GetComponentTemplateAction extends ActionType<GetComponentTemplateA
             for (Map.Entry<String, ComponentTemplate> componentTemplate : this.componentTemplates.entrySet()) {
                 builder.startObject();
                 builder.field(NAME.getPreferredName(), componentTemplate.getKey());
-                builder.field(COMPONENT_TEMPLATE.getPreferredName(), componentTemplate.getValue());
+                builder.field(COMPONENT_TEMPLATE.getPreferredName(), componentTemplate.getValue(), params);
                 builder.endObject();
             }
             builder.endArray();

+ 1 - 1
server/src/main/java/org/elasticsearch/action/admin/indices/template/get/GetComposableIndexTemplateAction.java

@@ -137,7 +137,7 @@ public class GetComposableIndexTemplateAction extends ActionType<GetComposableIn
             for (Map.Entry<String, ComposableIndexTemplate> indexTemplate : this.indexTemplates.entrySet()) {
                 builder.startObject();
                 builder.field(NAME.getPreferredName(), indexTemplate.getKey());
-                builder.field(INDEX_TEMPLATE.getPreferredName(), indexTemplate.getValue());
+                builder.field(INDEX_TEMPLATE.getPreferredName(), indexTemplate.getValue(), params);
                 builder.endObject();
             }
             builder.endArray();