diff --git a/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/ManagedIndexCoordinator.kt b/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/ManagedIndexCoordinator.kt index 86779a579..e5846908a 100644 --- a/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/ManagedIndexCoordinator.kt +++ b/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/ManagedIndexCoordinator.kt @@ -349,6 +349,7 @@ class ManagedIndexCoordinator( findMatchingPolicy(lookupName, creationDate, policiesWithTemplates) ?.let { policy -> logger.info("Index [$indexName] matched ISM policy template and will be managed by ${policy.id}") + logger.info("$policy") updateManagedIndexReqs.add( managedIndexConfigIndexRequest( indexName, @@ -455,13 +456,14 @@ class ManagedIndexCoordinator( .source( SearchSourceBuilder().query( QueryBuilders.existsQuery(ISM_TEMPLATE_FIELD) - ).size(MAX_HITS) + ).size(MAX_HITS).seqNoAndPrimaryTerm(true) ) .indices(INDEX_MANAGEMENT_INDEX) .preference(Preference.PRIMARY_FIRST.type()) return try { val response: SearchResponse = client.suspendUntil { search(searchRequest, it) } + logger.info("get policies response $response") parseFromSearchResponse(response = response, parse = Policy.Companion::parse) } catch (ex: IndexNotFoundException) { emptyList() diff --git a/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/addpolicy/TransportAddPolicyAction.kt b/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/addpolicy/TransportAddPolicyAction.kt index da4e81d77..3dace0b1d 100644 --- a/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/addpolicy/TransportAddPolicyAction.kt +++ b/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/addpolicy/TransportAddPolicyAction.kt @@ -323,6 +323,7 @@ class TransportAddPolicyAction @Inject constructor( } val bulkReq = BulkRequest().timeout(TimeValue.timeValueMillis(bulkReqTimeout)) + log.info("policy $policy") indicesToAdd.forEach { (uuid, name) -> bulkReq.add( managedIndexConfigIndexRequest(name, uuid, request.policyID, jobInterval, policy = policy.copy(user = this.user), jobJitter) diff --git a/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/explain/TransportExplainAction.kt b/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/explain/TransportExplainAction.kt index 9e67742b3..af5ed729a 100644 --- a/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/explain/TransportExplainAction.kt +++ b/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/explain/TransportExplainAction.kt @@ -174,6 +174,7 @@ class TransportExplainAction @Inject constructor( .sort(sortBuilder) .size(searchSize) .query(queryBuilder) + .seqNoAndPrimaryTerm(true) return SearchRequest() .indices(INDEX_MANAGEMENT_INDEX) diff --git a/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/indexpolicy/TransportIndexPolicyAction.kt b/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/indexpolicy/TransportIndexPolicyAction.kt index a2f483cbb..75a916281 100644 --- a/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/indexpolicy/TransportIndexPolicyAction.kt +++ b/src/main/kotlin/org/opensearch/indexmanagement/indexstatemanagement/transport/action/indexpolicy/TransportIndexPolicyAction.kt @@ -178,7 +178,7 @@ class TransportIndexPolicyAction @Inject constructor( .source( SearchSourceBuilder().query( QueryBuilders.existsQuery(ISM_TEMPLATE_FIELD) - ).size(MAX_HITS) + ).size(MAX_HITS).seqNoAndPrimaryTerm(true) ) .indices(IndexManagementPlugin.INDEX_MANAGEMENT_INDEX) .preference(Preference.PRIMARY_FIRST.type()) diff --git a/src/main/kotlin/org/opensearch/indexmanagement/opensearchapi/OpenSearchExtensions.kt b/src/main/kotlin/org/opensearch/indexmanagement/opensearchapi/OpenSearchExtensions.kt index a6325668f..a50f896da 100644 --- a/src/main/kotlin/org/opensearch/indexmanagement/opensearchapi/OpenSearchExtensions.kt +++ b/src/main/kotlin/org/opensearch/indexmanagement/opensearchapi/OpenSearchExtensions.kt @@ -35,6 +35,7 @@ import org.opensearch.common.xcontent.XContentType import org.opensearch.commons.InjectSecurity import org.opensearch.commons.authuser.User import org.opensearch.commons.notifications.NotificationsPluginInterface +import org.opensearch.commons.utils.logger import org.opensearch.core.action.support.DefaultShardOperationFailedException import org.opensearch.core.common.bytes.BytesReference import org.opensearch.core.concurrency.OpenSearchRejectedExecutionException diff --git a/src/test/kotlin/org/opensearch/indexmanagement/indexstatemanagement/coordinator/ManagedIndexCoordinatorIT.kt b/src/test/kotlin/org/opensearch/indexmanagement/indexstatemanagement/coordinator/ManagedIndexCoordinatorIT.kt index b78a827f9..4f7f4e7da 100644 --- a/src/test/kotlin/org/opensearch/indexmanagement/indexstatemanagement/coordinator/ManagedIndexCoordinatorIT.kt +++ b/src/test/kotlin/org/opensearch/indexmanagement/indexstatemanagement/coordinator/ManagedIndexCoordinatorIT.kt @@ -36,6 +36,8 @@ class ManagedIndexCoordinatorIT : IndexStateManagementRestTestCase() { assertEquals("Has incorrect policy_id", policyID, managedIndexConfig!!.policyID) assertEquals("Has incorrect index", index, managedIndexConfig.index) assertEquals("Has incorrect name", index, managedIndexConfig.name) + assertEquals("Has incorrect seq no", policy.seqNo, managedIndexConfig.policySeqNo) + assertEquals("Has incorrect primary term", policy.primaryTerm, managedIndexConfig.policyPrimaryTerm) } } diff --git a/worksheets/ism/delete.http b/worksheets/ism/delete.http index b2f3290ed..e9fbc2b12 100644 --- a/worksheets/ism/delete.http +++ b/worksheets/ism/delete.http @@ -18,16 +18,53 @@ Content-Type: application/json } ], "ism_template": { - "index_patterns": ["testdelete"], + "index_patterns": ["testdelete2"], "priority": 100 } } } -### delete index +### +DELETE localhost:9200/_opendistro/_ism/policies/exampledelete + +### PUT http://localhost:9200/testdelete Content-Type: application/json +### +DELETE http://localhost:9200/testdelete +Content-Type: application/json + +### add policy api call +POST localhost:9200/_plugins/_ism/add/testdelete +Content-Type: application/json + +{ + "policy_id": "exampledelete" +} + ### explain api call GET localhost:9200/_plugins/_ism/explain/testdelete?validate_action=true Accept: application/json + +### get policy call +GET localhost:9200/.opendistro-ism-config/_doc/exampledelete + +### get managed index call +GET localhost:9200/.opendistro-ism-config/_search +Content-Type: application/json + +{ + "seq_no_primary_term": true, + "query": { + "term": { + "managed_index.index": { + "value": "testdelete2" + } + } + } +} + +### +PUT http://localhost:9200/testdelete2 +Content-Type: application/json \ No newline at end of file