diff --git a/server/src/main/java/org/opensearch/action/update/UpdateRequest.java b/server/src/main/java/org/opensearch/action/update/UpdateRequest.java index 9654bd1c114ba..6cb5e049e0f1e 100644 --- a/server/src/main/java/org/opensearch/action/update/UpdateRequest.java +++ b/server/src/main/java/org/opensearch/action/update/UpdateRequest.java @@ -717,7 +717,7 @@ public IndexRequest doc() { private IndexRequest safeDoc() { if (doc == null) { - doc = new IndexRequest(); + doc = new IndexRequest(index); } return doc; } @@ -803,7 +803,7 @@ public IndexRequest upsertRequest() { private IndexRequest safeUpsertRequest() { if (upsertRequest == null) { - upsertRequest = new IndexRequest(); + upsertRequest = new IndexRequest(index); } return upsertRequest; } diff --git a/server/src/main/java/org/opensearch/ingest/IngestService.java b/server/src/main/java/org/opensearch/ingest/IngestService.java index 5c0ecb2f6bc56..ab8e823199447 100644 --- a/server/src/main/java/org/opensearch/ingest/IngestService.java +++ b/server/src/main/java/org/opensearch/ingest/IngestService.java @@ -213,18 +213,11 @@ public static boolean resolvePipelines( finalPipeline = IndexSettings.FINAL_PIPELINE.get(indexSettings); indexRequest.setFinalPipeline(finalPipeline); } - } else if (indexRequest.index() != null || originalRequest != null && originalRequest.index() != null) { + } else if (indexRequest.index() != null) { // the index does not exist yet (and this is a valid request), so match index // templates to look for pipelines in either a matching V2 template (which takes // precedence), or if a V2 template does not match, any V1 templates - String indexName; - if (indexRequest.index() != null) { - indexName = indexRequest.index(); - } else { - assert originalRequest != null; - indexName = originalRequest.index(); - } - String v2Template = MetadataIndexTemplateService.findV2Template(metadata, indexName, false); + String v2Template = MetadataIndexTemplateService.findV2Template(metadata, indexRequest.index(), false); if (v2Template != null) { Settings settings = MetadataIndexTemplateService.resolveSettings(metadata, v2Template); if (IndexSettings.DEFAULT_PIPELINE.exists(settings)) { @@ -238,7 +231,11 @@ public static boolean resolvePipelines( indexRequest.setPipeline(defaultPipeline != null ? defaultPipeline : NOOP_PIPELINE_NAME); indexRequest.setFinalPipeline(finalPipeline != null ? finalPipeline : NOOP_PIPELINE_NAME); } else { - List templates = MetadataIndexTemplateService.findV1Templates(metadata, indexName, null); + List templates = MetadataIndexTemplateService.findV1Templates( + metadata, + indexRequest.index(), + null + ); // order of templates are highest order first for (final IndexTemplateMetadata template : templates) { final Settings settings = template.settings(); diff --git a/server/src/test/java/org/opensearch/action/update/UpdateRequestTests.java b/server/src/test/java/org/opensearch/action/update/UpdateRequestTests.java index b70fda0d86240..fa9618024ddcb 100644 --- a/server/src/test/java/org/opensearch/action/update/UpdateRequestTests.java +++ b/server/src/test/java/org/opensearch/action/update/UpdateRequestTests.java @@ -247,6 +247,7 @@ public void testFromXContent() throws Exception { assertThat(params, notNullValue()); assertThat(params.size(), equalTo(1)); assertThat(params.get("param1").toString(), equalTo("value1")); + assertThat(request.upsertRequest().index(), equalTo("test")); Map upsertDoc = XContentHelper.convertToMap( request.upsertRequest().source(), true, @@ -304,6 +305,7 @@ public void testFromXContent() throws Exception { ) ); Map doc = request.doc().sourceAsMap(); + assertThat(request.doc().index(), equalTo("test")); assertThat(doc.get("field1").toString(), equalTo("value1")); assertThat(((Map) doc.get("compound")).get("field2").toString(), equalTo("value2")); }