Skip to content

Commit 4b4df0a

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

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
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
@@ -518,13 +518,18 @@ open class IndexReplicationTask(id: Long, type: String, action: String, descript
518518
for (alias in toAdd) {
519519
log.info("Adding alias ${alias.alias} from $followerIndexName")
520520
// Copying writeIndex from leader doesn't cause any issue as writes will be blocked anyways
521-
request.addAliasAction(AliasActions.add().index(followerIndexName)
522-
.alias(alias.alias)
523-
.indexRouting(alias.indexRouting)
524-
.searchRouting(alias.searchRouting)
525-
.writeIndex(alias.writeIndex())
526-
.isHidden(alias.isHidden)
527-
)
521+
var aliasAction = AliasActions.add().index(followerIndexName)
522+
.alias(alias.alias)
523+
.indexRouting(alias.indexRouting)
524+
.searchRouting(alias.searchRouting)
525+
.writeIndex(alias.writeIndex())
526+
.isHidden(alias.isHidden)
527+
528+
if (alias.filteringRequired()) {
529+
aliasAction = aliasAction.filter(alias.filter.string())
530+
}
531+
532+
request.addAliasAction(aliasAction)
528533
}
529534

530535
var toRemove = followerAliases - leaderAliases

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

Lines changed: 7 additions & 3 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
@@ -344,8 +345,10 @@ class StartReplicationIT: MultiClusterRestTestCase() {
344345

345346
createConnectionBetweenClusters(FOLLOWER, LEADER)
346347

347-
val createIndexResponse = leaderClient.indices().create(CreateIndexRequest(leaderIndexName).alias(Alias("leaderAlias")), RequestOptions.DEFAULT)
348-
assertThat(createIndexResponse.isAcknowledged).isTrue()
348+
val createIndexResponse = leaderClient.indices().create(CreateIndexRequest(leaderIndexName)
349+
.alias(Alias("leaderAlias").filter("{\"term\":{\"year\":2016}}").routing("1"))
350+
, RequestOptions.DEFAULT)
351+
assertThat(createIndexResponse.isAcknowledged).isTrue
349352
try {
350353
followerClient.startReplication(StartReplicationRequest("source", leaderIndexName, followerIndexName),
351354
waitForRestore = true)
@@ -361,6 +364,7 @@ class StartReplicationIT: MultiClusterRestTestCase() {
361364
followerClient.indices().getAlias(GetAliasesRequest().indices(followerIndexName),
362365
RequestOptions.DEFAULT).aliases[followerIndexName]
363366
)
367+
364368
}, 30L, TimeUnit.SECONDS)
365369
} finally {
366370
followerClient.stopReplication(followerIndexName)
@@ -541,7 +545,7 @@ class StartReplicationIT: MultiClusterRestTestCase() {
541545
var indicesAliasesRequest = IndicesAliasesRequest()
542546
var aliasAction = IndicesAliasesRequest.AliasActions.add()
543547
.index(leaderIndexName)
544-
.alias("alias1")
548+
.alias("alias1").filter("{\"term\":{\"year\":2016}}").routing("1")
545549
indicesAliasesRequest.addAliasAction(aliasAction)
546550
leaderClient.indices().updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT)
547551

0 commit comments

Comments
 (0)