Skip to content

Commit 19ae580

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

File tree

2 files changed

+25
-15
lines changed

2 files changed

+25
-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
@@ -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: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,9 @@ class StartReplicationIT: MultiClusterRestTestCase() {
330330

331331
createConnectionBetweenClusters(FOLLOWER, LEADER)
332332

333-
val createIndexResponse = leaderClient.indices().create(CreateIndexRequest(leaderIndexName).alias(Alias("leaderAlias")), RequestOptions.DEFAULT)
333+
val createIndexResponse = leaderClient.indices().create(CreateIndexRequest(leaderIndexName)
334+
.alias(Alias("leaderAlias").filter("{\"term\":{\"year\":2016}}").routing("1"))
335+
, RequestOptions.DEFAULT)
334336
assertThat(createIndexResponse.isAcknowledged).isTrue()
335337
try {
336338
followerClient.startReplication(StartReplicationRequest("source", leaderIndexName, followerIndexName))
@@ -339,12 +341,15 @@ class StartReplicationIT: MultiClusterRestTestCase() {
339341
.exists(GetIndexRequest(followerIndexName), RequestOptions.DEFAULT))
340342
.isEqualTo(true)
341343
}
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-
)
344+
assertBusy({
345+
Assert.assertEquals(
346+
leaderClient.indices().getAlias(GetAliasesRequest().indices(leaderIndexName),
347+
RequestOptions.DEFAULT).aliases[leaderIndexName],
348+
followerClient.indices().getAlias(GetAliasesRequest().indices(followerIndexName),
349+
RequestOptions.DEFAULT).aliases[followerIndexName]
350+
)
351+
352+
}, 30L, TimeUnit.SECONDS)
348353
} finally {
349354
followerClient.stopReplication(followerIndexName)
350355
}
@@ -521,7 +526,7 @@ class StartReplicationIT: MultiClusterRestTestCase() {
521526
var indicesAliasesRequest = IndicesAliasesRequest()
522527
var aliasAction = IndicesAliasesRequest.AliasActions.add()
523528
.index(leaderIndexName)
524-
.alias("alias1")
529+
.alias("alias1").filter("{\"term\":{\"year\":2016}}").routing("1")
525530
indicesAliasesRequest.addAliasAction(aliasAction)
526531
leaderClient.indices().updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT)
527532

0 commit comments

Comments
 (0)