Skip to content

Commit b9fc659

Browse files
authored
Updating filters as well during Alias update (#491) (#512)
Testing : Integ Test, Local Signed-off-by: Gaurav Bafna <gbbafna@amazon.com>
1 parent 8d0d7f5 commit b9fc659

File tree

2 files changed

+26
-15
lines changed

2 files changed

+26
-15
lines changed

src/main/kotlin/org/opensearch/replication/task/index/IndexReplicationTask.kt

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -517,13 +517,18 @@ open class IndexReplicationTask(id: Long, type: String, action: String, descript
517517
for (alias in toAdd) {
518518
log.info("Adding alias ${alias.alias} from $followerIndexName")
519519
// Copying writeIndex from leader doesn't cause any issue as writes will be blocked anyways
520-
request.addAliasAction(AliasActions.add().index(followerIndexName)
521-
.alias(alias.alias)
522-
.indexRouting(alias.indexRouting)
523-
.searchRouting(alias.searchRouting)
524-
.writeIndex(alias.writeIndex())
525-
.isHidden(alias.isHidden)
526-
)
520+
var aliasAction = AliasActions.add().index(followerIndexName)
521+
.alias(alias.alias)
522+
.indexRouting(alias.indexRouting)
523+
.searchRouting(alias.searchRouting)
524+
.writeIndex(alias.writeIndex())
525+
.isHidden(alias.isHidden)
526+
527+
if (alias.filteringRequired()) {
528+
aliasAction = aliasAction.filter(alias.filter.string())
529+
}
530+
531+
request.addAliasAction(aliasAction)
527532
}
528533

529534
var toRemove = followerAliases - leaderAliases

src/test/kotlin/org/opensearch/replication/integ/rest/StartReplicationIT.kt

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import org.opensearch.index.mapper.MapperService
6565
import org.opensearch.repositories.fs.FsRepository
6666
import org.opensearch.test.OpenSearchTestCase.assertBusy
6767
import org.junit.Assert
68+
import org.opensearch.cluster.metadata.AliasMetadata
6869
import org.opensearch.common.xcontent.DeprecationHandler
6970
import org.opensearch.common.xcontent.NamedXContentRegistry
7071
import org.opensearch.replication.ReplicationPlugin.Companion.REPLICATION_INDEX_TRANSLOG_PRUNING_ENABLED_SETTING
@@ -330,7 +331,9 @@ class StartReplicationIT: MultiClusterRestTestCase() {
330331

331332
createConnectionBetweenClusters(FOLLOWER, LEADER)
332333

333-
val createIndexResponse = leaderClient.indices().create(CreateIndexRequest(leaderIndexName).alias(Alias("leaderAlias")), RequestOptions.DEFAULT)
334+
val createIndexResponse = leaderClient.indices().create(CreateIndexRequest(leaderIndexName)
335+
.alias(Alias("leaderAlias").filter("{\"term\":{\"year\":2016}}").routing("1"))
336+
, RequestOptions.DEFAULT)
334337
assertThat(createIndexResponse.isAcknowledged).isTrue()
335338
try {
336339
followerClient.startReplication(StartReplicationRequest("source", leaderIndexName, followerIndexName))
@@ -339,12 +342,15 @@ class StartReplicationIT: MultiClusterRestTestCase() {
339342
.exists(GetIndexRequest(followerIndexName), RequestOptions.DEFAULT))
340343
.isEqualTo(true)
341344
}
342-
Assert.assertEquals(
343-
leaderClient.indices().getAlias(GetAliasesRequest().indices(leaderIndexName),
344-
RequestOptions.DEFAULT).aliases[leaderIndexName],
345-
followerClient.indices().getAlias(GetAliasesRequest().indices(followerIndexName),
346-
RequestOptions.DEFAULT).aliases[followerIndexName]
347-
)
345+
assertBusy({
346+
Assert.assertEquals(
347+
leaderClient.indices().getAlias(GetAliasesRequest().indices(leaderIndexName),
348+
RequestOptions.DEFAULT).aliases[leaderIndexName],
349+
followerClient.indices().getAlias(GetAliasesRequest().indices(followerIndexName),
350+
RequestOptions.DEFAULT).aliases[followerIndexName]
351+
)
352+
353+
}, 30L, TimeUnit.SECONDS)
348354
} finally {
349355
followerClient.stopReplication(followerIndexName)
350356
}
@@ -521,7 +527,7 @@ class StartReplicationIT: MultiClusterRestTestCase() {
521527
var indicesAliasesRequest = IndicesAliasesRequest()
522528
var aliasAction = IndicesAliasesRequest.AliasActions.add()
523529
.index(leaderIndexName)
524-
.alias("alias1")
530+
.alias("alias1").filter("{\"term\":{\"year\":2016}}").routing("1")
525531
indicesAliasesRequest.addAliasAction(aliasAction)
526532
leaderClient.indices().updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT)
527533

0 commit comments

Comments
 (0)